{
  "contractName": "TransferWidgetRenderer",
  "abi": [
    {
      "constant": false,
      "inputs": [],
      "name": "renounceOwnership",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "TRANSFER",
      "outputs": [
        {
          "name": "",
          "type": "string"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "TRANSFER_CONFIRM",
      "outputs": [
        {
          "name": "",
          "type": "string"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "SHORT_DESC",
      "outputs": [
        {
          "name": "",
          "type": "string"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "LONG_DESC",
      "outputs": [
        {
          "name": "",
          "type": "string"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "RECEIVER",
      "outputs": [
        {
          "name": "",
          "type": "string"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "AMOUNT",
      "outputs": [
        {
          "name": "",
          "type": "string"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "locale",
          "type": "string"
        },
        {
          "name": "key",
          "type": "string"
        },
        {
          "name": "value",
          "type": "string"
        }
      ],
      "name": "setResource",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "locale",
          "type": "string"
        },
        {
          "name": "key",
          "type": "string"
        }
      ],
      "name": "resource",
      "outputs": [
        {
          "name": "",
          "type": "string"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "previousOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipRenounced",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "previousOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipTransferred",
      "type": "event"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_locale",
          "type": "string"
        },
        {
          "name": "_token",
          "type": "address"
        }
      ],
      "name": "render",
      "outputs": [
        {
          "name": "",
          "type": "string"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405260008054600160a060020a031916331790556128bf806100256000396000f3006080604052600436106100a05763ffffffff60e060020a600035041663715018a681146100a557806376420e1d146100bc5780638143b2ea146101465780638b5827121461015b5780638da5cb5b14610170578063ac5c6e12146101a1578063ad7430cc146101b6578063ca1a70be146101cb578063d17891761461022f578063ed3487fe14610244578063f2fde38b14610319578063f65a5c1b1461033a575b600080fd5b3480156100b157600080fd5b506100ba6103d1565b005b3480156100c857600080fd5b506100d161043d565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561010b5781810151838201526020016100f3565b50505050905090810190601f1680156101385780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561015257600080fd5b506100d1610462565b34801561016757600080fd5b506100d1610499565b34801561017c57600080fd5b506101856104d0565b60408051600160a060020a039092168252519081900360200190f35b3480156101ad57600080fd5b506100d16104df565b3480156101c257600080fd5b506100d1610516565b3480156101d757600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526100d194369492936024939284019190819084018382808284375094975050509235600160a060020a0316935061054d92505050565b34801561023b57600080fd5b506100d1611473565b34801561025057600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526100ba94369492936024939284019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a99988101979196509182019450925082915084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a9998810197919650918201945092508291508401838280828437509497506114aa9650505050505050565b34801561032557600080fd5b506100ba600160a060020a0360043516611597565b34801561034657600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526100d194369492936024939284019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a9998810197919650918201945092508291508401838280828437509497506115ba9650505050505050565b600054600160a060020a031633146103e857600080fd5b60008054604051600160a060020a03909116917ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482091a26000805473ffffffffffffffffffffffffffffffffffffffff19169055565b6040805180820190915260088152600080516020612874833981519152602082015281565b60408051808201909152601081527f7472616e736665725f636f6e6669726d00000000000000000000000000000000602082015281565b60408051808201909152600a81527f73686f72745f6465736300000000000000000000000000000000000000000000602082015281565b600054600160a060020a031681565b60408051808201909152600981527f6c6f6e675f646573630000000000000000000000000000000000000000000000602082015281565b60408051808201909152600881527f7265636569766572000000000000000000000000000000000000000000000000602082015281565b6060806105586126c4565b83600160a060020a031663186601ca6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561059657600080fd5b505af11580156105aa573d6000803e3d6000fd5b505050506040513d60208110156105c057600080fd5b505115611459576040805160038082526080820190925290816020015b6105e56126f4565b8152602001906001900390816105dd57905050915060e0604051908101604052806001151581526020016040805190810160405280600881526020017f726563656976657200000000000000000000000000000000000000000000000081525081526020016040805190810160405280600b81526020017f616464726573734564697400000000000000000000000000000000000000000081525081526020016001876040518082805190602001908083835b602083106106b75780518252601f199092019160209182019101610698565b51815160209384036101000a6000190180199092169116179052920194855250604080519485900382018520858201825260088087527f726563656976657200000000000000000000000000000000000000000000000093870193845291519095945092508291908083835b602083106107425780518252601f199092019160209182019101610723565b518151600019602094850361010090810a820192831692199390931691909117909252949092019687526040805197889003820188208054601f60026001831615909802909501169590950492830182900482028801820190528187529294509250508301828280156107f65780601f106107cb576101008083540402835291602001916107f6565b820191906000526020600020905b8154815290600101906020018083116107d957829003601f168201915b505050505081526020016040805190810160405280600281526020017f2222000000000000000000000000000000000000000000000000000000000000815250815260200161084361170b565b815260200161085061175e565b905282518390600090811061086157fe5b9060200190602002018190525060e0604051908101604052806001151581526020016040805190810160405280600681526020017f616d6f756e740000000000000000000000000000000000000000000000000000815250815260200161098861093e61093988600160a060020a031663313ce5676040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561090557600080fd5b505af1158015610919573d6000803e3d6000fd5b505050506040513d602081101561092f57600080fd5b505160ff166117eb565b61194a565b61097c6040805190810160405280600981526020017f746f6b656e45646974000000000000000000000000000000000000000000000081525061194a565b9063ffffffff61197316565b81526020016001876040518082805190602001908083835b602083106109bf5780518252601f1990920191602091820191016109a0565b51815160209384036101000a6000190180199092169116179052920194855250604080519485900382018520858201825260068087527f616d6f756e74000000000000000000000000000000000000000000000000000093870193845291519095945092508291908083835b60208310610a4a5780518252601f199092019160209182019101610a2b565b518151600019602094850361010090810a820192831692199390931691909117909252949092019687526040805197889003820188208054601f6002600183161590980290950116959095049283018290048202880182019052818752929450925050830182828015610afe5780601f10610ad357610100808354040283529160200191610afe565b820191906000526020600020905b815481529060010190602001808311610ae157829003601f168201915b505050505081526020016040805190810160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152508152602001610b4b61170b565b8152602001610b5861175e565b9052825183906001908110610b6957fe5b9060200190602002018190525060e06040519081016040528060011515815260200160408051908101604052806008815260200160008051602061287483398151915281525081526020016040805190810160405280600681526020017f627574746f6e000000000000000000000000000000000000000000000000000081525081526020016001876040518082805190602001908083835b60208310610c215780518252601f199092019160209182019101610c02565b51815160209384036101000a60001901801990921691161790529201948552506040805194859003820185208582018252600880875260008051602061287483398151915293870193845291519095945092508291908083835b60208310610c9a5780518252601f199092019160209182019101610c7b565b518151600019602094850361010090810a820192831692199390931691909117909252949092019687526040805197889003820188208054601f6002600183161590980290950116959095049283018290048202880182019052818752929450925050830182828015610d4e5780601f10610d2357610100808354040283529160200191610d4e565b820191906000526020600020905b815481529060010190602001808311610d3157829003601f168201915b505050505081526020016040805190810160405280600481526020017f6e756c6c00000000000000000000000000000000000000000000000000000000815250815260200160a06040519081016040528060011515815260200187600160a060020a031681526020016040805190810160405280601981526020017f7472616e7366657228616464726573732c75696e74323536290000000000000081525081526020016040805190810160405280601581526020017f5b227265636569766572222c22616d6f756e74225d000000000000000000000081525081526020016001896040518082805190602001908083835b60208310610e5f5780518252601f199092019160209182019101610e40565b51815160209384036101000a6000190180199092169116179052920194855250604080519485900382018520858201825260108087527f7472616e736665725f636f6e6669726d0000000000000000000000000000000093870193845291519095945092508291908083835b60208310610eea5780518252601f199092019160209182019101610ecb565b518151600019602094850361010090810a820192831692199390931691909117909252949092019687526040805197889003820188208054601f6002600183161590980290950116959095049283018290048202880182019052818752929450925050830182828015610f9e5780601f10610f7357610100808354040283529160200191610f9e565b820191906000526020600020905b815481529060010190602001808311610f8157829003601f168201915b50505050508152508152602001610fb361175e565b9052825183906002908110610fc457fe5b9060200190602002018190525060a0604051908101604052806001876040518082805190602001908083835b6020831061100f5780518252601f199092019160209182019101610ff0565b51815160209384036101000a60001901801990921691161790529201948552506040805194859003820185208582018252600880875260008051602061287483398151915293870193845291519095945092508291908083835b602083106110885780518252601f199092019160209182019101611069565b518151600019602094850361010090810a820192831692199390931691909117909252949092019687526040805197889003820188208054601f600260018316159098029095011695909504928301829004820288018201905281875292945092505083018282801561113c5780601f106111115761010080835404028352916020019161113c565b820191906000526020600020905b81548152906001019060200180831161111f57829003601f168201915b505050505081526020016001876040518082805190602001908083835b602083106111785780518252601f199092019160209182019101611159565b51815160209384036101000a60001901801990921691161790529201948552506040805194859003820185208582018252600a8087527f73686f72745f646573630000000000000000000000000000000000000000000093870193845291519095945092508291908083835b602083106112035780518252601f1990920191602091820191016111e4565b518151600019602094850361010090810a820192831692199390931691909117909252949092019687526040805197889003820188208054601f60026001831615909802909501169590950492830182900482028801820190528187529294509250508301828280156112b75780601f1061128c576101008083540402835291602001916112b7565b820191906000526020600020905b81548152906001019060200180831161129a57829003601f168201915b505050505081526020016001876040518082805190602001908083835b602083106112f35780518252601f1990920191602091820191016112d4565b51815160209384036101000a6000190180199092169116179052920194855250604080519485900382018520858201825260098087527f6c6f6e675f64657363000000000000000000000000000000000000000000000093870193845291519095945092508291908083835b6020831061137e5780518252601f19909201916020918201910161135f565b518151600019602094850361010090810a820192831692199390931691909117909252949092019687526040805197889003820188208054601f60026001831615909802909501169590950492830182900482028801820190528187529294509250508301828280156114325780601f1061140757610100808354040283529160200191611432565b820191906000526020600020905b81548152906001019060200180831161141557829003601f168201915b5050505050815260200160048152602001838152509050611452816119ea565b925061146b565b60408051602081019091526000815292505b505092915050565b60408051808201909152600681527f616d6f756e740000000000000000000000000000000000000000000000000000602082015281565b600054600160a060020a031633146114c157600080fd5b806001846040518082805190602001908083835b602083106114f45780518252601f1990920191602091820191016114d5565b51815160209384036101000a6000190180199092169116179052920194855250604051938490038101842087519094889450925082918401908083835b602083106115505780518252601f199092019160209182019101611531565b51815160209384036101000a600019018019909216911617905292019485525060405193849003810190932084516115919591949190910192509050612740565b50505050565b600054600160a060020a031633146115ae57600080fd5b6115b781611c47565b50565b60606001836040518082805190602001908083835b602083106115ee5780518252601f1990920191602091820191016115cf565b51815160209384036101000a6000190180199092169116179052920194855250604051938490038101842086519094879450925082918401908083835b6020831061164a5780518252601f19909201916020918201910161162b565b518151600019602094850361010090810a820192831692199390931691909117909252949092019687526040805197889003820188208054601f60026001831615909802909501169590950492830182900482028801820190528187529294509250508301828280156116fe5780601f106116d3576101008083540402835291602001916116fe565b820191906000526020600020905b8154815290600101906020018083116116e157829003601f168201915b5050505050905092915050565b6117136127be565b506040805160a0810182526000808252602080830182905283518082018552828152838501528351808201855282815260608401528351908101909352825260808101919091525b90565b6117666127eb565b604080516060810182526000808252825181815260208181019094529192830191906117a8565b61179561280f565b81526020019060019003908161178d5790505b50815260200160006040519080825280602002602001820160405280156117e357816020015b60608152602001906001900390816117ce5790505b509052905090565b606080600081818515156118345760408051808201909152600181527f300000000000000000000000000000000000000000000000000000000000000060208201529450611941565b6040805160208082528183019092529080820161040080388339019050509350600092505b60008611156118a657600a860660300160f860020a02848481518110151561187d57fe5b906020010190600160f860020a031916908160001a905350600a86049550600190920191611859565b60408051848152601f19601f860116810160200190915260001984019380156118d9578160200160208202803883390190505b509150600090505b815181101561193d578351600019840193859181106118fc57fe5b90602001015160f860020a900460f860020a02828281518110151561191d57fe5b906020010190600160f860020a031916908160001a9053506001016118e1565b8194505b50505050919050565b611952612842565b50604080518082019091528151815260208281019082018190525b50919050565b606080600083600001518560000151016040519080825280601f01601f1916602001820160405280156119b0578160200160208202803883390190505b5091506020820190506119cc8186602001518760000151611cc4565b8451602085015185516119e29284019190611cc4565b509392505050565b60408051808201909152600a81527f7b227469746c65223a22000000000000000000000000000000000000000000006020820152815160609190600090611a3d90611a349061194a565b61097c8461194a565b9150611a80611a346040805190810160405280600f81526020017f222c2273686f727444657363223a22000000000000000000000000000000000081525061194a565b9150611a92611a34856020015161194a565b9150611ad5611a346040805190810160405280600e81526020017f222c226c6f6e6744657363223a2200000000000000000000000000000000000081525061194a565b9150611ae7611a34856040015161194a565b9150611b2a611a346040805190810160405280600a81526020017f222c227769647468223a0000000000000000000000000000000000000000000081525061194a565b9150611b3f611a3461093986606001516117eb565b9150611b82611a346040805190810160405280600d81526020017f2c22656c656d656e7473223a5b0000000000000000000000000000000000000081525061194a565b9150600090505b836080015151811015611bfe576000811115611bca57611bc7611a3460408051908101604052806001815260200160fa60020a600b0281525061194a565b91505b611bf4611a34610939866080015184815181101515611be557fe5b90602001906020020151611d08565b9150600101611b89565b611c3f611a346040805190810160405280600281526020017f5d7d00000000000000000000000000000000000000000000000000000000000081525061194a565b949350505050565b600160a060020a0381161515611c5c57600080fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60005b60208210611ce9578251845260209384019390920191601f1990910190611cc7565b50905182516020929092036101000a6000190180199091169116179052565b606080826000015115611fbb576040805190810160405280600781526020017f7b226964223a22000000000000000000000000000000000000000000000000008152509050611d66611d5d846020015161194a565b61097c8361194a565b9050611da9611d5d6040805190810160405280600181526020017f220000000000000000000000000000000000000000000000000000000000000081525061194a565b60a08401515190915015611e1057611df8611d5d6040805190810160405280600b81526020017f2c2022616374696f6e223a00000000000000000000000000000000000000000081525061194a565b9050611e0d611d5d6109398560a00151611ff6565b90505b60c08301515115611e7457611e5c611d5d6040805190810160405280600a81526020017f2c20227461626c65223a0000000000000000000000000000000000000000000081525061194a565b9050611e71611d5d6109398560c00151612199565b90505b611eb5611d5d6040805190810160405280600981526020017f2c2274797065223a22000000000000000000000000000000000000000000000081525061194a565b9050611ec7611d5d846040015161194a565b9050611f0a611d5d6040805190810160405280600b81526020017f222c226c6162656c223a2200000000000000000000000000000000000000000081525061194a565b9050611f1c611d5d846060015161194a565b9050611f5f611d5d6040805190810160405280600981526020017f222c2264617461223a000000000000000000000000000000000000000000000081525061194a565b9050611f71611d5d846080015161194a565b9050611fb4611d5d6040805190810160405280600181526020017f7d0000000000000000000000000000000000000000000000000000000000000081525061194a565b915061196d565b60408051808201909152600481527f6e756c6c000000000000000000000000000000000000000000000000000000006020820152915061196d565b606080826000015115611fbb576040805190810160405280600c81526020017f7b2261646472657373223a2200000000000000000000000000000000000000008152509050612057611d5d6109398560200151600160a060020a03166123b0565b905061209a611d5d6040805190810160405280601681526020017f222c2266756e6374696f6e53656c6563746f72223a220000000000000000000081525061194a565b90506120ac611d5d846040015161194a565b90506120ef611d5d6040805190810160405280600e81526020017f222c22617267756d656e7473223a00000000000000000000000000000000000081525061194a565b9050612101611d5d846060015161194a565b9050612144611d5d6040805190810160405280600c81526020017f2c22636f6e6669726d223a22000000000000000000000000000000000000000081525061194a565b9050612156611d5d846080015161194a565b9050611fb4611d5d6040805190810160405280600281526020017f227d00000000000000000000000000000000000000000000000000000000000081525061194a565b60608060008084600001511561237157505060408051808201909152600c81527f7b22636f6c756d6e73223a5b0000000000000000000000000000000000000000602082015290506000805b84602001515181101561226757600082111561222f5761222c61222360408051908101604052806001815260200160fa60020a600b0281525061194a565b61097c8561194a565b92505b61225961222361093987602001518481518110151561224a57fe5b906020019060200201516124f3565b9250600191820191016121e5565b6122a86122236040805190810160405280600a81526020017f5d2c22726f7773223a5b0000000000000000000000000000000000000000000081525061194a565b925060009150600090505b8460400151518110156123295760008211156122f4576122f161222360408051908101604052806001815260200160fa60020a600b0281525061194a565b92505b61231b61222386604001518381518110151561230c57fe5b9060200190602002015161194a565b9250600191820191016122b3565b61236a6122236040805190810160405280600281526020017f5d7d00000000000000000000000000000000000000000000000000000000000081525061194a565b93506123a8565b60408051808201909152600481527f6e756c6c00000000000000000000000000000000000000000000000000000000602082015293505b505050919050565b60408051602a80825260608083019093528291600091829182916020820161054080388339505081519195507f300000000000000000000000000000000000000000000000000000000000000091869150600090811061240c57fe5b906020010190600160f860020a031916908160001a90535083517f7800000000000000000000000000000000000000000000000000000000000000908590600190811061245557fe5b906020010190600160f860020a031916908160001a905350859250600091505b60288210156124e957506030600f8316016039600160a060020a038216111561249c576027015b8060f860020a0284836028036001018151811015156124b757fe5b906020010190600160f860020a031916908160001a9053506010600160a060020a038416049250600190910190612475565b5091949350505050565b606080826000015115611fbb576040805190810160405280600781526020017f7b226964223a22000000000000000000000000000000000000000000000000008152509050612548611d5d846020015161194a565b905061258b611d5d6040805190810160405280600181526020017f220000000000000000000000000000000000000000000000000000000000000081525061194a565b6080840151519091501561261c576125c1611d5d60408051908101604052806001815260200160fa60020a600b0281525061194a565b9050612604611d5d6040805190810160405280600981526020017f22616374696f6e223a000000000000000000000000000000000000000000000081525061194a565b9050612619611d5d6109398560800151611ff6565b90505b61265d611d5d6040805190810160405280600981526020017f2c2274797065223a22000000000000000000000000000000000000000000000081525061194a565b905061266f611d5d846040015161194a565b90506126b2611d5d6040805190810160405280600b81526020017f222c226c6162656c223a2200000000000000000000000000000000000000000081525061194a565b9050612156611d5d846060015161194a565b60a06040519081016040528060608152602001606081526020016060815260200160008152602001606081525090565b6101a0604051908101604052806000151581526020016060815260200160608152602001606081526020016060815260200161272e6127be565b815260200161273b6127eb565b905290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061278157805160ff19168380011785556127ae565b828001600101855582156127ae579182015b828111156127ae578251825591602001919060010190612793565b506127ba929150612859565b5090565b6040805160a081018252600080825260208201526060918101829052818101829052608081019190915290565b60606040519081016040528060001515815260200160608152602001606081525090565b6101206040519081016040528060001515815260200160608152602001606081526020016060815260200161273b6127be565b604080518082019091526000808252602082015290565b61175b91905b808211156127ba576000815560010161285f56007472616e73666572000000000000000000000000000000000000000000000000a165627a7a7230582027bd3b5ee4cced04c00cd7bc9f5c849df4264ebd3794d30bc4b3d4be5a03e9990029",
  "deployedBytecode": "0x6080604052600436106100a05763ffffffff60e060020a600035041663715018a681146100a557806376420e1d146100bc5780638143b2ea146101465780638b5827121461015b5780638da5cb5b14610170578063ac5c6e12146101a1578063ad7430cc146101b6578063ca1a70be146101cb578063d17891761461022f578063ed3487fe14610244578063f2fde38b14610319578063f65a5c1b1461033a575b600080fd5b3480156100b157600080fd5b506100ba6103d1565b005b3480156100c857600080fd5b506100d161043d565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561010b5781810151838201526020016100f3565b50505050905090810190601f1680156101385780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561015257600080fd5b506100d1610462565b34801561016757600080fd5b506100d1610499565b34801561017c57600080fd5b506101856104d0565b60408051600160a060020a039092168252519081900360200190f35b3480156101ad57600080fd5b506100d16104df565b3480156101c257600080fd5b506100d1610516565b3480156101d757600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526100d194369492936024939284019190819084018382808284375094975050509235600160a060020a0316935061054d92505050565b34801561023b57600080fd5b506100d1611473565b34801561025057600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526100ba94369492936024939284019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a99988101979196509182019450925082915084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a9998810197919650918201945092508291508401838280828437509497506114aa9650505050505050565b34801561032557600080fd5b506100ba600160a060020a0360043516611597565b34801561034657600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526100d194369492936024939284019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a9998810197919650918201945092508291508401838280828437509497506115ba9650505050505050565b600054600160a060020a031633146103e857600080fd5b60008054604051600160a060020a03909116917ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482091a26000805473ffffffffffffffffffffffffffffffffffffffff19169055565b6040805180820190915260088152600080516020612874833981519152602082015281565b60408051808201909152601081527f7472616e736665725f636f6e6669726d00000000000000000000000000000000602082015281565b60408051808201909152600a81527f73686f72745f6465736300000000000000000000000000000000000000000000602082015281565b600054600160a060020a031681565b60408051808201909152600981527f6c6f6e675f646573630000000000000000000000000000000000000000000000602082015281565b60408051808201909152600881527f7265636569766572000000000000000000000000000000000000000000000000602082015281565b6060806105586126c4565b83600160a060020a031663186601ca6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561059657600080fd5b505af11580156105aa573d6000803e3d6000fd5b505050506040513d60208110156105c057600080fd5b505115611459576040805160038082526080820190925290816020015b6105e56126f4565b8152602001906001900390816105dd57905050915060e0604051908101604052806001151581526020016040805190810160405280600881526020017f726563656976657200000000000000000000000000000000000000000000000081525081526020016040805190810160405280600b81526020017f616464726573734564697400000000000000000000000000000000000000000081525081526020016001876040518082805190602001908083835b602083106106b75780518252601f199092019160209182019101610698565b51815160209384036101000a6000190180199092169116179052920194855250604080519485900382018520858201825260088087527f726563656976657200000000000000000000000000000000000000000000000093870193845291519095945092508291908083835b602083106107425780518252601f199092019160209182019101610723565b518151600019602094850361010090810a820192831692199390931691909117909252949092019687526040805197889003820188208054601f60026001831615909802909501169590950492830182900482028801820190528187529294509250508301828280156107f65780601f106107cb576101008083540402835291602001916107f6565b820191906000526020600020905b8154815290600101906020018083116107d957829003601f168201915b505050505081526020016040805190810160405280600281526020017f2222000000000000000000000000000000000000000000000000000000000000815250815260200161084361170b565b815260200161085061175e565b905282518390600090811061086157fe5b9060200190602002018190525060e0604051908101604052806001151581526020016040805190810160405280600681526020017f616d6f756e740000000000000000000000000000000000000000000000000000815250815260200161098861093e61093988600160a060020a031663313ce5676040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561090557600080fd5b505af1158015610919573d6000803e3d6000fd5b505050506040513d602081101561092f57600080fd5b505160ff166117eb565b61194a565b61097c6040805190810160405280600981526020017f746f6b656e45646974000000000000000000000000000000000000000000000081525061194a565b9063ffffffff61197316565b81526020016001876040518082805190602001908083835b602083106109bf5780518252601f1990920191602091820191016109a0565b51815160209384036101000a6000190180199092169116179052920194855250604080519485900382018520858201825260068087527f616d6f756e74000000000000000000000000000000000000000000000000000093870193845291519095945092508291908083835b60208310610a4a5780518252601f199092019160209182019101610a2b565b518151600019602094850361010090810a820192831692199390931691909117909252949092019687526040805197889003820188208054601f6002600183161590980290950116959095049283018290048202880182019052818752929450925050830182828015610afe5780601f10610ad357610100808354040283529160200191610afe565b820191906000526020600020905b815481529060010190602001808311610ae157829003601f168201915b505050505081526020016040805190810160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152508152602001610b4b61170b565b8152602001610b5861175e565b9052825183906001908110610b6957fe5b9060200190602002018190525060e06040519081016040528060011515815260200160408051908101604052806008815260200160008051602061287483398151915281525081526020016040805190810160405280600681526020017f627574746f6e000000000000000000000000000000000000000000000000000081525081526020016001876040518082805190602001908083835b60208310610c215780518252601f199092019160209182019101610c02565b51815160209384036101000a60001901801990921691161790529201948552506040805194859003820185208582018252600880875260008051602061287483398151915293870193845291519095945092508291908083835b60208310610c9a5780518252601f199092019160209182019101610c7b565b518151600019602094850361010090810a820192831692199390931691909117909252949092019687526040805197889003820188208054601f6002600183161590980290950116959095049283018290048202880182019052818752929450925050830182828015610d4e5780601f10610d2357610100808354040283529160200191610d4e565b820191906000526020600020905b815481529060010190602001808311610d3157829003601f168201915b505050505081526020016040805190810160405280600481526020017f6e756c6c00000000000000000000000000000000000000000000000000000000815250815260200160a06040519081016040528060011515815260200187600160a060020a031681526020016040805190810160405280601981526020017f7472616e7366657228616464726573732c75696e74323536290000000000000081525081526020016040805190810160405280601581526020017f5b227265636569766572222c22616d6f756e74225d000000000000000000000081525081526020016001896040518082805190602001908083835b60208310610e5f5780518252601f199092019160209182019101610e40565b51815160209384036101000a6000190180199092169116179052920194855250604080519485900382018520858201825260108087527f7472616e736665725f636f6e6669726d0000000000000000000000000000000093870193845291519095945092508291908083835b60208310610eea5780518252601f199092019160209182019101610ecb565b518151600019602094850361010090810a820192831692199390931691909117909252949092019687526040805197889003820188208054601f6002600183161590980290950116959095049283018290048202880182019052818752929450925050830182828015610f9e5780601f10610f7357610100808354040283529160200191610f9e565b820191906000526020600020905b815481529060010190602001808311610f8157829003601f168201915b50505050508152508152602001610fb361175e565b9052825183906002908110610fc457fe5b9060200190602002018190525060a0604051908101604052806001876040518082805190602001908083835b6020831061100f5780518252601f199092019160209182019101610ff0565b51815160209384036101000a60001901801990921691161790529201948552506040805194859003820185208582018252600880875260008051602061287483398151915293870193845291519095945092508291908083835b602083106110885780518252601f199092019160209182019101611069565b518151600019602094850361010090810a820192831692199390931691909117909252949092019687526040805197889003820188208054601f600260018316159098029095011695909504928301829004820288018201905281875292945092505083018282801561113c5780601f106111115761010080835404028352916020019161113c565b820191906000526020600020905b81548152906001019060200180831161111f57829003601f168201915b505050505081526020016001876040518082805190602001908083835b602083106111785780518252601f199092019160209182019101611159565b51815160209384036101000a60001901801990921691161790529201948552506040805194859003820185208582018252600a8087527f73686f72745f646573630000000000000000000000000000000000000000000093870193845291519095945092508291908083835b602083106112035780518252601f1990920191602091820191016111e4565b518151600019602094850361010090810a820192831692199390931691909117909252949092019687526040805197889003820188208054601f60026001831615909802909501169590950492830182900482028801820190528187529294509250508301828280156112b75780601f1061128c576101008083540402835291602001916112b7565b820191906000526020600020905b81548152906001019060200180831161129a57829003601f168201915b505050505081526020016001876040518082805190602001908083835b602083106112f35780518252601f1990920191602091820191016112d4565b51815160209384036101000a6000190180199092169116179052920194855250604080519485900382018520858201825260098087527f6c6f6e675f64657363000000000000000000000000000000000000000000000093870193845291519095945092508291908083835b6020831061137e5780518252601f19909201916020918201910161135f565b518151600019602094850361010090810a820192831692199390931691909117909252949092019687526040805197889003820188208054601f60026001831615909802909501169590950492830182900482028801820190528187529294509250508301828280156114325780601f1061140757610100808354040283529160200191611432565b820191906000526020600020905b81548152906001019060200180831161141557829003601f168201915b5050505050815260200160048152602001838152509050611452816119ea565b925061146b565b60408051602081019091526000815292505b505092915050565b60408051808201909152600681527f616d6f756e740000000000000000000000000000000000000000000000000000602082015281565b600054600160a060020a031633146114c157600080fd5b806001846040518082805190602001908083835b602083106114f45780518252601f1990920191602091820191016114d5565b51815160209384036101000a6000190180199092169116179052920194855250604051938490038101842087519094889450925082918401908083835b602083106115505780518252601f199092019160209182019101611531565b51815160209384036101000a600019018019909216911617905292019485525060405193849003810190932084516115919591949190910192509050612740565b50505050565b600054600160a060020a031633146115ae57600080fd5b6115b781611c47565b50565b60606001836040518082805190602001908083835b602083106115ee5780518252601f1990920191602091820191016115cf565b51815160209384036101000a6000190180199092169116179052920194855250604051938490038101842086519094879450925082918401908083835b6020831061164a5780518252601f19909201916020918201910161162b565b518151600019602094850361010090810a820192831692199390931691909117909252949092019687526040805197889003820188208054601f60026001831615909802909501169590950492830182900482028801820190528187529294509250508301828280156116fe5780601f106116d3576101008083540402835291602001916116fe565b820191906000526020600020905b8154815290600101906020018083116116e157829003601f168201915b5050505050905092915050565b6117136127be565b506040805160a0810182526000808252602080830182905283518082018552828152838501528351808201855282815260608401528351908101909352825260808101919091525b90565b6117666127eb565b604080516060810182526000808252825181815260208181019094529192830191906117a8565b61179561280f565b81526020019060019003908161178d5790505b50815260200160006040519080825280602002602001820160405280156117e357816020015b60608152602001906001900390816117ce5790505b509052905090565b606080600081818515156118345760408051808201909152600181527f300000000000000000000000000000000000000000000000000000000000000060208201529450611941565b6040805160208082528183019092529080820161040080388339019050509350600092505b60008611156118a657600a860660300160f860020a02848481518110151561187d57fe5b906020010190600160f860020a031916908160001a905350600a86049550600190920191611859565b60408051848152601f19601f860116810160200190915260001984019380156118d9578160200160208202803883390190505b509150600090505b815181101561193d578351600019840193859181106118fc57fe5b90602001015160f860020a900460f860020a02828281518110151561191d57fe5b906020010190600160f860020a031916908160001a9053506001016118e1565b8194505b50505050919050565b611952612842565b50604080518082019091528151815260208281019082018190525b50919050565b606080600083600001518560000151016040519080825280601f01601f1916602001820160405280156119b0578160200160208202803883390190505b5091506020820190506119cc8186602001518760000151611cc4565b8451602085015185516119e29284019190611cc4565b509392505050565b60408051808201909152600a81527f7b227469746c65223a22000000000000000000000000000000000000000000006020820152815160609190600090611a3d90611a349061194a565b61097c8461194a565b9150611a80611a346040805190810160405280600f81526020017f222c2273686f727444657363223a22000000000000000000000000000000000081525061194a565b9150611a92611a34856020015161194a565b9150611ad5611a346040805190810160405280600e81526020017f222c226c6f6e6744657363223a2200000000000000000000000000000000000081525061194a565b9150611ae7611a34856040015161194a565b9150611b2a611a346040805190810160405280600a81526020017f222c227769647468223a0000000000000000000000000000000000000000000081525061194a565b9150611b3f611a3461093986606001516117eb565b9150611b82611a346040805190810160405280600d81526020017f2c22656c656d656e7473223a5b0000000000000000000000000000000000000081525061194a565b9150600090505b836080015151811015611bfe576000811115611bca57611bc7611a3460408051908101604052806001815260200160fa60020a600b0281525061194a565b91505b611bf4611a34610939866080015184815181101515611be557fe5b90602001906020020151611d08565b9150600101611b89565b611c3f611a346040805190810160405280600281526020017f5d7d00000000000000000000000000000000000000000000000000000000000081525061194a565b949350505050565b600160a060020a0381161515611c5c57600080fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60005b60208210611ce9578251845260209384019390920191601f1990910190611cc7565b50905182516020929092036101000a6000190180199091169116179052565b606080826000015115611fbb576040805190810160405280600781526020017f7b226964223a22000000000000000000000000000000000000000000000000008152509050611d66611d5d846020015161194a565b61097c8361194a565b9050611da9611d5d6040805190810160405280600181526020017f220000000000000000000000000000000000000000000000000000000000000081525061194a565b60a08401515190915015611e1057611df8611d5d6040805190810160405280600b81526020017f2c2022616374696f6e223a00000000000000000000000000000000000000000081525061194a565b9050611e0d611d5d6109398560a00151611ff6565b90505b60c08301515115611e7457611e5c611d5d6040805190810160405280600a81526020017f2c20227461626c65223a0000000000000000000000000000000000000000000081525061194a565b9050611e71611d5d6109398560c00151612199565b90505b611eb5611d5d6040805190810160405280600981526020017f2c2274797065223a22000000000000000000000000000000000000000000000081525061194a565b9050611ec7611d5d846040015161194a565b9050611f0a611d5d6040805190810160405280600b81526020017f222c226c6162656c223a2200000000000000000000000000000000000000000081525061194a565b9050611f1c611d5d846060015161194a565b9050611f5f611d5d6040805190810160405280600981526020017f222c2264617461223a000000000000000000000000000000000000000000000081525061194a565b9050611f71611d5d846080015161194a565b9050611fb4611d5d6040805190810160405280600181526020017f7d0000000000000000000000000000000000000000000000000000000000000081525061194a565b915061196d565b60408051808201909152600481527f6e756c6c000000000000000000000000000000000000000000000000000000006020820152915061196d565b606080826000015115611fbb576040805190810160405280600c81526020017f7b2261646472657373223a2200000000000000000000000000000000000000008152509050612057611d5d6109398560200151600160a060020a03166123b0565b905061209a611d5d6040805190810160405280601681526020017f222c2266756e6374696f6e53656c6563746f72223a220000000000000000000081525061194a565b90506120ac611d5d846040015161194a565b90506120ef611d5d6040805190810160405280600e81526020017f222c22617267756d656e7473223a00000000000000000000000000000000000081525061194a565b9050612101611d5d846060015161194a565b9050612144611d5d6040805190810160405280600c81526020017f2c22636f6e6669726d223a22000000000000000000000000000000000000000081525061194a565b9050612156611d5d846080015161194a565b9050611fb4611d5d6040805190810160405280600281526020017f227d00000000000000000000000000000000000000000000000000000000000081525061194a565b60608060008084600001511561237157505060408051808201909152600c81527f7b22636f6c756d6e73223a5b0000000000000000000000000000000000000000602082015290506000805b84602001515181101561226757600082111561222f5761222c61222360408051908101604052806001815260200160fa60020a600b0281525061194a565b61097c8561194a565b92505b61225961222361093987602001518481518110151561224a57fe5b906020019060200201516124f3565b9250600191820191016121e5565b6122a86122236040805190810160405280600a81526020017f5d2c22726f7773223a5b0000000000000000000000000000000000000000000081525061194a565b925060009150600090505b8460400151518110156123295760008211156122f4576122f161222360408051908101604052806001815260200160fa60020a600b0281525061194a565b92505b61231b61222386604001518381518110151561230c57fe5b9060200190602002015161194a565b9250600191820191016122b3565b61236a6122236040805190810160405280600281526020017f5d7d00000000000000000000000000000000000000000000000000000000000081525061194a565b93506123a8565b60408051808201909152600481527f6e756c6c00000000000000000000000000000000000000000000000000000000602082015293505b505050919050565b60408051602a80825260608083019093528291600091829182916020820161054080388339505081519195507f300000000000000000000000000000000000000000000000000000000000000091869150600090811061240c57fe5b906020010190600160f860020a031916908160001a90535083517f7800000000000000000000000000000000000000000000000000000000000000908590600190811061245557fe5b906020010190600160f860020a031916908160001a905350859250600091505b60288210156124e957506030600f8316016039600160a060020a038216111561249c576027015b8060f860020a0284836028036001018151811015156124b757fe5b906020010190600160f860020a031916908160001a9053506010600160a060020a038416049250600190910190612475565b5091949350505050565b606080826000015115611fbb576040805190810160405280600781526020017f7b226964223a22000000000000000000000000000000000000000000000000008152509050612548611d5d846020015161194a565b905061258b611d5d6040805190810160405280600181526020017f220000000000000000000000000000000000000000000000000000000000000081525061194a565b6080840151519091501561261c576125c1611d5d60408051908101604052806001815260200160fa60020a600b0281525061194a565b9050612604611d5d6040805190810160405280600981526020017f22616374696f6e223a000000000000000000000000000000000000000000000081525061194a565b9050612619611d5d6109398560800151611ff6565b90505b61265d611d5d6040805190810160405280600981526020017f2c2274797065223a22000000000000000000000000000000000000000000000081525061194a565b905061266f611d5d846040015161194a565b90506126b2611d5d6040805190810160405280600b81526020017f222c226c6162656c223a2200000000000000000000000000000000000000000081525061194a565b9050612156611d5d846060015161194a565b60a06040519081016040528060608152602001606081526020016060815260200160008152602001606081525090565b6101a0604051908101604052806000151581526020016060815260200160608152602001606081526020016060815260200161272e6127be565b815260200161273b6127eb565b905290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061278157805160ff19168380011785556127ae565b828001600101855582156127ae579182015b828111156127ae578251825591602001919060010190612793565b506127ba929150612859565b5090565b6040805160a081018252600080825260208201526060918101829052818101829052608081019190915290565b60606040519081016040528060001515815260200160608152602001606081525090565b6101206040519081016040528060001515815260200160608152602001606081526020016060815260200161273b6127be565b604080518082019091526000808252602082015290565b61175b91905b808211156127ba576000815560010161285f56007472616e73666572000000000000000000000000000000000000000000000000a165627a7a7230582027bd3b5ee4cced04c00cd7bc9f5c849df4264ebd3794d30bc4b3d4be5a03e9990029",
  "sourceMap": "253:2118:2:-;;;567:5:21;:18;;-1:-1:-1;;;;;;567:18:21;575:10;567:18;;;253:2118:2;;;;;;",
  "deployedSourceMap": "253:2118:2:-;;;;;;;;;-1:-1:-1;;;253:2118:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1001:111:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1001:111:21;;;;;;413:44:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;413:44:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;413:44:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;665:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;665:60:2;;;;463:48;;8:9:-1;5:2;;;30:1;27;20:12;5:2;463:48:2;;;;238:20:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;238:20:21;;;;;;;;-1:-1:-1;;;;;238:20:21;;;;;;;;;;;;;;517:46:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;517:46:2;;;;569:44;;8:9:-1;5:2;;;30:1;27;20:12;5:2;569:44:2;;;;732:1637;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;732:1637:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;732:1637:2;;-1:-1:-1;;;732:1637:2;;-1:-1:-1;;;;;732:1637:2;;-1:-1:-1;732:1637:2;;-1:-1:-1;;;732:1637:2;619:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;619:40:2;;;;186:126:12;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;186:126:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;186:126:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;186:126:12;;;;-1:-1:-1;186:126:12;-1:-1:-1;186:126:12;;-1:-1:-1;186:126:12;;;;;;;;-1:-1:-1;;186:126:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;186:126:12;;;;-1:-1:-1;186:126:12;-1:-1:-1;186:126:12;;-1:-1:-1;186:126:12;;;;;;;;-1:-1:-1;186:126:12;;-1:-1:-1;186:126:12;;-1:-1:-1;;;;;;;186:126:12;1274:103:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1274:103:21;-1:-1:-1;;;;;1274:103:21;;;;;318:120:12;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;318:120:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;318:120:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;318:120:12;;;;-1:-1:-1;318:120:12;-1:-1:-1;318:120:12;;-1:-1:-1;318:120:12;;;;;;;;-1:-1:-1;318:120:12;;-1:-1:-1;318:120:12;;-1:-1:-1;;;;;;;318:120:12;1001:111:21;719:5;;-1:-1:-1;;;;;719:5:21;705:10;:19;697:28;;;;;;1077:5;;;1058:25;;-1:-1:-1;;;;;1077:5:21;;;;1058:25;;;1105:1;1089:18;;-1:-1:-1;;1089:18:21;;;1001:111::o;413:44:2:-;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;413:44:2;;;;;:::o;665:60::-;;;;;;;;;;;;;;;;;;;:::o;463:48::-;;;;;;;;;;;;;;;;;;;:::o;238:20:21:-;;;-1:-1:-1;;;;;238:20:21;;:::o;517:46:2:-;;;;;;;;;;;;;;;;;;;:::o;569:44::-;;;;;;;;;;;;;;;;;;;:::o;732:1637::-;804:6;860:34;2031:28;;:::i;:::-;826:6;-1:-1:-1;;;;;826:16:2;;:18;;;;;-1:-1:-1;;;826:18:2;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;826:18:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;826:18:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;826:18:2;822:1541;;;897:25;;;920:1;897:25;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;860:62;;950:242;;;;;;;;;984:4;950:242;;;;;;1006:8;;;;;;;;;;;;;;;;;;950:242;;;;;;;;;;;;;;;;;;;;;;;;;;1063:9;1073:7;1063:18;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;1063:18:2;;;;;-1:-1:-1;1063:18:2;;;;;;;;;;;1082:8;;;;;;;;;;;;;;;;1063:28;;:18;;;-1:-1:-1;1063:28:2;-1:-1:-1;1063:28:2;;1082:8;;1063:28;1082:8;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;-1:-1;;263:2;259:12;;;254:3;250:22;;;246:30;;340:21;;;311:9;;295:26;;;;377:20;;;;365:33;;;1063:28:2;;;;;;;;;;;;;;;;;;950:242;;;;274:1:-1;950:242:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1063:28;;-1:-1:-1;950:242:2;-1:-1:-1;;950:242:2;;1063:28;950:242;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1131:15;:13;:15::i;:::-;950:242;;;;1164:14;:12;:14::i;:::-;950:242;;936:11;;:8;;945:1;;936:11;;;;;;;;;;;;;:256;;;;1220:298;;;;;;;;;1254:4;1220:298;;;;;;1276:6;;;;;;;;;;;;;;;;;;1220:298;;;;1300:74;1329:44;:34;1334:6;-1:-1:-1;;;;;1334:15:2;;:17;;;;;-1:-1:-1;;;1334:17:2;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1334:17:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1334:17:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1334:17:2;1329:23;;:32;:34::i;:::-;:42;:44::i;:::-;1300:21;:19;;;;;;;;;;;;;;;;;;;:21::i;:::-;:28;:74;:28;:74;:::i;:::-;1220:298;;;;1392:9;1402:7;1392:18;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;1392:18:2;;;;;-1:-1:-1;1392:18:2;;;;;;;;;;;1411:6;;;;;;;;;;;;;;;;1392:26;;:18;;;-1:-1:-1;1392:26:2;-1:-1:-1;1392:26:2;;1411:6;;1392:26;1411:6;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;-1:-1;;263:2;259:12;;;254:3;250:22;;;246:30;;340:21;;;311:9;;295:26;;;;377:20;;;;365:33;;;1392:26:2;;;;;;;;;;;;;;;;;;1220:298;;;;274:1:-1;1220:298:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1392:26;;-1:-1:-1;1220:298:2;-1:-1:-1;;1220:298:2;;1392:26;1220:298;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1457:15;:13;:15::i;:::-;1220:298;;;;1490:14;:12;:14::i;:::-;1220:298;;1206:11;;:8;;1215:1;;1206:11;;;;;;;;;;;;;:312;;;;1546:471;;;;;;;;;1580:4;1546:471;;;;;;1602:8;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1602:8:2;;;1546:471;;;;;;;;;;;;;;;;;;;;;;;;;;1654:9;1664:7;1654:18;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;1654:18:2;;;;;-1:-1:-1;1654:18:2;;;;;;;;;;;1673:8;;;;;;;;;-1:-1:-1;;;;;;;;;;;1673:8:2;;;;;;1654:28;;:18;;;-1:-1:-1;1654:28:2;-1:-1:-1;1654:28:2;;1673:8;;1654:28;1673:8;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;-1:-1;;263:2;259:12;;;254:3;250:22;;;246:30;;340:21;;;311:9;;295:26;;;;377:20;;;;365:33;;;1654:28:2;;;;;;;;;;;;;;;;;;1546:471;;;;274:1:-1;1546:471:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1654:28;;-1:-1:-1;1546:471:2;-1:-1:-1;;1546:471:2;;1654:28;1546:471;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1724:247;;;;;;;;;1760:4;1724:247;;;;;;1794:6;-1:-1:-1;;;;;1724:247:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1917:9;1927:7;1917:18;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;1917:18:2;;;;;-1:-1:-1;1917:18:2;;;;;;;;;;;1936:16;;;;;;;;;;;;;;;;1917:36;;:18;;;-1:-1:-1;1917:36:2;-1:-1:-1;1917:36:2;;1936:16;;1917:36;1936:16;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;-1:-1;;263:2;259:12;;;254:3;250:22;;;246:30;;340:21;;;311:9;;295:26;;;;377:20;;;;365:33;;;1917:36:2;;;;;;;;;;;;;;;;;;1724:247;;;;274:1:-1;1724:247:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1917:36;;-1:-1:-1;1724:247:2;-1:-1:-1;;1724:247:2;;1917:36;1724:247;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1546:471;;;;1989:14;:12;:14::i;:::-;1546:471;;1532:11;;:8;;1541:1;;1532:11;;;;;;;;;;;;;:485;;;;2062:214;;;;;;;;;2094:9;2104:7;2094:18;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;2094:18:2;;;;;-1:-1:-1;2094:18:2;;;;;;;;;;;2113:8;;;;;;;;;-1:-1:-1;;;;;;;;;;;2113:8:2;;;;;;2094:28;;:18;;;-1:-1:-1;2094:28:2;-1:-1:-1;2094:28:2;;2113:8;;2094:28;2113:8;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;-1:-1;;263:2;259:12;;;254:3;250:22;;;246:30;;340:21;;;311:9;;295:26;;;;377:20;;;;365:33;;;2094:28:2;;;;;;;;;;;;;;;;;;2062:214;;;;274:1:-1;2062:214:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2094:28;;-1:-1:-1;2062:214:2;-1:-1:-1;;2062:214:2;;2094:28;2062:214;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2140:9;2150:7;2140:18;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;2140:18:2;;;;;-1:-1:-1;2140:18:2;;;;;;;;;;;2159:10;;;;;;;;;;;;;;;;2140:30;;:18;;;-1:-1:-1;2140:30:2;-1:-1:-1;2140:30:2;;2159:10;;2140:30;2159:10;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;-1:-1;;263:2;259:12;;;254:3;250:22;;;246:30;;340:21;;;311:9;;295:26;;;;377:20;;;;365:33;;;2140:30:2;;;;;;;;;;;;;;;;;;2062:214;;;;274:1:-1;2062:214:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2140:30;;-1:-1:-1;2062:214:2;-1:-1:-1;;2062:214:2;;2140:30;2062:214;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2188:9;2198:7;2188:18;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;2188:18:2;;;;;-1:-1:-1;2188:18:2;;;;;;;;;;;2207:9;;;;;;;;;;;;;;;;2188:29;;:18;;;-1:-1:-1;2188:29:2;-1:-1:-1;2188:29:2;;2207:9;;2188:29;2207:9;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;-1:-1;;263:2;259:12;;;254:3;250:22;;;246:30;;340:21;;;311:9;;295:26;;;;377:20;;;;365:33;;;2188:29:2;;;;;;;;;;;;;;;;;;2062:214;;;;274:1:-1;2062:214:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2188:29;;-1:-1:-1;2062:214:2;-1:-1:-1;;2062:214:2;;2188:29;2062:214;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2235:1;2062:214;;;;2254:8;2062:214;;;2031:245;;2297:15;:6;:13;:15::i;:::-;2290:22;;;;822:1541;2343:9;;;;;;;;;-1:-1:-1;2343:9:2;;;-1:-1:-1;822:1541:2;732:1637;;;;;;:::o;619:40::-;;;;;;;;;;;;;;;;;;;:::o;186:126:12:-;719:5:21;;-1:-1:-1;;;;;719:5:21;705:10;:19;697:28;;;;;;300:5:12;275:9;285:6;275:17;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;275:17:12;;;;;-1:-1:-1;275:17:12;;;;;;;;;;:22;;:17;;:22;;-1:-1:-1;275:17:12;-1:-1:-1;275:17:12;;:22;;;;:17;:22;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;275:22:12;;;;;-1:-1:-1;275:22:12;;;;;;;;;;;:30;;;;:22;;:30;;;;;-1:-1:-1;275:30:12;-1:-1:-1;275:30:12;:::i;:::-;;186:126;;;:::o;1274:103:21:-;719:5;;-1:-1:-1;;;;;719:5:21;705:10;:19;697:28;;;;;;1343:29;1362:9;1343:18;:29::i;:::-;1274:103;:::o;318:120:12:-;384:6;409:9;419:6;409:17;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;409:17:12;;;;;-1:-1:-1;409:17:12;;;;;;;;;;:22;;:17;;:22;;-1:-1:-1;409:17:12;-1:-1:-1;409:17:12;;:22;;;;:17;:22;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;-1:-1;;263:2;259:12;;;254:3;250:22;;;246:30;;340:21;;;311:9;;295:26;;;;377:20;;;;365:33;;;409:22:12;;;;;;;;;;;;;;;;;;402:29;;;;274:1:-1;402:29:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;409:22;;-1:-1:-1;402:29:12;-1:-1:-1;;402:29:12;;409:22;402:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;318:120;;;;:::o;329:116:10:-;369:6;;:::i;:::-;-1:-1:-1;401:37:10;;;;;;;;-1:-1:-1;401:37:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;329:116;;:::o;374:124:13:-;414:5;;:::i;:::-;445:46;;;;;;;;-1:-1:-1;445:46:13;;;458:15;;;;;445:46;458:15;;;;;;445:46;;;;;458:15;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;445:46;;;;488:1;475:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;445:46:13;;438:53;-1:-1:-1;374:124:13;:::o;50:483:8:-;103:6;;231;103;231;132:10;;128:51;;;158:10;;;;;;;;;;;;;;;;;;-1:-1:-1;158:10:8;;128:51;208:13;;;218:2;208:13;;;;;;;;;;;;;17:15:-1;;105:10;208:13:8;88:34:-1;136:17;;-1:-1;208:13:8;188:33;;256:1;252:5;;247:111;267:1;259:5;:9;247:111;;;313:2;305:5;:10;319:2;304:17;-1:-1:-1;;;299:23:8;289:4;294:1;289:7;;;;;;;;;;;;;;:33;-1:-1:-1;;;;;289:33:8;;;;;;;;-1:-1:-1;345:2:8;336:11;;;-1:-1:-1;270:3:8;;;;;247:111;;;388:14;;;;;;-1:-1:-1;;388:14:8;;;;;;;;;;;-1:-1:-1;;398:3:8;;;388:14;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;388:14:8;;367:35;;426:1;417:10;;412:85;433:5;:12;429:1;:16;412:85;;;477:9;;-1:-1:-1;;482:3:8;;;477:4;;:9;;;;;;;;;;;-1:-1:-1;;;477:9:8;;-1:-1:-1;;;477:9:8;466:5;472:1;466:8;;;;;;;;;;;;;;:20;-1:-1:-1;;;;;466:20:8;;;;;;;;-1:-1:-1;447:3:8;;412:85;;;520:5;506:20;;50:483;;;;;;;;:::o;2837:210:9:-;2897:5;;:::i;:::-;-1:-1:-1;3010:30:9;;;;;;;;;3016:18;;3010:30;;2979:4;2969:15;;;3010:30;;;;;;2837:210;;;;;:::o;23944:355::-;24022:6;24047:17;24111:11;24090:5;:10;;;24078:4;:9;;;:22;24067:34;;;;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;24067:34:9;;24047:54;;24162:2;24157:3;24153:12;24143:22;;24176:36;24183:6;24191:4;:9;;;24202:4;:9;;;24176:6;:36::i;:::-;24238:9;;24249:10;;;;24261;;24222:50;;24229:18;;;24249:10;24222:6;:50::i;:::-;-1:-1:-1;24289:3:9;23944:355;-1:-1:-1;;;23944:355:9:o;392:943:14:-;470:33;;;;;;;;;;;;;;;;;542:11;;452:6;;470:33;1040:6;;520:44;;542:21;;:19;:21::i;:::-;520:14;:4;:12;:14::i;:44::-;513:51;;581:50;603:27;:25;;;;;;;;;;;;;;;;;;;:27::i;581:50::-;574:57;;648:48;670:25;:5;:15;;;:23;:25::i;648:48::-;641:55;;713:49;735:26;:24;;;;;;;;;;;;;;;;;;;:26::i;713:49::-;706:56;;779:47;801:24;:5;:14;;;:22;:24::i;779:47::-;772:54;;843:45;865:22;:20;;;;;;;;;;;;;;;;;;;:22::i;843:45::-;836:52;;905:55;927:32;:22;:5;:11;;;:20;:22::i;905:55::-;898:62;;977:48;999:25;:23;;;;;;;;;;;;;;;;;;;:25::i;977:48::-;970:55;;1049:1;1040:10;;1035:240;1056:5;:14;;;:21;1052:1;:25;1035:240;;;1106:1;1102;:5;1098:87;;;1134:36;1156:13;:11;;;;;;;;;;;;;;-1:-1:-1;;;;;1156:11:14;;;;:13::i;1134:36::-;1127:43;;1098:87;1205:59;1227:36;:26;:5;:14;;;1242:1;1227:17;;;;;;;;;;;;;;;;;;:24;:26::i;1205:59::-;1198:66;-1:-1:-1;1079:3:14;;1035:240;;;1291:37;1313:14;:12;;;;;;;;;;;;;;;;;;;:14::i;1291:37::-;1284:44;392:943;-1:-1:-1;;;;392:943:14:o;1512:171:21:-;-1:-1:-1;;;;;1582:23:21;;;;1574:32;;;;;;1638:5;;;1617:38;;-1:-1:-1;;;;;1617:38:21;;;;1638:5;;;1617:38;;;1661:5;:17;;-1:-1:-1;;1661:17:21;-1:-1:-1;;;;;1661:17:21;;;;;;;;;;1512:171::o;2089:548:9:-;2415:9;2209:164;2222:2;2215:9;;2209:164;;2291:10;;2278:24;;2337:2;2329:10;;;;2353:9;;;;-1:-1:-1;;2226:9:9;;;;2209:164;;;-1:-1:-1;2500:10:9;;2555:11;;2435:2;:8;;;;2427:3;:17;-1:-1:-1;;2427:21:9;2512:9;;2496:26;;;2551:22;;2599:21;2586:35;;2467:164::o;568:1172:11:-;629:6;679:18;651:5;:12;;;647:1087;;;679:30;;;;;;;;;;;;;;;;;;;;730:41;752:18;:5;:8;;;:16;:18::i;:::-;730:14;:4;:12;:14::i;:41::-;723:48;;792:36;814:13;:11;;;;;;;;;;;;;;;;;;;:13::i;792:36::-;846:12;;;;:19;785:43;;-1:-1:-1;842:190:11;;;892:46;914:23;:21;;;;;;;;;;;;;;;;;;;:23::i;892:46::-;885:53;;963:54;985:31;:21;:5;:12;;;:19;:21::i;963:54::-;956:61;;842:190;1049:11;;;;:18;1045:187;;;1094:45;1116:22;:20;;;;;;;;;;;;;;;;;;;:22::i;1094:45::-;1087:52;;1164:53;1186:30;:20;:5;:11;;;:18;:20::i;1164:53::-;1157:60;;1045:187;1252:44;1274:21;:19;;;;;;;;;;;;;;;;;;;:21::i;1252:44::-;1245:51;;1317:44;1339:21;:5;:11;;;:19;:21::i;1317:44::-;1310:51;;1382:46;1404:23;:21;;;;;;;;;;;;;;;;;;;:23::i;1382:46::-;1375:53;;1449:44;1471:21;:5;:11;;;:19;:21::i;1449:44::-;1442:51;;1514:44;1536:21;:19;;;;;;;;;;;;;;;;;;;:21::i;1514:44::-;1507:51;;1579:43;1601:20;:5;:10;;;:18;:20::i;1579:43::-;1572:50;;1643:36;1665:13;:11;;;;;;;;;;;;;;;;;;;:13::i;1643:36::-;1636:43;;;;647:1087;1710:13;;;;;;;;;;;;;;;;;;-1:-1:-1;1710:13:11;;451:765:10;511:6;561:18;533:5;:12;;;529:681;;;561:35;;;;;;;;;;;;;;;;;;;;617:52;639:29;:19;:5;:8;;;-1:-1:-1;;;;;639:17:10;;:19::i;617:52::-;610:59;;690:57;712:34;:32;;;;;;;;;;;;;;;;;;;:34::i;690:57::-;683:64;;768:55;790:32;:5;:22;;;:30;:32::i;768:55::-;761:62;;844:49;866:26;:24;;;;;;;;;;;;;;;;;;;:26::i;844:49::-;837:56;;914:48;936:25;:5;:15;;;:23;:25::i;914:48::-;907:55;;983:47;1005:24;:22;;;;;;;;;;;;;;;;;;;:24::i;983:47::-;976:54;;1051:46;1073:23;:5;:13;;;:21;:23::i;1051:46::-;1044:53;;1118:37;1140:14;:12;;;;;;;;;;;;;;;;;;;:14::i;504:978:13:-;563:6;613:18;662:11;696:6;585:5;:12;;;581:895;;;-1:-1:-1;;613:35:13;;;;;;;;;;;;;;;;;;-1:-1:-1;;;691:298:13;712:5;:13;;;:20;708:1;:24;691:298;;;770:1;761:6;:10;757:100;;;802:36;824:13;:11;;;;;;;;;;;;;;-1:-1:-1;;;;;824:11:13;;;;:13::i;:::-;802:14;:4;:12;:14::i;:36::-;795:43;;757:100;881:64;903:41;:31;917:5;:13;;;931:1;917:16;;;;;;;;;;;;;;;;;;903:13;:31::i;881:64::-;874:71;-1:-1:-1;973:1:13;963:11;;;;734:3;691:298;;;1009:45;1031:22;:20;;;;;;;;;;;;;;;;;;;:22::i;1009:45::-;1002:52;;1077:1;1068:10;;1101:1;1097:5;;1092:272;1108:5;:10;;;:17;1104:1;:21;1092:272;;;1163:1;1154:6;:10;1150:100;;;1195:36;1217:13;:11;;;;;;;;;;;;;;-1:-1:-1;;;;;1217:11:13;;;;:13::i;1195:36::-;1188:43;;1150:100;1274:46;1296:23;:5;:10;;;1307:1;1296:13;;;;;;;;;;;;;;;;;;:21;:23::i;1274:46::-;1267:53;-1:-1:-1;1348:1:13;1338:11;;;;1127:3;1092:272;;;1384:37;1406:14;:12;;;;;;;;;;;;;;;;;;;:14::i;1384:37::-;1377:44;;;;581:895;1452:13;;;;;;;;;;;;;;;;;;-1:-1:-1;581:895:13;504:978;;;;;;:::o;206:443:7:-;307:13;;;317:2;307:13;;;262:6;307:13;;;;;;262:6;;387:11;;;;;;307:13;;;17:15:-1;;105:10;307:13:7;88:34:-1;-1:-1;;330:7:7;;287:33;;-1:-1:-1;340:8:7;;287:33;;-1:-1:-1;335:1:7;;330:7;;;;;;;;;;:18;-1:-1:-1;;;;;330:18:7;;;;;;;;-1:-1:-1;358:7:7;;368:9;;358:4;;363:1;;358:7;;;;;;;;;;:19;-1:-1:-1;;;;;358:19:7;;;;;;;;;409:5;387:28;;450:1;446:5;;441:173;457:2;453:1;:6;441:173;;;-1:-1:-1;505:2:7;493:8;;;492:15;529:2;-1:-1:-1;;;;;525:6:7;;;521:19;;;538:2;533:7;521:19;578:1;-1:-1:-1;;;573:7:7;554:4;564:1;559:2;:6;568:1;559:10;554:16;;;;;;;;;;;;;;:26;-1:-1:-1;;;;;554:26:7;;;;;;;;-1:-1:-1;601:2:7;-1:-1:-1;;;;;594:9:7;;;;-1:-1:-1;461:3:7;;;;;441:173;;;-1:-1:-1;637:4:7;;206:443;-1:-1:-1;;;;206:443:7:o;1488:909:13:-;1555:6;1605:18;1577:5;:12;;;1573:818;;;1605:30;;;;;;;;;;;;;;;;;;;;1656:41;1678:18;:5;:8;;;:16;:18::i;1656:41::-;1649:48;;1718:36;1740:13;:11;;;;;;;;;;;;;;;;;;;:13::i;1718:36::-;1772:12;;;;:19;1711:43;;-1:-1:-1;1768:249:13;;;1818:36;1840:13;:11;;;;;;;;;;;;;;-1:-1:-1;;;;;1840:11:13;;;;:13::i;1818:36::-;1811:43;;1879:44;1901:21;:19;;;;;;;;;;;;;;;;;;;:21::i;1879:44::-;1872:51;;1948:54;1970:31;:21;:5;:12;;;:19;:21::i;1948:54::-;1941:61;;1768:249;2037:44;2059:21;:19;;;;;;;;;;;;;;;;;;;:21::i;2037:44::-;2030:51;;2102:44;2124:21;:5;:11;;;:19;:21::i;2102:44::-;2095:51;;2167:46;2189:23;:21;;;;;;;;;;;;;;;;;;;:23::i;2167:46::-;2160:53;;2234:44;2256:21;:5;:11;;;:19;:21::i;253:2118:2:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;253:2118:2;;;-1:-1:-1;253:2118:2;:::i;:::-;;;:::o;:::-;;;;;;;;;-1:-1:-1;253:2118:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;253:2118:2;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;",
  "source": "pragma solidity ^0.4.24;\n\nimport \"./ERC20TokenWidgetRenderer.sol\";\nimport \"tokenboost-solidity/contracts/utils/strings.sol\";\nimport \"tokenboost-solidity/contracts/widget/Widgets.sol\";\nimport \"zeppelin-solidity/contracts/token/ERC20/DetailedERC20.sol\";\n\ncontract TransferWidgetRenderer is ERC20TokenWidgetRenderer {\n    using strings for *;\n    using Widgets for Widgets.Widget;\n    using UintUtils for uint;\n\n    string public constant TRANSFER = \"transfer\";\n    string public constant SHORT_DESC = \"short_desc\";\n    string public constant LONG_DESC = \"long_desc\";\n    string public constant RECEIVER = \"receiver\";\n    string public constant AMOUNT = \"amount\";\n    string public constant TRANSFER_CONFIRM = \"transfer_confirm\";\n\n    function render(string _locale, ERC20Token _token) public view returns (string) {\n        if (_token.activated()) {\n            Elements.Element[] memory elements = new Elements.Element[](3);\n            elements[0] = Elements.Element(\n                true,\n                RECEIVER,\n                \"addressEdit\",\n                resources[_locale][RECEIVER],\n                '\"\"',\n                Actions.empty(),\n                Tables.empty()\n            );\n            elements[1] = Elements.Element(\n                true,\n                AMOUNT,\n                \"tokenEdit\".toSlice().concat(uint(_token.decimals()).toString().toSlice()),\n                resources[_locale][AMOUNT],\n                \"0\",\n                Actions.empty(),\n                Tables.empty()\n            );\n            elements[2] = Elements.Element(\n                true,\n                TRANSFER,\n                \"button\",\n                resources[_locale][TRANSFER],\n                \"null\",\n                Actions.Action(\n                    true,\n                    address(_token),\n                    \"transfer(address,uint256)\",\n                    '[\"receiver\",\"amount\"]',\n                    resources[_locale][TRANSFER_CONFIRM]\n                ),\n                Tables.empty()\n            );\n            Widgets.Widget memory widget = Widgets.Widget(\n                resources[_locale][TRANSFER],\n                resources[_locale][SHORT_DESC],\n                resources[_locale][LONG_DESC],\n                4,\n                elements\n            );\n            return widget.toJson();\n        } else {\n            return \"\";\n        }\n    }\n}\n",
  "sourcePath": "/Users/yoonjae/SolidityProjects/tokenboost-solidity-erc20token/contracts/token/erc20/widget/TransferWidgetRenderer.sol",
  "ast": {
    "absolutePath": "/Users/yoonjae/SolidityProjects/tokenboost-solidity-erc20token/contracts/token/erc20/widget/TransferWidgetRenderer.sol",
    "exportedSymbols": {
      "TransferWidgetRenderer": [
        478
      ]
    },
    "id": 479,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 294,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".24"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:24:2"
      },
      {
        "absolutePath": "/Users/yoonjae/SolidityProjects/tokenboost-solidity-erc20token/contracts/token/erc20/widget/ERC20TokenWidgetRenderer.sol",
        "file": "./ERC20TokenWidgetRenderer.sol",
        "id": 295,
        "nodeType": "ImportDirective",
        "scope": 479,
        "sourceUnit": 293,
        "src": "26:40:2",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "tokenboost-solidity/contracts/utils/strings.sol",
        "file": "tokenboost-solidity/contracts/utils/strings.sol",
        "id": 296,
        "nodeType": "ImportDirective",
        "scope": 479,
        "sourceUnit": 2701,
        "src": "67:57:2",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "tokenboost-solidity/contracts/widget/Widgets.sol",
        "file": "tokenboost-solidity/contracts/widget/Widgets.sol",
        "id": 297,
        "nodeType": "ImportDirective",
        "scope": 479,
        "sourceUnit": 3645,
        "src": "125:58:2",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "zeppelin-solidity/contracts/token/ERC20/DetailedERC20.sol",
        "file": "zeppelin-solidity/contracts/token/ERC20/DetailedERC20.sol",
        "id": 298,
        "nodeType": "ImportDirective",
        "scope": 479,
        "sourceUnit": 4324,
        "src": "184:67:2",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 299,
              "name": "ERC20TokenWidgetRenderer",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 292,
              "src": "288:24:2",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_ERC20TokenWidgetRenderer_$292",
                "typeString": "contract ERC20TokenWidgetRenderer"
              }
            },
            "id": 300,
            "nodeType": "InheritanceSpecifier",
            "src": "288:24:2"
          }
        ],
        "contractDependencies": [
          292,
          3125,
          4122
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 478,
        "linearizedBaseContracts": [
          478,
          292,
          3125,
          4122
        ],
        "name": "TransferWidgetRenderer",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "id": 302,
            "libraryName": {
              "contractScope": null,
              "id": 301,
              "name": "strings",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 2700,
              "src": "325:7:2",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_strings_$2700",
                "typeString": "library strings"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "319:20:2",
            "typeName": null
          },
          {
            "id": 305,
            "libraryName": {
              "contractScope": null,
              "id": 303,
              "name": "Widgets",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 3644,
              "src": "350:7:2",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Widgets_$3644",
                "typeString": "library Widgets"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "344:33:2",
            "typeName": {
              "contractScope": null,
              "id": 304,
              "name": "Widgets.Widget",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 3482,
              "src": "362:14:2",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_Widget_$3482_storage_ptr",
                "typeString": "struct Widgets.Widget"
              }
            }
          },
          {
            "id": 308,
            "libraryName": {
              "contractScope": null,
              "id": 306,
              "name": "UintUtils",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 1005,
              "src": "388:9:2",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_UintUtils_$1005",
                "typeString": "library UintUtils"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "382:25:2",
            "typeName": {
              "id": 307,
              "name": "uint",
              "nodeType": "ElementaryTypeName",
              "src": "402:4:2",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            }
          },
          {
            "constant": true,
            "id": 311,
            "name": "TRANSFER",
            "nodeType": "VariableDeclaration",
            "scope": 478,
            "src": "413:44:2",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 309,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "413:6:2",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "7472616e73666572",
              "id": 310,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "447:10:2",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_b483afd3f4caedc6eebf44246fe54e38c95e3179a5ec9ea81740eca5b482d12e",
                "typeString": "literal_string \"transfer\""
              },
              "value": "transfer"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 314,
            "name": "SHORT_DESC",
            "nodeType": "VariableDeclaration",
            "scope": 478,
            "src": "463:48:2",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 312,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "463:6:2",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "73686f72745f64657363",
              "id": 313,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "499:12:2",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_94c241f8e931f92c2d4b9c8bf91f277610ffbc69f83ddd91d5e8535e49fe7894",
                "typeString": "literal_string \"short_desc\""
              },
              "value": "short_desc"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 317,
            "name": "LONG_DESC",
            "nodeType": "VariableDeclaration",
            "scope": 478,
            "src": "517:46:2",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 315,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "517:6:2",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "6c6f6e675f64657363",
              "id": 316,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "552:11:2",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_a47709c5db6426dae60658aa3fe6818a09dac224ef85f317a31b897413052755",
                "typeString": "literal_string \"long_desc\""
              },
              "value": "long_desc"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 320,
            "name": "RECEIVER",
            "nodeType": "VariableDeclaration",
            "scope": 478,
            "src": "569:44:2",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 318,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "569:6:2",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "7265636569766572",
              "id": 319,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "603:10:2",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_5e784e45feb63c375016d4ce5c52a57b0a48b8a170bc2e31463be0d03d1c4db6",
                "typeString": "literal_string \"receiver\""
              },
              "value": "receiver"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 323,
            "name": "AMOUNT",
            "nodeType": "VariableDeclaration",
            "scope": 478,
            "src": "619:40:2",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 321,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "619:6:2",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "616d6f756e74",
              "id": 322,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "651:8:2",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_89c4783cb6cc307f98e95f2d5d5d8647bdb3d4bdd087209374f187b38e098895",
                "typeString": "literal_string \"amount\""
              },
              "value": "amount"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 326,
            "name": "TRANSFER_CONFIRM",
            "nodeType": "VariableDeclaration",
            "scope": 478,
            "src": "665:60:2",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 324,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "665:6:2",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "7472616e736665725f636f6e6669726d",
              "id": 325,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "707:18:2",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_b39b8944fa54c167cc3ed6257853579d7d909def04e14c56ff431f76134a4dda",
                "typeString": "literal_string \"transfer_confirm\""
              },
              "value": "transfer_confirm"
            },
            "visibility": "public"
          },
          {
            "body": {
              "id": 476,
              "nodeType": "Block",
              "src": "812:1557:2",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "argumentTypes": null,
                        "id": 335,
                        "name": "_token",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 330,
                        "src": "826:6:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ERC20Token_$273",
                          "typeString": "contract ERC20Token"
                        }
                      },
                      "id": 336,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "activated",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 482,
                      "src": "826:16:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$__$returns$_t_bool_$",
                        "typeString": "function () view external returns (bool)"
                      }
                    },
                    "id": 337,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "826:18:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 474,
                    "nodeType": "Block",
                    "src": "2329:34:2",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "hexValue": "",
                          "id": 472,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "string",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2350:2:2",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                            "typeString": "literal_string \"\""
                          },
                          "value": ""
                        },
                        "functionReturnParameters": 334,
                        "id": 473,
                        "nodeType": "Return",
                        "src": "2343:9:2"
                      }
                    ]
                  },
                  "id": 475,
                  "nodeType": "IfStatement",
                  "src": "822:1541:2",
                  "trueBody": {
                    "id": 471,
                    "nodeType": "Block",
                    "src": "846:1477:2",
                    "statements": [
                      {
                        "assignments": [
                          342
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 342,
                            "name": "elements",
                            "nodeType": "VariableDeclaration",
                            "scope": 477,
                            "src": "860:34:2",
                            "stateVariable": false,
                            "storageLocation": "memory",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_struct$_Element_$2876_memory_$dyn_memory_ptr",
                              "typeString": "struct Elements.Element[]"
                            },
                            "typeName": {
                              "baseType": {
                                "contractScope": null,
                                "id": 340,
                                "name": "Elements.Element",
                                "nodeType": "UserDefinedTypeName",
                                "referencedDeclaration": 2876,
                                "src": "860:16:2",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Element_$2876_storage_ptr",
                                  "typeString": "struct Elements.Element"
                                }
                              },
                              "id": 341,
                              "length": null,
                              "nodeType": "ArrayTypeName",
                              "src": "860:18:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_struct$_Element_$2876_storage_$dyn_storage_ptr",
                                "typeString": "struct Elements.Element[]"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 348,
                        "initialValue": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "hexValue": "33",
                              "id": 346,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "920:1:2",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_3_by_1",
                                "typeString": "int_const 3"
                              },
                              "value": "3"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_rational_3_by_1",
                                "typeString": "int_const 3"
                              }
                            ],
                            "id": 345,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "NewExpression",
                            "src": "897:22:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_Element_$2876_memory_$dyn_memory_$",
                              "typeString": "function (uint256) pure returns (struct Elements.Element memory[] memory)"
                            },
                            "typeName": {
                              "baseType": {
                                "contractScope": null,
                                "id": 343,
                                "name": "Elements.Element",
                                "nodeType": "UserDefinedTypeName",
                                "referencedDeclaration": 2876,
                                "src": "901:16:2",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Element_$2876_storage_ptr",
                                  "typeString": "struct Elements.Element"
                                }
                              },
                              "id": 344,
                              "length": null,
                              "nodeType": "ArrayTypeName",
                              "src": "901:18:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_struct$_Element_$2876_storage_$dyn_storage_ptr",
                                "typeString": "struct Elements.Element[]"
                              }
                            }
                          },
                          "id": 347,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "897:25:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_struct$_Element_$2876_memory_$dyn_memory",
                            "typeString": "struct Elements.Element memory[] memory"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "860:62:2"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 370,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 349,
                              "name": "elements",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 342,
                              "src": "936:8:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_struct$_Element_$2876_memory_$dyn_memory_ptr",
                                "typeString": "struct Elements.Element memory[] memory"
                              }
                            },
                            "id": 351,
                            "indexExpression": {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 350,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "945:1:2",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "936:11:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Element_$2876_memory",
                              "typeString": "struct Elements.Element memory"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "74727565",
                                "id": 354,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "bool",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "984:4:2",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                "value": "true"
                              },
                              {
                                "argumentTypes": null,
                                "id": 355,
                                "name": "RECEIVER",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 320,
                                "src": "1006:8:2",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_string_memory",
                                  "typeString": "string memory"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "hexValue": "6164647265737345646974",
                                "id": 356,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "string",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "1032:13:2",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_stringliteral_9da0ac31fc220ced4c03decd71d5120e5144f94b04cabb5c22d40a0b3ec00e0c",
                                  "typeString": "literal_string \"addressEdit\""
                                },
                                "value": "addressEdit"
                              },
                              {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 357,
                                    "name": "resources",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 3088,
                                    "src": "1063:9:2",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_mapping$_t_string_memory_$_t_mapping$_t_string_memory_$_t_string_storage_$_$",
                                      "typeString": "mapping(string memory => mapping(string memory => string storage ref))"
                                    }
                                  },
                                  "id": 359,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 358,
                                    "name": "_locale",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 328,
                                    "src": "1073:7:2",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_string_memory_ptr",
                                      "typeString": "string memory"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "1063:18:2",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_string_memory_$_t_string_storage_$",
                                    "typeString": "mapping(string memory => string storage ref)"
                                  }
                                },
                                "id": 361,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 360,
                                  "name": "RECEIVER",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 320,
                                  "src": "1082:8:2",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_string_memory",
                                    "typeString": "string memory"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "1063:28:2",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_string_storage",
                                  "typeString": "string storage ref"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "hexValue": "2222",
                                "id": 362,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "string",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "1109:4:2",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_stringliteral_2392a80f8a87b8cfde0aa5c84e199f163aae4c2a4c512d37598362ace687ad0c",
                                  "typeString": "literal_string \"\"\"\""
                                },
                                "value": "\"\""
                              },
                              {
                                "argumentTypes": null,
                                "arguments": [],
                                "expression": {
                                  "argumentTypes": [],
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 363,
                                    "name": "Actions",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2848,
                                    "src": "1131:7:2",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_contract$_Actions_$2848_$",
                                      "typeString": "type(library Actions)"
                                    }
                                  },
                                  "id": 364,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "empty",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 2736,
                                  "src": "1131:13:2",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Action_$2720_memory_ptr_$",
                                    "typeString": "function () pure returns (struct Actions.Action memory)"
                                  }
                                },
                                "id": 365,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "1131:15:2",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Action_$2720_memory_ptr",
                                  "typeString": "struct Actions.Action memory"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "arguments": [],
                                "expression": {
                                  "argumentTypes": [],
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 366,
                                    "name": "Tables",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 3457,
                                    "src": "1164:6:2",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_contract$_Tables_$3457_$",
                                      "typeString": "type(library Tables)"
                                    }
                                  },
                                  "id": 367,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "empty",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 3173,
                                  "src": "1164:12:2",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Table_$3153_memory_ptr_$",
                                    "typeString": "function () pure returns (struct Tables.Table memory)"
                                  }
                                },
                                "id": 368,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "1164:14:2",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Table_$3153_memory_ptr",
                                  "typeString": "struct Tables.Table memory"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                {
                                  "typeIdentifier": "t_string_memory",
                                  "typeString": "string memory"
                                },
                                {
                                  "typeIdentifier": "t_stringliteral_9da0ac31fc220ced4c03decd71d5120e5144f94b04cabb5c22d40a0b3ec00e0c",
                                  "typeString": "literal_string \"addressEdit\""
                                },
                                {
                                  "typeIdentifier": "t_string_storage",
                                  "typeString": "string storage ref"
                                },
                                {
                                  "typeIdentifier": "t_stringliteral_2392a80f8a87b8cfde0aa5c84e199f163aae4c2a4c512d37598362ace687ad0c",
                                  "typeString": "literal_string \"\"\"\""
                                },
                                {
                                  "typeIdentifier": "t_struct$_Action_$2720_memory_ptr",
                                  "typeString": "struct Actions.Action memory"
                                },
                                {
                                  "typeIdentifier": "t_struct$_Table_$3153_memory_ptr",
                                  "typeString": "struct Tables.Table memory"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "id": 352,
                                "name": "Elements",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3077,
                                "src": "950:8:2",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_Elements_$3077_$",
                                  "typeString": "type(library Elements)"
                                }
                              },
                              "id": 353,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "Element",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 2876,
                              "src": "950:16:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_struct$_Element_$2876_storage_ptr_$",
                                "typeString": "type(struct Elements.Element storage pointer)"
                              }
                            },
                            "id": 369,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "structConstructorCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "950:242:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Element_$2876_memory",
                              "typeString": "struct Elements.Element memory"
                            }
                          },
                          "src": "936:256:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Element_$2876_memory",
                            "typeString": "struct Elements.Element memory"
                          }
                        },
                        "id": 371,
                        "nodeType": "ExpressionStatement",
                        "src": "936:256:2"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 406,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 372,
                              "name": "elements",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 342,
                              "src": "1206:8:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_struct$_Element_$2876_memory_$dyn_memory_ptr",
                                "typeString": "struct Elements.Element memory[] memory"
                              }
                            },
                            "id": 374,
                            "indexExpression": {
                              "argumentTypes": null,
                              "hexValue": "31",
                              "id": 373,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "1215:1:2",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_1_by_1",
                                "typeString": "int_const 1"
                              },
                              "value": "1"
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "1206:11:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Element_$2876_memory",
                              "typeString": "struct Elements.Element memory"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "74727565",
                                "id": 377,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "bool",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "1254:4:2",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                "value": "true"
                              },
                              {
                                "argumentTypes": null,
                                "id": 378,
                                "name": "AMOUNT",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 323,
                                "src": "1276:6:2",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_string_memory",
                                  "typeString": "string memory"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "arguments": [],
                                    "expression": {
                                      "argumentTypes": [],
                                      "expression": {
                                        "argumentTypes": null,
                                        "arguments": [],
                                        "expression": {
                                          "argumentTypes": [],
                                          "expression": {
                                            "argumentTypes": null,
                                            "arguments": [
                                              {
                                                "argumentTypes": null,
                                                "arguments": [],
                                                "expression": {
                                                  "argumentTypes": [],
                                                  "expression": {
                                                    "argumentTypes": null,
                                                    "id": 384,
                                                    "name": "_token",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 330,
                                                    "src": "1334:6:2",
                                                    "typeDescriptions": {
                                                      "typeIdentifier": "t_contract$_ERC20Token_$273",
                                                      "typeString": "contract ERC20Token"
                                                    }
                                                  },
                                                  "id": 385,
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": false,
                                                  "lValueRequested": false,
                                                  "memberName": "decimals",
                                                  "nodeType": "MemberAccess",
                                                  "referencedDeclaration": 19,
                                                  "src": "1334:15:2",
                                                  "typeDescriptions": {
                                                    "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$",
                                                    "typeString": "function () view external returns (uint8)"
                                                  }
                                                },
                                                "id": 386,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "functionCall",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "1334:17:2",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_uint8",
                                                  "typeString": "uint8"
                                                }
                                              }
                                            ],
                                            "expression": {
                                              "argumentTypes": [
                                                {
                                                  "typeIdentifier": "t_uint8",
                                                  "typeString": "uint8"
                                                }
                                              ],
                                              "id": 383,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "nodeType": "ElementaryTypeNameExpression",
                                              "src": "1329:4:2",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_type$_t_uint256_$",
                                                "typeString": "type(uint256)"
                                              },
                                              "typeName": "uint"
                                            },
                                            "id": 387,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "typeConversion",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "1329:23:2",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          },
                                          "id": 388,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberName": "toString",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 1004,
                                          "src": "1329:32:2",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$bound_to$_t_uint256_$",
                                            "typeString": "function (uint256) pure returns (string memory)"
                                          }
                                        },
                                        "id": 389,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "1329:34:2",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_string_memory_ptr",
                                          "typeString": "string memory"
                                        }
                                      },
                                      "id": 390,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "toSlice",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 1072,
                                      "src": "1329:42:2",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_slice_$1012_memory_ptr_$bound_to$_t_string_memory_ptr_$",
                                        "typeString": "function (string memory) pure returns (struct strings.slice memory)"
                                      }
                                    },
                                    "id": 391,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "functionCall",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "1329:44:2",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_slice_$1012_memory_ptr",
                                      "typeString": "struct strings.slice memory"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_struct$_slice_$1012_memory_ptr",
                                      "typeString": "struct strings.slice memory"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": null,
                                    "arguments": [],
                                    "expression": {
                                      "argumentTypes": [],
                                      "expression": {
                                        "argumentTypes": null,
                                        "hexValue": "746f6b656e45646974",
                                        "id": 379,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "string",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "1300:11:2",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_stringliteral_99de3d4fb3ed3400bcd89eb9e537fe6b559627add648abf4e34c8e6921ff6615",
                                          "typeString": "literal_string \"tokenEdit\""
                                        },
                                        "value": "tokenEdit"
                                      },
                                      "id": 380,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "toSlice",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 1072,
                                      "src": "1300:19:2",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_slice_$1012_memory_ptr_$bound_to$_t_string_memory_ptr_$",
                                        "typeString": "function (string memory) pure returns (struct strings.slice memory)"
                                      }
                                    },
                                    "id": 381,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "functionCall",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "1300:21:2",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_slice_$1012_memory_ptr",
                                      "typeString": "struct strings.slice memory"
                                    }
                                  },
                                  "id": 382,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "concat",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 2585,
                                  "src": "1300:28:2",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$_t_struct$_slice_$1012_memory_ptr_$_t_struct$_slice_$1012_memory_ptr_$returns$_t_string_memory_ptr_$bound_to$_t_struct$_slice_$1012_memory_ptr_$",
                                    "typeString": "function (struct strings.slice memory,struct strings.slice memory) pure returns (string memory)"
                                  }
                                },
                                "id": 392,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "1300:74:2",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 393,
                                    "name": "resources",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 3088,
                                    "src": "1392:9:2",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_mapping$_t_string_memory_$_t_mapping$_t_string_memory_$_t_string_storage_$_$",
                                      "typeString": "mapping(string memory => mapping(string memory => string storage ref))"
                                    }
                                  },
                                  "id": 395,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 394,
                                    "name": "_locale",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 328,
                                    "src": "1402:7:2",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_string_memory_ptr",
                                      "typeString": "string memory"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "1392:18:2",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_string_memory_$_t_string_storage_$",
                                    "typeString": "mapping(string memory => string storage ref)"
                                  }
                                },
                                "id": 397,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 396,
                                  "name": "AMOUNT",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 323,
                                  "src": "1411:6:2",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_string_memory",
                                    "typeString": "string memory"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "1392:26:2",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_string_storage",
                                  "typeString": "string storage ref"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "hexValue": "30",
                                "id": 398,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "string",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "1436:3:2",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
                                  "typeString": "literal_string \"0\""
                                },
                                "value": "0"
                              },
                              {
                                "argumentTypes": null,
                                "arguments": [],
                                "expression": {
                                  "argumentTypes": [],
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 399,
                                    "name": "Actions",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2848,
                                    "src": "1457:7:2",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_contract$_Actions_$2848_$",
                                      "typeString": "type(library Actions)"
                                    }
                                  },
                                  "id": 400,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "empty",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 2736,
                                  "src": "1457:13:2",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Action_$2720_memory_ptr_$",
                                    "typeString": "function () pure returns (struct Actions.Action memory)"
                                  }
                                },
                                "id": 401,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "1457:15:2",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Action_$2720_memory_ptr",
                                  "typeString": "struct Actions.Action memory"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "arguments": [],
                                "expression": {
                                  "argumentTypes": [],
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 402,
                                    "name": "Tables",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 3457,
                                    "src": "1490:6:2",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_contract$_Tables_$3457_$",
                                      "typeString": "type(library Tables)"
                                    }
                                  },
                                  "id": 403,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "empty",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 3173,
                                  "src": "1490:12:2",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Table_$3153_memory_ptr_$",
                                    "typeString": "function () pure returns (struct Tables.Table memory)"
                                  }
                                },
                                "id": 404,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "1490:14:2",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Table_$3153_memory_ptr",
                                  "typeString": "struct Tables.Table memory"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                {
                                  "typeIdentifier": "t_string_memory",
                                  "typeString": "string memory"
                                },
                                {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                },
                                {
                                  "typeIdentifier": "t_string_storage",
                                  "typeString": "string storage ref"
                                },
                                {
                                  "typeIdentifier": "t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
                                  "typeString": "literal_string \"0\""
                                },
                                {
                                  "typeIdentifier": "t_struct$_Action_$2720_memory_ptr",
                                  "typeString": "struct Actions.Action memory"
                                },
                                {
                                  "typeIdentifier": "t_struct$_Table_$3153_memory_ptr",
                                  "typeString": "struct Tables.Table memory"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "id": 375,
                                "name": "Elements",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3077,
                                "src": "1220:8:2",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_Elements_$3077_$",
                                  "typeString": "type(library Elements)"
                                }
                              },
                              "id": 376,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "Element",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 2876,
                              "src": "1220:16:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_struct$_Element_$2876_storage_ptr_$",
                                "typeString": "type(struct Elements.Element storage pointer)"
                              }
                            },
                            "id": 405,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "structConstructorCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "1220:298:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Element_$2876_memory",
                              "typeString": "struct Elements.Element memory"
                            }
                          },
                          "src": "1206:312:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Element_$2876_memory",
                            "typeString": "struct Elements.Element memory"
                          }
                        },
                        "id": 407,
                        "nodeType": "ExpressionStatement",
                        "src": "1206:312:2"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 440,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 408,
                              "name": "elements",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 342,
                              "src": "1532:8:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_struct$_Element_$2876_memory_$dyn_memory_ptr",
                                "typeString": "struct Elements.Element memory[] memory"
                              }
                            },
                            "id": 410,
                            "indexExpression": {
                              "argumentTypes": null,
                              "hexValue": "32",
                              "id": 409,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "1541:1:2",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_2_by_1",
                                "typeString": "int_const 2"
                              },
                              "value": "2"
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "1532:11:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Element_$2876_memory",
                              "typeString": "struct Elements.Element memory"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "74727565",
                                "id": 413,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "bool",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "1580:4:2",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                "value": "true"
                              },
                              {
                                "argumentTypes": null,
                                "id": 414,
                                "name": "TRANSFER",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 311,
                                "src": "1602:8:2",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_string_memory",
                                  "typeString": "string memory"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "hexValue": "627574746f6e",
                                "id": 415,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "string",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "1628:8:2",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_stringliteral_a81da2f95bacdc95271ab6d8ca852be6742f3b8901ebe5d98b694fb7e4de4090",
                                  "typeString": "literal_string \"button\""
                                },
                                "value": "button"
                              },
                              {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 416,
                                    "name": "resources",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 3088,
                                    "src": "1654:9:2",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_mapping$_t_string_memory_$_t_mapping$_t_string_memory_$_t_string_storage_$_$",
                                      "typeString": "mapping(string memory => mapping(string memory => string storage ref))"
                                    }
                                  },
                                  "id": 418,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 417,
                                    "name": "_locale",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 328,
                                    "src": "1664:7:2",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_string_memory_ptr",
                                      "typeString": "string memory"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "1654:18:2",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_string_memory_$_t_string_storage_$",
                                    "typeString": "mapping(string memory => string storage ref)"
                                  }
                                },
                                "id": 420,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 419,
                                  "name": "TRANSFER",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 311,
                                  "src": "1673:8:2",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_string_memory",
                                    "typeString": "string memory"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "1654:28:2",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_string_storage",
                                  "typeString": "string storage ref"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "hexValue": "6e756c6c",
                                "id": 421,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "string",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "1700:6:2",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_stringliteral_efbde2c3aee204a69b7696d4b10ff31137fe78e3946306284f806e2dfc68b805",
                                  "typeString": "literal_string \"null\""
                                },
                                "value": "null"
                              },
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "hexValue": "74727565",
                                    "id": 424,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "bool",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "1760:4:2",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bool",
                                      "typeString": "bool"
                                    },
                                    "value": "true"
                                  },
                                  {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "id": 426,
                                        "name": "_token",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 330,
                                        "src": "1794:6:2",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_contract$_ERC20Token_$273",
                                          "typeString": "contract ERC20Token"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_contract$_ERC20Token_$273",
                                          "typeString": "contract ERC20Token"
                                        }
                                      ],
                                      "id": 425,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "1786:7:2",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_address_$",
                                        "typeString": "type(address)"
                                      },
                                      "typeName": "address"
                                    },
                                    "id": 427,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "1786:15:2",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "hexValue": "7472616e7366657228616464726573732c75696e7432353629",
                                    "id": 428,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "string",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "1823:27:2",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_stringliteral_a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b",
                                      "typeString": "literal_string \"transfer(address,uint256)\""
                                    },
                                    "value": "transfer(address,uint256)"
                                  },
                                  {
                                    "argumentTypes": null,
                                    "hexValue": "5b227265636569766572222c22616d6f756e74225d",
                                    "id": 429,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "string",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "1872:23:2",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_stringliteral_ada4e64fe2ef6cb201ed0c7d51d29da1a2bf475e9f34106dcc807009d9edf9d3",
                                      "typeString": "literal_string \"[\"receiver\",\"amount\"]\""
                                    },
                                    "value": "[\"receiver\",\"amount\"]"
                                  },
                                  {
                                    "argumentTypes": null,
                                    "baseExpression": {
                                      "argumentTypes": null,
                                      "baseExpression": {
                                        "argumentTypes": null,
                                        "id": 430,
                                        "name": "resources",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 3088,
                                        "src": "1917:9:2",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_mapping$_t_string_memory_$_t_mapping$_t_string_memory_$_t_string_storage_$_$",
                                          "typeString": "mapping(string memory => mapping(string memory => string storage ref))"
                                        }
                                      },
                                      "id": 432,
                                      "indexExpression": {
                                        "argumentTypes": null,
                                        "id": 431,
                                        "name": "_locale",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 328,
                                        "src": "1927:7:2",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_string_memory_ptr",
                                          "typeString": "string memory"
                                        }
                                      },
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "IndexAccess",
                                      "src": "1917:18:2",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_mapping$_t_string_memory_$_t_string_storage_$",
                                        "typeString": "mapping(string memory => string storage ref)"
                                      }
                                    },
                                    "id": 434,
                                    "indexExpression": {
                                      "argumentTypes": null,
                                      "id": 433,
                                      "name": "TRANSFER_CONFIRM",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 326,
                                      "src": "1936:16:2",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_string_memory",
                                        "typeString": "string memory"
                                      }
                                    },
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "1917:36:2",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_string_storage",
                                      "typeString": "string storage ref"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bool",
                                      "typeString": "bool"
                                    },
                                    {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    },
                                    {
                                      "typeIdentifier": "t_stringliteral_a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b",
                                      "typeString": "literal_string \"transfer(address,uint256)\""
                                    },
                                    {
                                      "typeIdentifier": "t_stringliteral_ada4e64fe2ef6cb201ed0c7d51d29da1a2bf475e9f34106dcc807009d9edf9d3",
                                      "typeString": "literal_string \"[\"receiver\",\"amount\"]\""
                                    },
                                    {
                                      "typeIdentifier": "t_string_storage",
                                      "typeString": "string storage ref"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 422,
                                    "name": "Actions",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2848,
                                    "src": "1724:7:2",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_contract$_Actions_$2848_$",
                                      "typeString": "type(library Actions)"
                                    }
                                  },
                                  "id": 423,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "Action",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 2720,
                                  "src": "1724:14:2",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_struct$_Action_$2720_storage_ptr_$",
                                    "typeString": "type(struct Actions.Action storage pointer)"
                                  }
                                },
                                "id": 435,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "structConstructorCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "1724:247:2",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Action_$2720_memory",
                                  "typeString": "struct Actions.Action memory"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "arguments": [],
                                "expression": {
                                  "argumentTypes": [],
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 436,
                                    "name": "Tables",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 3457,
                                    "src": "1989:6:2",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_contract$_Tables_$3457_$",
                                      "typeString": "type(library Tables)"
                                    }
                                  },
                                  "id": 437,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "empty",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 3173,
                                  "src": "1989:12:2",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Table_$3153_memory_ptr_$",
                                    "typeString": "function () pure returns (struct Tables.Table memory)"
                                  }
                                },
                                "id": 438,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "1989:14:2",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Table_$3153_memory_ptr",
                                  "typeString": "struct Tables.Table memory"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                {
                                  "typeIdentifier": "t_string_memory",
                                  "typeString": "string memory"
                                },
                                {
                                  "typeIdentifier": "t_stringliteral_a81da2f95bacdc95271ab6d8ca852be6742f3b8901ebe5d98b694fb7e4de4090",
                                  "typeString": "literal_string \"button\""
                                },
                                {
                                  "typeIdentifier": "t_string_storage",
                                  "typeString": "string storage ref"
                                },
                                {
                                  "typeIdentifier": "t_stringliteral_efbde2c3aee204a69b7696d4b10ff31137fe78e3946306284f806e2dfc68b805",
                                  "typeString": "literal_string \"null\""
                                },
                                {
                                  "typeIdentifier": "t_struct$_Action_$2720_memory",
                                  "typeString": "struct Actions.Action memory"
                                },
                                {
                                  "typeIdentifier": "t_struct$_Table_$3153_memory_ptr",
                                  "typeString": "struct Tables.Table memory"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "id": 411,
                                "name": "Elements",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3077,
                                "src": "1546:8:2",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_Elements_$3077_$",
                                  "typeString": "type(library Elements)"
                                }
                              },
                              "id": 412,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "Element",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 2876,
                              "src": "1546:16:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_struct$_Element_$2876_storage_ptr_$",
                                "typeString": "type(struct Elements.Element storage pointer)"
                              }
                            },
                            "id": 439,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "structConstructorCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "1546:471:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Element_$2876_memory",
                              "typeString": "struct Elements.Element memory"
                            }
                          },
                          "src": "1532:485:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Element_$2876_memory",
                            "typeString": "struct Elements.Element memory"
                          }
                        },
                        "id": 441,
                        "nodeType": "ExpressionStatement",
                        "src": "1532:485:2"
                      },
                      {
                        "assignments": [
                          445
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 445,
                            "name": "widget",
                            "nodeType": "VariableDeclaration",
                            "scope": 477,
                            "src": "2031:28:2",
                            "stateVariable": false,
                            "storageLocation": "memory",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Widget_$3482_memory_ptr",
                              "typeString": "struct Widgets.Widget"
                            },
                            "typeName": {
                              "contractScope": null,
                              "id": 444,
                              "name": "Widgets.Widget",
                              "nodeType": "UserDefinedTypeName",
                              "referencedDeclaration": 3482,
                              "src": "2031:14:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Widget_$3482_storage_ptr",
                                "typeString": "struct Widgets.Widget"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 466,
                        "initialValue": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 448,
                                  "name": "resources",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3088,
                                  "src": "2094:9:2",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_string_memory_$_t_mapping$_t_string_memory_$_t_string_storage_$_$",
                                    "typeString": "mapping(string memory => mapping(string memory => string storage ref))"
                                  }
                                },
                                "id": 450,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 449,
                                  "name": "_locale",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 328,
                                  "src": "2104:7:2",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "2094:18:2",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_string_memory_$_t_string_storage_$",
                                  "typeString": "mapping(string memory => string storage ref)"
                                }
                              },
                              "id": 452,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 451,
                                "name": "TRANSFER",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 311,
                                "src": "2113:8:2",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_string_memory",
                                  "typeString": "string memory"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "2094:28:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_storage",
                                "typeString": "string storage ref"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 453,
                                  "name": "resources",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3088,
                                  "src": "2140:9:2",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_string_memory_$_t_mapping$_t_string_memory_$_t_string_storage_$_$",
                                    "typeString": "mapping(string memory => mapping(string memory => string storage ref))"
                                  }
                                },
                                "id": 455,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 454,
                                  "name": "_locale",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 328,
                                  "src": "2150:7:2",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "2140:18:2",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_string_memory_$_t_string_storage_$",
                                  "typeString": "mapping(string memory => string storage ref)"
                                }
                              },
                              "id": 457,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 456,
                                "name": "SHORT_DESC",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 314,
                                "src": "2159:10:2",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_string_memory",
                                  "typeString": "string memory"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "2140:30:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_storage",
                                "typeString": "string storage ref"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 458,
                                  "name": "resources",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3088,
                                  "src": "2188:9:2",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_string_memory_$_t_mapping$_t_string_memory_$_t_string_storage_$_$",
                                    "typeString": "mapping(string memory => mapping(string memory => string storage ref))"
                                  }
                                },
                                "id": 460,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 459,
                                  "name": "_locale",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 328,
                                  "src": "2198:7:2",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "2188:18:2",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_string_memory_$_t_string_storage_$",
                                  "typeString": "mapping(string memory => string storage ref)"
                                }
                              },
                              "id": 462,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 461,
                                "name": "LONG_DESC",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 317,
                                "src": "2207:9:2",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_string_memory",
                                  "typeString": "string memory"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "2188:29:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_storage",
                                "typeString": "string storage ref"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "34",
                              "id": 463,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "2235:1:2",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_4_by_1",
                                "typeString": "int_const 4"
                              },
                              "value": "4"
                            },
                            {
                              "argumentTypes": null,
                              "id": 464,
                              "name": "elements",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 342,
                              "src": "2254:8:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_struct$_Element_$2876_memory_$dyn_memory_ptr",
                                "typeString": "struct Elements.Element memory[] memory"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_string_storage",
                                "typeString": "string storage ref"
                              },
                              {
                                "typeIdentifier": "t_string_storage",
                                "typeString": "string storage ref"
                              },
                              {
                                "typeIdentifier": "t_string_storage",
                                "typeString": "string storage ref"
                              },
                              {
                                "typeIdentifier": "t_rational_4_by_1",
                                "typeString": "int_const 4"
                              },
                              {
                                "typeIdentifier": "t_array$_t_struct$_Element_$2876_memory_$dyn_memory_ptr",
                                "typeString": "struct Elements.Element memory[] memory"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 446,
                              "name": "Widgets",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3644,
                              "src": "2062:7:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_Widgets_$3644_$",
                                "typeString": "type(library Widgets)"
                              }
                            },
                            "id": 447,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "Widget",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 3482,
                            "src": "2062:14:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_struct$_Widget_$3482_storage_ptr_$",
                              "typeString": "type(struct Widgets.Widget storage pointer)"
                            }
                          },
                          "id": 465,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "structConstructorCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2062:214:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Widget_$3482_memory",
                            "typeString": "struct Widgets.Widget memory"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "2031:245:2"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "argumentTypes": null,
                              "id": 467,
                              "name": "widget",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 445,
                              "src": "2297:6:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Widget_$3482_memory_ptr",
                                "typeString": "struct Widgets.Widget memory"
                              }
                            },
                            "id": 468,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "toJson",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 3643,
                            "src": "2297:13:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_struct$_Widget_$3482_memory_ptr_$returns$_t_string_memory_ptr_$bound_to$_t_struct$_Widget_$3482_memory_ptr_$",
                              "typeString": "function (struct Widgets.Widget memory) pure returns (string memory)"
                            }
                          },
                          "id": 469,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2297:15:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_memory_ptr",
                            "typeString": "string memory"
                          }
                        },
                        "functionReturnParameters": 334,
                        "id": 470,
                        "nodeType": "Return",
                        "src": "2290:22:2"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": null,
            "id": 477,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "render",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 331,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 328,
                  "name": "_locale",
                  "nodeType": "VariableDeclaration",
                  "scope": 477,
                  "src": "748:14:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 327,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "748:6:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 330,
                  "name": "_token",
                  "nodeType": "VariableDeclaration",
                  "scope": 477,
                  "src": "764:17:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_ERC20Token_$273",
                    "typeString": "contract ERC20Token"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 329,
                    "name": "ERC20Token",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 273,
                    "src": "764:10:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_ERC20Token_$273",
                      "typeString": "contract ERC20Token"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "747:35:2"
            },
            "payable": false,
            "returnParameters": {
              "id": 334,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 333,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 477,
                  "src": "804:6:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 332,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "804:6:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "803:8:2"
            },
            "scope": 478,
            "src": "732:1637:2",
            "stateMutability": "view",
            "superFunction": 291,
            "visibility": "public"
          }
        ],
        "scope": 479,
        "src": "253:2118:2"
      }
    ],
    "src": "0:2372:2"
  },
  "legacyAST": {
    "absolutePath": "/Users/yoonjae/SolidityProjects/tokenboost-solidity-erc20token/contracts/token/erc20/widget/TransferWidgetRenderer.sol",
    "exportedSymbols": {
      "TransferWidgetRenderer": [
        478
      ]
    },
    "id": 479,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 294,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".24"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:24:2"
      },
      {
        "absolutePath": "/Users/yoonjae/SolidityProjects/tokenboost-solidity-erc20token/contracts/token/erc20/widget/ERC20TokenWidgetRenderer.sol",
        "file": "./ERC20TokenWidgetRenderer.sol",
        "id": 295,
        "nodeType": "ImportDirective",
        "scope": 479,
        "sourceUnit": 293,
        "src": "26:40:2",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "tokenboost-solidity/contracts/utils/strings.sol",
        "file": "tokenboost-solidity/contracts/utils/strings.sol",
        "id": 296,
        "nodeType": "ImportDirective",
        "scope": 479,
        "sourceUnit": 2701,
        "src": "67:57:2",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "tokenboost-solidity/contracts/widget/Widgets.sol",
        "file": "tokenboost-solidity/contracts/widget/Widgets.sol",
        "id": 297,
        "nodeType": "ImportDirective",
        "scope": 479,
        "sourceUnit": 3645,
        "src": "125:58:2",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "zeppelin-solidity/contracts/token/ERC20/DetailedERC20.sol",
        "file": "zeppelin-solidity/contracts/token/ERC20/DetailedERC20.sol",
        "id": 298,
        "nodeType": "ImportDirective",
        "scope": 479,
        "sourceUnit": 4324,
        "src": "184:67:2",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 299,
              "name": "ERC20TokenWidgetRenderer",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 292,
              "src": "288:24:2",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_ERC20TokenWidgetRenderer_$292",
                "typeString": "contract ERC20TokenWidgetRenderer"
              }
            },
            "id": 300,
            "nodeType": "InheritanceSpecifier",
            "src": "288:24:2"
          }
        ],
        "contractDependencies": [
          292,
          3125,
          4122
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 478,
        "linearizedBaseContracts": [
          478,
          292,
          3125,
          4122
        ],
        "name": "TransferWidgetRenderer",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "id": 302,
            "libraryName": {
              "contractScope": null,
              "id": 301,
              "name": "strings",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 2700,
              "src": "325:7:2",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_strings_$2700",
                "typeString": "library strings"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "319:20:2",
            "typeName": null
          },
          {
            "id": 305,
            "libraryName": {
              "contractScope": null,
              "id": 303,
              "name": "Widgets",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 3644,
              "src": "350:7:2",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Widgets_$3644",
                "typeString": "library Widgets"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "344:33:2",
            "typeName": {
              "contractScope": null,
              "id": 304,
              "name": "Widgets.Widget",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 3482,
              "src": "362:14:2",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_Widget_$3482_storage_ptr",
                "typeString": "struct Widgets.Widget"
              }
            }
          },
          {
            "id": 308,
            "libraryName": {
              "contractScope": null,
              "id": 306,
              "name": "UintUtils",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 1005,
              "src": "388:9:2",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_UintUtils_$1005",
                "typeString": "library UintUtils"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "382:25:2",
            "typeName": {
              "id": 307,
              "name": "uint",
              "nodeType": "ElementaryTypeName",
              "src": "402:4:2",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            }
          },
          {
            "constant": true,
            "id": 311,
            "name": "TRANSFER",
            "nodeType": "VariableDeclaration",
            "scope": 478,
            "src": "413:44:2",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 309,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "413:6:2",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "7472616e73666572",
              "id": 310,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "447:10:2",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_b483afd3f4caedc6eebf44246fe54e38c95e3179a5ec9ea81740eca5b482d12e",
                "typeString": "literal_string \"transfer\""
              },
              "value": "transfer"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 314,
            "name": "SHORT_DESC",
            "nodeType": "VariableDeclaration",
            "scope": 478,
            "src": "463:48:2",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 312,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "463:6:2",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "73686f72745f64657363",
              "id": 313,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "499:12:2",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_94c241f8e931f92c2d4b9c8bf91f277610ffbc69f83ddd91d5e8535e49fe7894",
                "typeString": "literal_string \"short_desc\""
              },
              "value": "short_desc"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 317,
            "name": "LONG_DESC",
            "nodeType": "VariableDeclaration",
            "scope": 478,
            "src": "517:46:2",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 315,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "517:6:2",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "6c6f6e675f64657363",
              "id": 316,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "552:11:2",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_a47709c5db6426dae60658aa3fe6818a09dac224ef85f317a31b897413052755",
                "typeString": "literal_string \"long_desc\""
              },
              "value": "long_desc"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 320,
            "name": "RECEIVER",
            "nodeType": "VariableDeclaration",
            "scope": 478,
            "src": "569:44:2",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 318,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "569:6:2",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "7265636569766572",
              "id": 319,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "603:10:2",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_5e784e45feb63c375016d4ce5c52a57b0a48b8a170bc2e31463be0d03d1c4db6",
                "typeString": "literal_string \"receiver\""
              },
              "value": "receiver"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 323,
            "name": "AMOUNT",
            "nodeType": "VariableDeclaration",
            "scope": 478,
            "src": "619:40:2",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 321,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "619:6:2",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "616d6f756e74",
              "id": 322,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "651:8:2",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_89c4783cb6cc307f98e95f2d5d5d8647bdb3d4bdd087209374f187b38e098895",
                "typeString": "literal_string \"amount\""
              },
              "value": "amount"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 326,
            "name": "TRANSFER_CONFIRM",
            "nodeType": "VariableDeclaration",
            "scope": 478,
            "src": "665:60:2",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 324,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "665:6:2",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "7472616e736665725f636f6e6669726d",
              "id": 325,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "707:18:2",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_b39b8944fa54c167cc3ed6257853579d7d909def04e14c56ff431f76134a4dda",
                "typeString": "literal_string \"transfer_confirm\""
              },
              "value": "transfer_confirm"
            },
            "visibility": "public"
          },
          {
            "body": {
              "id": 476,
              "nodeType": "Block",
              "src": "812:1557:2",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "argumentTypes": null,
                        "id": 335,
                        "name": "_token",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 330,
                        "src": "826:6:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ERC20Token_$273",
                          "typeString": "contract ERC20Token"
                        }
                      },
                      "id": 336,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "activated",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 482,
                      "src": "826:16:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$__$returns$_t_bool_$",
                        "typeString": "function () view external returns (bool)"
                      }
                    },
                    "id": 337,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "826:18:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 474,
                    "nodeType": "Block",
                    "src": "2329:34:2",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "hexValue": "",
                          "id": 472,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "string",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2350:2:2",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                            "typeString": "literal_string \"\""
                          },
                          "value": ""
                        },
                        "functionReturnParameters": 334,
                        "id": 473,
                        "nodeType": "Return",
                        "src": "2343:9:2"
                      }
                    ]
                  },
                  "id": 475,
                  "nodeType": "IfStatement",
                  "src": "822:1541:2",
                  "trueBody": {
                    "id": 471,
                    "nodeType": "Block",
                    "src": "846:1477:2",
                    "statements": [
                      {
                        "assignments": [
                          342
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 342,
                            "name": "elements",
                            "nodeType": "VariableDeclaration",
                            "scope": 477,
                            "src": "860:34:2",
                            "stateVariable": false,
                            "storageLocation": "memory",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_struct$_Element_$2876_memory_$dyn_memory_ptr",
                              "typeString": "struct Elements.Element[]"
                            },
                            "typeName": {
                              "baseType": {
                                "contractScope": null,
                                "id": 340,
                                "name": "Elements.Element",
                                "nodeType": "UserDefinedTypeName",
                                "referencedDeclaration": 2876,
                                "src": "860:16:2",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Element_$2876_storage_ptr",
                                  "typeString": "struct Elements.Element"
                                }
                              },
                              "id": 341,
                              "length": null,
                              "nodeType": "ArrayTypeName",
                              "src": "860:18:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_struct$_Element_$2876_storage_$dyn_storage_ptr",
                                "typeString": "struct Elements.Element[]"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 348,
                        "initialValue": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "hexValue": "33",
                              "id": 346,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "920:1:2",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_3_by_1",
                                "typeString": "int_const 3"
                              },
                              "value": "3"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_rational_3_by_1",
                                "typeString": "int_const 3"
                              }
                            ],
                            "id": 345,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "NewExpression",
                            "src": "897:22:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_Element_$2876_memory_$dyn_memory_$",
                              "typeString": "function (uint256) pure returns (struct Elements.Element memory[] memory)"
                            },
                            "typeName": {
                              "baseType": {
                                "contractScope": null,
                                "id": 343,
                                "name": "Elements.Element",
                                "nodeType": "UserDefinedTypeName",
                                "referencedDeclaration": 2876,
                                "src": "901:16:2",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Element_$2876_storage_ptr",
                                  "typeString": "struct Elements.Element"
                                }
                              },
                              "id": 344,
                              "length": null,
                              "nodeType": "ArrayTypeName",
                              "src": "901:18:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_struct$_Element_$2876_storage_$dyn_storage_ptr",
                                "typeString": "struct Elements.Element[]"
                              }
                            }
                          },
                          "id": 347,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "897:25:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_struct$_Element_$2876_memory_$dyn_memory",
                            "typeString": "struct Elements.Element memory[] memory"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "860:62:2"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 370,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 349,
                              "name": "elements",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 342,
                              "src": "936:8:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_struct$_Element_$2876_memory_$dyn_memory_ptr",
                                "typeString": "struct Elements.Element memory[] memory"
                              }
                            },
                            "id": 351,
                            "indexExpression": {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 350,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "945:1:2",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "936:11:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Element_$2876_memory",
                              "typeString": "struct Elements.Element memory"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "74727565",
                                "id": 354,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "bool",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "984:4:2",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                "value": "true"
                              },
                              {
                                "argumentTypes": null,
                                "id": 355,
                                "name": "RECEIVER",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 320,
                                "src": "1006:8:2",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_string_memory",
                                  "typeString": "string memory"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "hexValue": "6164647265737345646974",
                                "id": 356,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "string",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "1032:13:2",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_stringliteral_9da0ac31fc220ced4c03decd71d5120e5144f94b04cabb5c22d40a0b3ec00e0c",
                                  "typeString": "literal_string \"addressEdit\""
                                },
                                "value": "addressEdit"
                              },
                              {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 357,
                                    "name": "resources",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 3088,
                                    "src": "1063:9:2",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_mapping$_t_string_memory_$_t_mapping$_t_string_memory_$_t_string_storage_$_$",
                                      "typeString": "mapping(string memory => mapping(string memory => string storage ref))"
                                    }
                                  },
                                  "id": 359,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 358,
                                    "name": "_locale",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 328,
                                    "src": "1073:7:2",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_string_memory_ptr",
                                      "typeString": "string memory"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "1063:18:2",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_string_memory_$_t_string_storage_$",
                                    "typeString": "mapping(string memory => string storage ref)"
                                  }
                                },
                                "id": 361,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 360,
                                  "name": "RECEIVER",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 320,
                                  "src": "1082:8:2",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_string_memory",
                                    "typeString": "string memory"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "1063:28:2",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_string_storage",
                                  "typeString": "string storage ref"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "hexValue": "2222",
                                "id": 362,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "string",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "1109:4:2",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_stringliteral_2392a80f8a87b8cfde0aa5c84e199f163aae4c2a4c512d37598362ace687ad0c",
                                  "typeString": "literal_string \"\"\"\""
                                },
                                "value": "\"\""
                              },
                              {
                                "argumentTypes": null,
                                "arguments": [],
                                "expression": {
                                  "argumentTypes": [],
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 363,
                                    "name": "Actions",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2848,
                                    "src": "1131:7:2",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_contract$_Actions_$2848_$",
                                      "typeString": "type(library Actions)"
                                    }
                                  },
                                  "id": 364,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "empty",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 2736,
                                  "src": "1131:13:2",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Action_$2720_memory_ptr_$",
                                    "typeString": "function () pure returns (struct Actions.Action memory)"
                                  }
                                },
                                "id": 365,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "1131:15:2",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Action_$2720_memory_ptr",
                                  "typeString": "struct Actions.Action memory"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "arguments": [],
                                "expression": {
                                  "argumentTypes": [],
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 366,
                                    "name": "Tables",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 3457,
                                    "src": "1164:6:2",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_contract$_Tables_$3457_$",
                                      "typeString": "type(library Tables)"
                                    }
                                  },
                                  "id": 367,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "empty",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 3173,
                                  "src": "1164:12:2",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Table_$3153_memory_ptr_$",
                                    "typeString": "function () pure returns (struct Tables.Table memory)"
                                  }
                                },
                                "id": 368,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "1164:14:2",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Table_$3153_memory_ptr",
                                  "typeString": "struct Tables.Table memory"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                {
                                  "typeIdentifier": "t_string_memory",
                                  "typeString": "string memory"
                                },
                                {
                                  "typeIdentifier": "t_stringliteral_9da0ac31fc220ced4c03decd71d5120e5144f94b04cabb5c22d40a0b3ec00e0c",
                                  "typeString": "literal_string \"addressEdit\""
                                },
                                {
                                  "typeIdentifier": "t_string_storage",
                                  "typeString": "string storage ref"
                                },
                                {
                                  "typeIdentifier": "t_stringliteral_2392a80f8a87b8cfde0aa5c84e199f163aae4c2a4c512d37598362ace687ad0c",
                                  "typeString": "literal_string \"\"\"\""
                                },
                                {
                                  "typeIdentifier": "t_struct$_Action_$2720_memory_ptr",
                                  "typeString": "struct Actions.Action memory"
                                },
                                {
                                  "typeIdentifier": "t_struct$_Table_$3153_memory_ptr",
                                  "typeString": "struct Tables.Table memory"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "id": 352,
                                "name": "Elements",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3077,
                                "src": "950:8:2",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_Elements_$3077_$",
                                  "typeString": "type(library Elements)"
                                }
                              },
                              "id": 353,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "Element",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 2876,
                              "src": "950:16:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_struct$_Element_$2876_storage_ptr_$",
                                "typeString": "type(struct Elements.Element storage pointer)"
                              }
                            },
                            "id": 369,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "structConstructorCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "950:242:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Element_$2876_memory",
                              "typeString": "struct Elements.Element memory"
                            }
                          },
                          "src": "936:256:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Element_$2876_memory",
                            "typeString": "struct Elements.Element memory"
                          }
                        },
                        "id": 371,
                        "nodeType": "ExpressionStatement",
                        "src": "936:256:2"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 406,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 372,
                              "name": "elements",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 342,
                              "src": "1206:8:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_struct$_Element_$2876_memory_$dyn_memory_ptr",
                                "typeString": "struct Elements.Element memory[] memory"
                              }
                            },
                            "id": 374,
                            "indexExpression": {
                              "argumentTypes": null,
                              "hexValue": "31",
                              "id": 373,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "1215:1:2",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_1_by_1",
                                "typeString": "int_const 1"
                              },
                              "value": "1"
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "1206:11:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Element_$2876_memory",
                              "typeString": "struct Elements.Element memory"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "74727565",
                                "id": 377,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "bool",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "1254:4:2",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                "value": "true"
                              },
                              {
                                "argumentTypes": null,
                                "id": 378,
                                "name": "AMOUNT",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 323,
                                "src": "1276:6:2",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_string_memory",
                                  "typeString": "string memory"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "arguments": [],
                                    "expression": {
                                      "argumentTypes": [],
                                      "expression": {
                                        "argumentTypes": null,
                                        "arguments": [],
                                        "expression": {
                                          "argumentTypes": [],
                                          "expression": {
                                            "argumentTypes": null,
                                            "arguments": [
                                              {
                                                "argumentTypes": null,
                                                "arguments": [],
                                                "expression": {
                                                  "argumentTypes": [],
                                                  "expression": {
                                                    "argumentTypes": null,
                                                    "id": 384,
                                                    "name": "_token",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 330,
                                                    "src": "1334:6:2",
                                                    "typeDescriptions": {
                                                      "typeIdentifier": "t_contract$_ERC20Token_$273",
                                                      "typeString": "contract ERC20Token"
                                                    }
                                                  },
                                                  "id": 385,
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": false,
                                                  "lValueRequested": false,
                                                  "memberName": "decimals",
                                                  "nodeType": "MemberAccess",
                                                  "referencedDeclaration": 19,
                                                  "src": "1334:15:2",
                                                  "typeDescriptions": {
                                                    "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$",
                                                    "typeString": "function () view external returns (uint8)"
                                                  }
                                                },
                                                "id": 386,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "functionCall",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "1334:17:2",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_uint8",
                                                  "typeString": "uint8"
                                                }
                                              }
                                            ],
                                            "expression": {
                                              "argumentTypes": [
                                                {
                                                  "typeIdentifier": "t_uint8",
                                                  "typeString": "uint8"
                                                }
                                              ],
                                              "id": 383,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "nodeType": "ElementaryTypeNameExpression",
                                              "src": "1329:4:2",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_type$_t_uint256_$",
                                                "typeString": "type(uint256)"
                                              },
                                              "typeName": "uint"
                                            },
                                            "id": 387,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "typeConversion",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "1329:23:2",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          },
                                          "id": 388,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberName": "toString",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 1004,
                                          "src": "1329:32:2",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$bound_to$_t_uint256_$",
                                            "typeString": "function (uint256) pure returns (string memory)"
                                          }
                                        },
                                        "id": 389,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "1329:34:2",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_string_memory_ptr",
                                          "typeString": "string memory"
                                        }
                                      },
                                      "id": 390,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "toSlice",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 1072,
                                      "src": "1329:42:2",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_slice_$1012_memory_ptr_$bound_to$_t_string_memory_ptr_$",
                                        "typeString": "function (string memory) pure returns (struct strings.slice memory)"
                                      }
                                    },
                                    "id": 391,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "functionCall",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "1329:44:2",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_slice_$1012_memory_ptr",
                                      "typeString": "struct strings.slice memory"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_struct$_slice_$1012_memory_ptr",
                                      "typeString": "struct strings.slice memory"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": null,
                                    "arguments": [],
                                    "expression": {
                                      "argumentTypes": [],
                                      "expression": {
                                        "argumentTypes": null,
                                        "hexValue": "746f6b656e45646974",
                                        "id": 379,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "string",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "1300:11:2",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_stringliteral_99de3d4fb3ed3400bcd89eb9e537fe6b559627add648abf4e34c8e6921ff6615",
                                          "typeString": "literal_string \"tokenEdit\""
                                        },
                                        "value": "tokenEdit"
                                      },
                                      "id": 380,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "toSlice",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 1072,
                                      "src": "1300:19:2",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_slice_$1012_memory_ptr_$bound_to$_t_string_memory_ptr_$",
                                        "typeString": "function (string memory) pure returns (struct strings.slice memory)"
                                      }
                                    },
                                    "id": 381,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "functionCall",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "1300:21:2",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_slice_$1012_memory_ptr",
                                      "typeString": "struct strings.slice memory"
                                    }
                                  },
                                  "id": 382,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "concat",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 2585,
                                  "src": "1300:28:2",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$_t_struct$_slice_$1012_memory_ptr_$_t_struct$_slice_$1012_memory_ptr_$returns$_t_string_memory_ptr_$bound_to$_t_struct$_slice_$1012_memory_ptr_$",
                                    "typeString": "function (struct strings.slice memory,struct strings.slice memory) pure returns (string memory)"
                                  }
                                },
                                "id": 392,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "1300:74:2",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 393,
                                    "name": "resources",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 3088,
                                    "src": "1392:9:2",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_mapping$_t_string_memory_$_t_mapping$_t_string_memory_$_t_string_storage_$_$",
                                      "typeString": "mapping(string memory => mapping(string memory => string storage ref))"
                                    }
                                  },
                                  "id": 395,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 394,
                                    "name": "_locale",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 328,
                                    "src": "1402:7:2",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_string_memory_ptr",
                                      "typeString": "string memory"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "1392:18:2",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_string_memory_$_t_string_storage_$",
                                    "typeString": "mapping(string memory => string storage ref)"
                                  }
                                },
                                "id": 397,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 396,
                                  "name": "AMOUNT",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 323,
                                  "src": "1411:6:2",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_string_memory",
                                    "typeString": "string memory"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "1392:26:2",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_string_storage",
                                  "typeString": "string storage ref"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "hexValue": "30",
                                "id": 398,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "string",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "1436:3:2",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
                                  "typeString": "literal_string \"0\""
                                },
                                "value": "0"
                              },
                              {
                                "argumentTypes": null,
                                "arguments": [],
                                "expression": {
                                  "argumentTypes": [],
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 399,
                                    "name": "Actions",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2848,
                                    "src": "1457:7:2",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_contract$_Actions_$2848_$",
                                      "typeString": "type(library Actions)"
                                    }
                                  },
                                  "id": 400,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "empty",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 2736,
                                  "src": "1457:13:2",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Action_$2720_memory_ptr_$",
                                    "typeString": "function () pure returns (struct Actions.Action memory)"
                                  }
                                },
                                "id": 401,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "1457:15:2",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Action_$2720_memory_ptr",
                                  "typeString": "struct Actions.Action memory"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "arguments": [],
                                "expression": {
                                  "argumentTypes": [],
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 402,
                                    "name": "Tables",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 3457,
                                    "src": "1490:6:2",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_contract$_Tables_$3457_$",
                                      "typeString": "type(library Tables)"
                                    }
                                  },
                                  "id": 403,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "empty",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 3173,
                                  "src": "1490:12:2",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Table_$3153_memory_ptr_$",
                                    "typeString": "function () pure returns (struct Tables.Table memory)"
                                  }
                                },
                                "id": 404,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "1490:14:2",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Table_$3153_memory_ptr",
                                  "typeString": "struct Tables.Table memory"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                {
                                  "typeIdentifier": "t_string_memory",
                                  "typeString": "string memory"
                                },
                                {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                },
                                {
                                  "typeIdentifier": "t_string_storage",
                                  "typeString": "string storage ref"
                                },
                                {
                                  "typeIdentifier": "t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
                                  "typeString": "literal_string \"0\""
                                },
                                {
                                  "typeIdentifier": "t_struct$_Action_$2720_memory_ptr",
                                  "typeString": "struct Actions.Action memory"
                                },
                                {
                                  "typeIdentifier": "t_struct$_Table_$3153_memory_ptr",
                                  "typeString": "struct Tables.Table memory"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "id": 375,
                                "name": "Elements",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3077,
                                "src": "1220:8:2",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_Elements_$3077_$",
                                  "typeString": "type(library Elements)"
                                }
                              },
                              "id": 376,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "Element",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 2876,
                              "src": "1220:16:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_struct$_Element_$2876_storage_ptr_$",
                                "typeString": "type(struct Elements.Element storage pointer)"
                              }
                            },
                            "id": 405,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "structConstructorCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "1220:298:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Element_$2876_memory",
                              "typeString": "struct Elements.Element memory"
                            }
                          },
                          "src": "1206:312:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Element_$2876_memory",
                            "typeString": "struct Elements.Element memory"
                          }
                        },
                        "id": 407,
                        "nodeType": "ExpressionStatement",
                        "src": "1206:312:2"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 440,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 408,
                              "name": "elements",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 342,
                              "src": "1532:8:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_struct$_Element_$2876_memory_$dyn_memory_ptr",
                                "typeString": "struct Elements.Element memory[] memory"
                              }
                            },
                            "id": 410,
                            "indexExpression": {
                              "argumentTypes": null,
                              "hexValue": "32",
                              "id": 409,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "1541:1:2",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_2_by_1",
                                "typeString": "int_const 2"
                              },
                              "value": "2"
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "1532:11:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Element_$2876_memory",
                              "typeString": "struct Elements.Element memory"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "74727565",
                                "id": 413,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "bool",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "1580:4:2",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                "value": "true"
                              },
                              {
                                "argumentTypes": null,
                                "id": 414,
                                "name": "TRANSFER",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 311,
                                "src": "1602:8:2",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_string_memory",
                                  "typeString": "string memory"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "hexValue": "627574746f6e",
                                "id": 415,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "string",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "1628:8:2",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_stringliteral_a81da2f95bacdc95271ab6d8ca852be6742f3b8901ebe5d98b694fb7e4de4090",
                                  "typeString": "literal_string \"button\""
                                },
                                "value": "button"
                              },
                              {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 416,
                                    "name": "resources",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 3088,
                                    "src": "1654:9:2",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_mapping$_t_string_memory_$_t_mapping$_t_string_memory_$_t_string_storage_$_$",
                                      "typeString": "mapping(string memory => mapping(string memory => string storage ref))"
                                    }
                                  },
                                  "id": 418,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 417,
                                    "name": "_locale",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 328,
                                    "src": "1664:7:2",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_string_memory_ptr",
                                      "typeString": "string memory"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "1654:18:2",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_string_memory_$_t_string_storage_$",
                                    "typeString": "mapping(string memory => string storage ref)"
                                  }
                                },
                                "id": 420,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 419,
                                  "name": "TRANSFER",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 311,
                                  "src": "1673:8:2",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_string_memory",
                                    "typeString": "string memory"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "1654:28:2",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_string_storage",
                                  "typeString": "string storage ref"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "hexValue": "6e756c6c",
                                "id": 421,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "string",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "1700:6:2",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_stringliteral_efbde2c3aee204a69b7696d4b10ff31137fe78e3946306284f806e2dfc68b805",
                                  "typeString": "literal_string \"null\""
                                },
                                "value": "null"
                              },
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "hexValue": "74727565",
                                    "id": 424,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "bool",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "1760:4:2",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bool",
                                      "typeString": "bool"
                                    },
                                    "value": "true"
                                  },
                                  {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "id": 426,
                                        "name": "_token",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 330,
                                        "src": "1794:6:2",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_contract$_ERC20Token_$273",
                                          "typeString": "contract ERC20Token"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_contract$_ERC20Token_$273",
                                          "typeString": "contract ERC20Token"
                                        }
                                      ],
                                      "id": 425,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "1786:7:2",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_address_$",
                                        "typeString": "type(address)"
                                      },
                                      "typeName": "address"
                                    },
                                    "id": 427,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "1786:15:2",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "hexValue": "7472616e7366657228616464726573732c75696e7432353629",
                                    "id": 428,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "string",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "1823:27:2",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_stringliteral_a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b",
                                      "typeString": "literal_string \"transfer(address,uint256)\""
                                    },
                                    "value": "transfer(address,uint256)"
                                  },
                                  {
                                    "argumentTypes": null,
                                    "hexValue": "5b227265636569766572222c22616d6f756e74225d",
                                    "id": 429,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "string",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "1872:23:2",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_stringliteral_ada4e64fe2ef6cb201ed0c7d51d29da1a2bf475e9f34106dcc807009d9edf9d3",
                                      "typeString": "literal_string \"[\"receiver\",\"amount\"]\""
                                    },
                                    "value": "[\"receiver\",\"amount\"]"
                                  },
                                  {
                                    "argumentTypes": null,
                                    "baseExpression": {
                                      "argumentTypes": null,
                                      "baseExpression": {
                                        "argumentTypes": null,
                                        "id": 430,
                                        "name": "resources",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 3088,
                                        "src": "1917:9:2",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_mapping$_t_string_memory_$_t_mapping$_t_string_memory_$_t_string_storage_$_$",
                                          "typeString": "mapping(string memory => mapping(string memory => string storage ref))"
                                        }
                                      },
                                      "id": 432,
                                      "indexExpression": {
                                        "argumentTypes": null,
                                        "id": 431,
                                        "name": "_locale",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 328,
                                        "src": "1927:7:2",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_string_memory_ptr",
                                          "typeString": "string memory"
                                        }
                                      },
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "IndexAccess",
                                      "src": "1917:18:2",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_mapping$_t_string_memory_$_t_string_storage_$",
                                        "typeString": "mapping(string memory => string storage ref)"
                                      }
                                    },
                                    "id": 434,
                                    "indexExpression": {
                                      "argumentTypes": null,
                                      "id": 433,
                                      "name": "TRANSFER_CONFIRM",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 326,
                                      "src": "1936:16:2",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_string_memory",
                                        "typeString": "string memory"
                                      }
                                    },
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "1917:36:2",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_string_storage",
                                      "typeString": "string storage ref"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bool",
                                      "typeString": "bool"
                                    },
                                    {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    },
                                    {
                                      "typeIdentifier": "t_stringliteral_a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b",
                                      "typeString": "literal_string \"transfer(address,uint256)\""
                                    },
                                    {
                                      "typeIdentifier": "t_stringliteral_ada4e64fe2ef6cb201ed0c7d51d29da1a2bf475e9f34106dcc807009d9edf9d3",
                                      "typeString": "literal_string \"[\"receiver\",\"amount\"]\""
                                    },
                                    {
                                      "typeIdentifier": "t_string_storage",
                                      "typeString": "string storage ref"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 422,
                                    "name": "Actions",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2848,
                                    "src": "1724:7:2",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_contract$_Actions_$2848_$",
                                      "typeString": "type(library Actions)"
                                    }
                                  },
                                  "id": 423,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "Action",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 2720,
                                  "src": "1724:14:2",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_struct$_Action_$2720_storage_ptr_$",
                                    "typeString": "type(struct Actions.Action storage pointer)"
                                  }
                                },
                                "id": 435,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "structConstructorCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "1724:247:2",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Action_$2720_memory",
                                  "typeString": "struct Actions.Action memory"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "arguments": [],
                                "expression": {
                                  "argumentTypes": [],
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 436,
                                    "name": "Tables",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 3457,
                                    "src": "1989:6:2",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_contract$_Tables_$3457_$",
                                      "typeString": "type(library Tables)"
                                    }
                                  },
                                  "id": 437,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "empty",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 3173,
                                  "src": "1989:12:2",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Table_$3153_memory_ptr_$",
                                    "typeString": "function () pure returns (struct Tables.Table memory)"
                                  }
                                },
                                "id": 438,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "1989:14:2",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Table_$3153_memory_ptr",
                                  "typeString": "struct Tables.Table memory"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                {
                                  "typeIdentifier": "t_string_memory",
                                  "typeString": "string memory"
                                },
                                {
                                  "typeIdentifier": "t_stringliteral_a81da2f95bacdc95271ab6d8ca852be6742f3b8901ebe5d98b694fb7e4de4090",
                                  "typeString": "literal_string \"button\""
                                },
                                {
                                  "typeIdentifier": "t_string_storage",
                                  "typeString": "string storage ref"
                                },
                                {
                                  "typeIdentifier": "t_stringliteral_efbde2c3aee204a69b7696d4b10ff31137fe78e3946306284f806e2dfc68b805",
                                  "typeString": "literal_string \"null\""
                                },
                                {
                                  "typeIdentifier": "t_struct$_Action_$2720_memory",
                                  "typeString": "struct Actions.Action memory"
                                },
                                {
                                  "typeIdentifier": "t_struct$_Table_$3153_memory_ptr",
                                  "typeString": "struct Tables.Table memory"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "id": 411,
                                "name": "Elements",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3077,
                                "src": "1546:8:2",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_Elements_$3077_$",
                                  "typeString": "type(library Elements)"
                                }
                              },
                              "id": 412,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "Element",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 2876,
                              "src": "1546:16:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_struct$_Element_$2876_storage_ptr_$",
                                "typeString": "type(struct Elements.Element storage pointer)"
                              }
                            },
                            "id": 439,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "structConstructorCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "1546:471:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Element_$2876_memory",
                              "typeString": "struct Elements.Element memory"
                            }
                          },
                          "src": "1532:485:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Element_$2876_memory",
                            "typeString": "struct Elements.Element memory"
                          }
                        },
                        "id": 441,
                        "nodeType": "ExpressionStatement",
                        "src": "1532:485:2"
                      },
                      {
                        "assignments": [
                          445
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 445,
                            "name": "widget",
                            "nodeType": "VariableDeclaration",
                            "scope": 477,
                            "src": "2031:28:2",
                            "stateVariable": false,
                            "storageLocation": "memory",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Widget_$3482_memory_ptr",
                              "typeString": "struct Widgets.Widget"
                            },
                            "typeName": {
                              "contractScope": null,
                              "id": 444,
                              "name": "Widgets.Widget",
                              "nodeType": "UserDefinedTypeName",
                              "referencedDeclaration": 3482,
                              "src": "2031:14:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Widget_$3482_storage_ptr",
                                "typeString": "struct Widgets.Widget"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 466,
                        "initialValue": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 448,
                                  "name": "resources",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3088,
                                  "src": "2094:9:2",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_string_memory_$_t_mapping$_t_string_memory_$_t_string_storage_$_$",
                                    "typeString": "mapping(string memory => mapping(string memory => string storage ref))"
                                  }
                                },
                                "id": 450,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 449,
                                  "name": "_locale",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 328,
                                  "src": "2104:7:2",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "2094:18:2",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_string_memory_$_t_string_storage_$",
                                  "typeString": "mapping(string memory => string storage ref)"
                                }
                              },
                              "id": 452,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 451,
                                "name": "TRANSFER",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 311,
                                "src": "2113:8:2",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_string_memory",
                                  "typeString": "string memory"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "2094:28:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_storage",
                                "typeString": "string storage ref"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 453,
                                  "name": "resources",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3088,
                                  "src": "2140:9:2",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_string_memory_$_t_mapping$_t_string_memory_$_t_string_storage_$_$",
                                    "typeString": "mapping(string memory => mapping(string memory => string storage ref))"
                                  }
                                },
                                "id": 455,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 454,
                                  "name": "_locale",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 328,
                                  "src": "2150:7:2",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "2140:18:2",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_string_memory_$_t_string_storage_$",
                                  "typeString": "mapping(string memory => string storage ref)"
                                }
                              },
                              "id": 457,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 456,
                                "name": "SHORT_DESC",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 314,
                                "src": "2159:10:2",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_string_memory",
                                  "typeString": "string memory"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "2140:30:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_storage",
                                "typeString": "string storage ref"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 458,
                                  "name": "resources",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3088,
                                  "src": "2188:9:2",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_string_memory_$_t_mapping$_t_string_memory_$_t_string_storage_$_$",
                                    "typeString": "mapping(string memory => mapping(string memory => string storage ref))"
                                  }
                                },
                                "id": 460,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 459,
                                  "name": "_locale",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 328,
                                  "src": "2198:7:2",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "2188:18:2",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_string_memory_$_t_string_storage_$",
                                  "typeString": "mapping(string memory => string storage ref)"
                                }
                              },
                              "id": 462,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 461,
                                "name": "LONG_DESC",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 317,
                                "src": "2207:9:2",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_string_memory",
                                  "typeString": "string memory"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "2188:29:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_storage",
                                "typeString": "string storage ref"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "34",
                              "id": 463,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "2235:1:2",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_4_by_1",
                                "typeString": "int_const 4"
                              },
                              "value": "4"
                            },
                            {
                              "argumentTypes": null,
                              "id": 464,
                              "name": "elements",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 342,
                              "src": "2254:8:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_struct$_Element_$2876_memory_$dyn_memory_ptr",
                                "typeString": "struct Elements.Element memory[] memory"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_string_storage",
                                "typeString": "string storage ref"
                              },
                              {
                                "typeIdentifier": "t_string_storage",
                                "typeString": "string storage ref"
                              },
                              {
                                "typeIdentifier": "t_string_storage",
                                "typeString": "string storage ref"
                              },
                              {
                                "typeIdentifier": "t_rational_4_by_1",
                                "typeString": "int_const 4"
                              },
                              {
                                "typeIdentifier": "t_array$_t_struct$_Element_$2876_memory_$dyn_memory_ptr",
                                "typeString": "struct Elements.Element memory[] memory"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 446,
                              "name": "Widgets",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3644,
                              "src": "2062:7:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_Widgets_$3644_$",
                                "typeString": "type(library Widgets)"
                              }
                            },
                            "id": 447,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "Widget",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 3482,
                            "src": "2062:14:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_struct$_Widget_$3482_storage_ptr_$",
                              "typeString": "type(struct Widgets.Widget storage pointer)"
                            }
                          },
                          "id": 465,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "structConstructorCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2062:214:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Widget_$3482_memory",
                            "typeString": "struct Widgets.Widget memory"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "2031:245:2"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "argumentTypes": null,
                              "id": 467,
                              "name": "widget",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 445,
                              "src": "2297:6:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Widget_$3482_memory_ptr",
                                "typeString": "struct Widgets.Widget memory"
                              }
                            },
                            "id": 468,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "toJson",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 3643,
                            "src": "2297:13:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_struct$_Widget_$3482_memory_ptr_$returns$_t_string_memory_ptr_$bound_to$_t_struct$_Widget_$3482_memory_ptr_$",
                              "typeString": "function (struct Widgets.Widget memory) pure returns (string memory)"
                            }
                          },
                          "id": 469,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2297:15:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_memory_ptr",
                            "typeString": "string memory"
                          }
                        },
                        "functionReturnParameters": 334,
                        "id": 470,
                        "nodeType": "Return",
                        "src": "2290:22:2"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": null,
            "id": 477,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "render",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 331,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 328,
                  "name": "_locale",
                  "nodeType": "VariableDeclaration",
                  "scope": 477,
                  "src": "748:14:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 327,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "748:6:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 330,
                  "name": "_token",
                  "nodeType": "VariableDeclaration",
                  "scope": 477,
                  "src": "764:17:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_ERC20Token_$273",
                    "typeString": "contract ERC20Token"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 329,
                    "name": "ERC20Token",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 273,
                    "src": "764:10:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_ERC20Token_$273",
                      "typeString": "contract ERC20Token"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "747:35:2"
            },
            "payable": false,
            "returnParameters": {
              "id": 334,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 333,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 477,
                  "src": "804:6:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 332,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "804:6:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "803:8:2"
            },
            "scope": 478,
            "src": "732:1637:2",
            "stateMutability": "view",
            "superFunction": 291,
            "visibility": "public"
          }
        ],
        "scope": 479,
        "src": "253:2118:2"
      }
    ],
    "src": "0:2372:2"
  },
  "compiler": {
    "name": "solc",
    "version": "0.4.24+commit.e67f0147.Emscripten.clang"
  },
  "networks": {
    "1": {
      "events": {},
      "links": {},
      "address": "0xb11a82b6c3276966414ee9a3a80fa0791f7939a8",
      "transactionHash": "0x0dc34b8a5caec93e2a95010dd8d2f0205e99dc33b85793af239cb034dcd2283f"
    },
    "3": {
      "events": {},
      "links": {},
      "address": "0x48a96a77e6cb693e37a541a10a87ee1283f9f152",
      "transactionHash": "0xf1269a4e251b767d40ab86e6a041c5e22172277f6990df3f5a6965991c83163b"
    }
  },
  "schemaVersion": "2.0.1",
  "updatedAt": "2018-10-16T06:29:43.941Z"
}