{
  "_format": "hh-sol-artifact-1",
  "contractName": "ShoeLevelUpSnippet",
  "sourceName": "contracts/V3/snippet/ShoeLevelUpSnippet.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "stateCounter_",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "clusterArea_",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "address",
              "name": "caller",
              "type": "address"
            },
            {
              "internalType": "uint32",
              "name": "clusterId",
              "type": "uint32"
            },
            {
              "internalType": "uint8",
              "name": "inBranch",
              "type": "uint8"
            },
            {
              "internalType": "uint32",
              "name": "taskId",
              "type": "uint32"
            },
            {
              "internalType": "uint32",
              "name": "inTokenSlotIndex",
              "type": "uint32"
            },
            {
              "components": [
                {
                  "internalType": "uint8",
                  "name": "erc",
                  "type": "uint8"
                },
                {
                  "internalType": "address",
                  "name": "token",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "id",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "amount",
                  "type": "uint256"
                },
                {
                  "components": [
                    {
                      "internalType": "uint32",
                      "name": "attrId",
                      "type": "uint32"
                    },
                    {
                      "internalType": "int40",
                      "name": "attrAmount",
                      "type": "int40"
                    }
                  ],
                  "internalType": "struct Attribute.AttributeIn[]",
                  "name": "attrInList",
                  "type": "tuple[]"
                }
              ],
              "internalType": "struct Token.Token",
              "name": "inToken",
              "type": "tuple"
            }
          ],
          "internalType": "struct ISnippet.PreInputTokenParams",
          "name": "preInputToken",
          "type": "tuple"
        }
      ],
      "name": "preInputToken",
      "outputs": [
        {
          "components": [
            {
              "internalType": "uint8",
              "name": "erc",
              "type": "uint8"
            },
            {
              "internalType": "address",
              "name": "token",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "tokenId",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "amount",
              "type": "uint256"
            },
            {
              "components": [
                {
                  "internalType": "uint32",
                  "name": "attrId",
                  "type": "uint32"
                },
                {
                  "internalType": "uint8",
                  "name": "attrOpt",
                  "type": "uint8"
                },
                {
                  "internalType": "uint8",
                  "name": "attrType",
                  "type": "uint8"
                },
                {
                  "internalType": "int40",
                  "name": "attrAmount",
                  "type": "int40"
                },
                {
                  "internalType": "string",
                  "name": "attrText",
                  "type": "string"
                },
                {
                  "internalType": "uint32",
                  "name": "parentAttrId",
                  "type": "uint32"
                },
                {
                  "internalType": "uint8",
                  "name": "attrState",
                  "type": "uint8"
                },
                {
                  "internalType": "bytes4",
                  "name": "attrFormula",
                  "type": "bytes4"
                }
              ],
              "internalType": "struct Attribute.AttributeOpt[]",
              "name": "attributeOptList",
              "type": "tuple[]"
            }
          ],
          "internalType": "struct ISnippet.TokenSnippet",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "address",
              "name": "caller",
              "type": "address"
            },
            {
              "internalType": "uint32",
              "name": "clusterId",
              "type": "uint32"
            },
            {
              "internalType": "uint8",
              "name": "inBranch",
              "type": "uint8"
            },
            {
              "internalType": "uint8",
              "name": "inRound",
              "type": "uint8"
            },
            {
              "internalType": "uint32",
              "name": "taskId",
              "type": "uint32"
            }
          ],
          "internalType": "struct ISnippet.ExecuteDelayParams",
          "name": "executeDelay",
          "type": "tuple"
        }
      ],
      "name": "processExecuteDelayTime",
      "outputs": [
        {
          "internalType": "int32",
          "name": "",
          "type": "int32"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "address",
              "name": "caller",
              "type": "address"
            },
            {
              "internalType": "uint32",
              "name": "clusterId",
              "type": "uint32"
            },
            {
              "internalType": "uint8",
              "name": "inBranch",
              "type": "uint8"
            },
            {
              "internalType": "uint8",
              "name": "inRound",
              "type": "uint8"
            },
            {
              "internalType": "uint8",
              "name": "ruleDurationType",
              "type": "uint8"
            },
            {
              "internalType": "uint32",
              "name": "ruleDelayTimestamp",
              "type": "uint32"
            },
            {
              "internalType": "uint32",
              "name": "ruleDelayBlockNumber",
              "type": "uint32"
            },
            {
              "internalType": "uint32",
              "name": "delayTimestamp",
              "type": "uint32"
            },
            {
              "internalType": "uint32",
              "name": "delayBlockNumber",
              "type": "uint32"
            },
            {
              "components": [
                {
                  "internalType": "uint8",
                  "name": "erc",
                  "type": "uint8"
                },
                {
                  "internalType": "address",
                  "name": "token",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "id",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "amount",
                  "type": "uint256"
                },
                {
                  "components": [
                    {
                      "internalType": "uint32",
                      "name": "attrId",
                      "type": "uint32"
                    },
                    {
                      "internalType": "int40",
                      "name": "attrAmount",
                      "type": "int40"
                    }
                  ],
                  "internalType": "struct Attribute.AttributeIn[]",
                  "name": "attrInList",
                  "type": "tuple[]"
                }
              ],
              "internalType": "struct Token.Token[]",
              "name": "inTokenList",
              "type": "tuple[]"
            }
          ],
          "internalType": "struct ISnippet.InitDelayParams",
          "name": "initDelay",
          "type": "tuple"
        }
      ],
      "name": "processInitDelayTime",
      "outputs": [
        {
          "internalType": "int32",
          "name": "",
          "type": "int32"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "address",
              "name": "caller",
              "type": "address"
            },
            {
              "internalType": "uint32",
              "name": "clusterId",
              "type": "uint32"
            },
            {
              "internalType": "uint8",
              "name": "outBranch",
              "type": "uint8"
            },
            {
              "internalType": "uint32",
              "name": "taskId",
              "type": "uint32"
            },
            {
              "internalType": "uint32",
              "name": "inTokenSlotIndex",
              "type": "uint32"
            },
            {
              "components": [
                {
                  "internalType": "uint8",
                  "name": "erc",
                  "type": "uint8"
                },
                {
                  "internalType": "address",
                  "name": "token",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "id",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "amount",
                  "type": "uint256"
                },
                {
                  "components": [
                    {
                      "internalType": "uint32",
                      "name": "attrId",
                      "type": "uint32"
                    },
                    {
                      "internalType": "int40",
                      "name": "attrAmount",
                      "type": "int40"
                    }
                  ],
                  "internalType": "struct Attribute.AttributeIn[]",
                  "name": "attrInList",
                  "type": "tuple[]"
                }
              ],
              "internalType": "struct Token.Token",
              "name": "inToken",
              "type": "tuple"
            }
          ],
          "internalType": "struct ISnippet.InputTokenParams",
          "name": "inputToken",
          "type": "tuple"
        }
      ],
      "name": "processInputToken",
      "outputs": [
        {
          "components": [
            {
              "internalType": "uint8",
              "name": "erc",
              "type": "uint8"
            },
            {
              "internalType": "address",
              "name": "token",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "tokenId",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "amount",
              "type": "uint256"
            },
            {
              "components": [
                {
                  "internalType": "uint32",
                  "name": "attrId",
                  "type": "uint32"
                },
                {
                  "internalType": "uint8",
                  "name": "attrOpt",
                  "type": "uint8"
                },
                {
                  "internalType": "uint8",
                  "name": "attrType",
                  "type": "uint8"
                },
                {
                  "internalType": "int40",
                  "name": "attrAmount",
                  "type": "int40"
                },
                {
                  "internalType": "string",
                  "name": "attrText",
                  "type": "string"
                },
                {
                  "internalType": "uint32",
                  "name": "parentAttrId",
                  "type": "uint32"
                },
                {
                  "internalType": "uint8",
                  "name": "attrState",
                  "type": "uint8"
                },
                {
                  "internalType": "bytes4",
                  "name": "attrFormula",
                  "type": "bytes4"
                }
              ],
              "internalType": "struct Attribute.AttributeOpt[]",
              "name": "attributeOptList",
              "type": "tuple[]"
            }
          ],
          "internalType": "struct ISnippet.TokenSnippet",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "address",
              "name": "caller",
              "type": "address"
            },
            {
              "internalType": "uint32",
              "name": "clusterId",
              "type": "uint32"
            },
            {
              "internalType": "uint8",
              "name": "outBranch",
              "type": "uint8"
            },
            {
              "internalType": "uint32",
              "name": "taskId",
              "type": "uint32"
            },
            {
              "internalType": "uint256",
              "name": "random",
              "type": "uint256"
            },
            {
              "internalType": "uint8",
              "name": "tokenSlotIndex",
              "type": "uint8"
            },
            {
              "internalType": "uint8",
              "name": "erc",
              "type": "uint8"
            },
            {
              "internalType": "address",
              "name": "token",
              "type": "address"
            }
          ],
          "internalType": "struct ISnippet.TokenSlotDelayParams",
          "name": "tokenSlotDelay",
          "type": "tuple"
        }
      ],
      "name": "processInputTokenSlotDelayTime",
      "outputs": [
        {
          "internalType": "int32",
          "name": "",
          "type": "int32"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "address",
              "name": "caller",
              "type": "address"
            },
            {
              "internalType": "uint32",
              "name": "clusterId",
              "type": "uint32"
            },
            {
              "internalType": "uint8",
              "name": "outBranch",
              "type": "uint8"
            },
            {
              "internalType": "uint32",
              "name": "taskId",
              "type": "uint32"
            },
            {
              "internalType": "uint256",
              "name": "random",
              "type": "uint256"
            },
            {
              "internalType": "uint32",
              "name": "outTokenSlotIndex",
              "type": "uint32"
            },
            {
              "components": [
                {
                  "internalType": "uint8",
                  "name": "erc",
                  "type": "uint8"
                },
                {
                  "internalType": "address",
                  "name": "token",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "id",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "amount",
                  "type": "uint256"
                },
                {
                  "components": [
                    {
                      "internalType": "uint32",
                      "name": "attrId",
                      "type": "uint32"
                    },
                    {
                      "internalType": "int40",
                      "name": "attrAmount",
                      "type": "int40"
                    }
                  ],
                  "internalType": "struct Attribute.AttributeIn[]",
                  "name": "attrInList",
                  "type": "tuple[]"
                }
              ],
              "internalType": "struct Token.Token",
              "name": "outToken",
              "type": "tuple"
            }
          ],
          "internalType": "struct ISnippet.OutputTokenParams",
          "name": "outputToken",
          "type": "tuple"
        }
      ],
      "name": "processOutputToken",
      "outputs": [
        {
          "components": [
            {
              "internalType": "uint8",
              "name": "erc",
              "type": "uint8"
            },
            {
              "internalType": "address",
              "name": "token",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "tokenId",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "amount",
              "type": "uint256"
            },
            {
              "components": [
                {
                  "internalType": "uint32",
                  "name": "attrId",
                  "type": "uint32"
                },
                {
                  "internalType": "uint8",
                  "name": "attrOpt",
                  "type": "uint8"
                },
                {
                  "internalType": "uint8",
                  "name": "attrType",
                  "type": "uint8"
                },
                {
                  "internalType": "int40",
                  "name": "attrAmount",
                  "type": "int40"
                },
                {
                  "internalType": "string",
                  "name": "attrText",
                  "type": "string"
                },
                {
                  "internalType": "uint32",
                  "name": "parentAttrId",
                  "type": "uint32"
                },
                {
                  "internalType": "uint8",
                  "name": "attrState",
                  "type": "uint8"
                },
                {
                  "internalType": "bytes4",
                  "name": "attrFormula",
                  "type": "bytes4"
                }
              ],
              "internalType": "struct Attribute.AttributeOpt[]",
              "name": "attributeOptList",
              "type": "tuple[]"
            }
          ],
          "internalType": "struct ISnippet.TokenSnippet",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "address",
              "name": "caller",
              "type": "address"
            },
            {
              "internalType": "uint32",
              "name": "clusterId",
              "type": "uint32"
            },
            {
              "internalType": "uint8",
              "name": "outBranch",
              "type": "uint8"
            },
            {
              "internalType": "uint32",
              "name": "taskId",
              "type": "uint32"
            },
            {
              "internalType": "uint256",
              "name": "random",
              "type": "uint256"
            },
            {
              "internalType": "uint8",
              "name": "tokenSlotIndex",
              "type": "uint8"
            },
            {
              "internalType": "uint8",
              "name": "erc",
              "type": "uint8"
            },
            {
              "internalType": "address",
              "name": "token",
              "type": "address"
            }
          ],
          "internalType": "struct ISnippet.TokenSlotDelayParams",
          "name": "tokenSlotDelay",
          "type": "tuple"
        }
      ],
      "name": "processOutputTokenSlotDelayTime",
      "outputs": [
        {
          "internalType": "int32",
          "name": "",
          "type": "int32"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405234801561001057600080fd5b50604051610acb380380610acb83398101604081905261002f9161007c565b600180546001600160a01b039384166001600160a01b031991821617909155600080549290931691161790556100af565b80516001600160a01b038116811461007757600080fd5b919050565b6000806040838503121561008f57600080fd5b61009883610060565b91506100a660208401610060565b90509250929050565b610a0d806100be6000396000f3fe608060405234801561001057600080fd5b506004361061006d5760003560e01c806324d56ffe146100725780635de70a0d1461009b5780636557196a146100c2578063814645dc1461009b5780638cb665ff146100d05780639090fa45146100d0578063b6ee96de146100de575b600080fd5b6100856100803660046103c1565b6100f1565b60405161009291906104d9565b60405180910390f35b6100af6100a9366004610603565b50600090565b60405160039190910b8152602001610092565b6100af6100a936600461074a565b61008561008036600461090e565b6100af6100ec36600461094a565b610107565b6100f961013d565b61010161013d565b92915050565b6000816040015160ff16600214806101265750816040015160ff166003145b1561013557506101f319919050565b506000919050565b6040518060a00160405280600060ff16815260200160006001600160a01b031681526020016000815260200160008152602001606081525090565b634e487b7160e01b600052604160045260246000fd5b60405160a081016001600160401b03811182821017156101b0576101b0610178565b60405290565b604080519081016001600160401b03811182821017156101b0576101b0610178565b60405160e081016001600160401b03811182821017156101b0576101b0610178565b60405161014081016001600160401b03811182821017156101b0576101b0610178565b604051601f8201601f191681016001600160401b038111828210171561024557610245610178565b604052919050565b80356001600160a01b038116811461026457600080fd5b919050565b803563ffffffff8116811461026457600080fd5b803560ff8116811461026457600080fd5b60006001600160401b038211156102a7576102a7610178565b5060051b60200190565b600060a082840312156102c357600080fd5b6102cb61018e565b90506102d68261027d565b815260206102e581840161024d565b81830152604080840135818401526060840135606084015260808401356001600160401b0381111561031657600080fd5b8401601f8101861361032757600080fd5b803561033a6103358261028e565b61021d565b81815260069190911b8201840190848101908883111561035957600080fd5b928501925b828410156103b05784848a0312156103765760008081fd5b61037e6101b6565b61038785610269565b8152868501358060040b811461039d5760008081fd5b818801528252928401929085019061035e565b608087015250939695505050505050565b6000602082840312156103d357600080fd5b81356001600160401b03808211156103ea57600080fd5b9083019060e082860312156103fe57600080fd5b6104066101d8565b61040f8361024d565b815261041d60208401610269565b602082015261042e6040840161027d565b604082015261043f60608401610269565b60608201526080830135608082015261045a60a08401610269565b60a082015260c08301358281111561047157600080fd5b61047d878286016102b1565b60c08301525095945050505050565b6000815180845260005b818110156104b257602081850181015186830182015201610496565b818111156104c4576000602083870101525b50601f01601f19169290920160200192915050565b6000602080835260c080840160ff808751168487015283870151604060018060a01b03821681890152808901519150606082818a0152808a01519250608083818b0152808b0151935060a080818c015286855180895260e09850888d019150888160051b8e01018b8801975060005b828110156105f0578e820360df190184528851805163ffffffff1683528d8101518b168e8401528881015160ff16898401528781015160040b88840152868101516101008885018190529061059f8286018261048c565b915050868201516105b78886018263ffffffff169052565b508d8201516105ca8f86018260ff169052565b50908c01516001600160e01b031916928c0192909252978c0197928c0192600101610548565b509e9d5050505050505050505050505050565b600061010080838503121561061757600080fd5b604051908101906001600160401b038211818310171561063957610639610178565b816040526106468461024d565b815261065460208501610269565b60208201526106656040850161027d565b604082015261067660608501610269565b60608201526080840135608082015261069160a0850161027d565b60a08201526106a260c0850161027d565b60c08201526106b360e0850161024d565b60e0820152949350505050565b600082601f8301126106d157600080fd5b813560206106e16103358361028e565b82815260059290921b8401810191818101908684111561070057600080fd5b8286015b8481101561073f5780356001600160401b038111156107235760008081fd5b6107318986838b01016102b1565b845250918301918301610704565b509695505050505050565b60006020828403121561075c57600080fd5b81356001600160401b038082111561077357600080fd5b90830190610140828603121561078857600080fd5b6107906101fa565b6107998361024d565b81526107a760208401610269565b60208201526107b86040840161027d565b60408201526107c96060840161027d565b60608201526107da6080840161027d565b60808201526107eb60a08401610269565b60a08201526107fc60c08401610269565b60c082015261080d60e08401610269565b60e0820152610100610820818501610269565b90820152610120838101358381111561083857600080fd5b610844888287016106c0565b918301919091525095945050505050565b600060c0828403121561086757600080fd5b60405160c081016001600160401b03828210818311171561088a5761088a610178565b8160405282935061089a8561024d565b83526108a860208601610269565b60208401526108b96040860161027d565b60408401526108ca60608601610269565b60608401526108db60808601610269565b608084015260a08501359150808211156108f457600080fd5b50610901858286016102b1565b60a0830152505092915050565b60006020828403121561092057600080fd5b81356001600160401b0381111561093657600080fd5b61094284828501610855565b949350505050565b600060a0828403121561095c57600080fd5b60405160a081018181106001600160401b038211171561097e5761097e610178565b60405261098a8361024d565b815261099860208401610269565b60208201526109a96040840161027d565b60408201526109ba6060840161027d565b60608201526109cb60808401610269565b6080820152939250505056fea264697066735822122035dbce060ebd163c087fd0f6f84099b86f0e2cc0bc8452bfded67d26940bae3a64736f6c63430008080033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061006d5760003560e01c806324d56ffe146100725780635de70a0d1461009b5780636557196a146100c2578063814645dc1461009b5780638cb665ff146100d05780639090fa45146100d0578063b6ee96de146100de575b600080fd5b6100856100803660046103c1565b6100f1565b60405161009291906104d9565b60405180910390f35b6100af6100a9366004610603565b50600090565b60405160039190910b8152602001610092565b6100af6100a936600461074a565b61008561008036600461090e565b6100af6100ec36600461094a565b610107565b6100f961013d565b61010161013d565b92915050565b6000816040015160ff16600214806101265750816040015160ff166003145b1561013557506101f319919050565b506000919050565b6040518060a00160405280600060ff16815260200160006001600160a01b031681526020016000815260200160008152602001606081525090565b634e487b7160e01b600052604160045260246000fd5b60405160a081016001600160401b03811182821017156101b0576101b0610178565b60405290565b604080519081016001600160401b03811182821017156101b0576101b0610178565b60405160e081016001600160401b03811182821017156101b0576101b0610178565b60405161014081016001600160401b03811182821017156101b0576101b0610178565b604051601f8201601f191681016001600160401b038111828210171561024557610245610178565b604052919050565b80356001600160a01b038116811461026457600080fd5b919050565b803563ffffffff8116811461026457600080fd5b803560ff8116811461026457600080fd5b60006001600160401b038211156102a7576102a7610178565b5060051b60200190565b600060a082840312156102c357600080fd5b6102cb61018e565b90506102d68261027d565b815260206102e581840161024d565b81830152604080840135818401526060840135606084015260808401356001600160401b0381111561031657600080fd5b8401601f8101861361032757600080fd5b803561033a6103358261028e565b61021d565b81815260069190911b8201840190848101908883111561035957600080fd5b928501925b828410156103b05784848a0312156103765760008081fd5b61037e6101b6565b61038785610269565b8152868501358060040b811461039d5760008081fd5b818801528252928401929085019061035e565b608087015250939695505050505050565b6000602082840312156103d357600080fd5b81356001600160401b03808211156103ea57600080fd5b9083019060e082860312156103fe57600080fd5b6104066101d8565b61040f8361024d565b815261041d60208401610269565b602082015261042e6040840161027d565b604082015261043f60608401610269565b60608201526080830135608082015261045a60a08401610269565b60a082015260c08301358281111561047157600080fd5b61047d878286016102b1565b60c08301525095945050505050565b6000815180845260005b818110156104b257602081850181015186830182015201610496565b818111156104c4576000602083870101525b50601f01601f19169290920160200192915050565b6000602080835260c080840160ff808751168487015283870151604060018060a01b03821681890152808901519150606082818a0152808a01519250608083818b0152808b0151935060a080818c015286855180895260e09850888d019150888160051b8e01018b8801975060005b828110156105f0578e820360df190184528851805163ffffffff1683528d8101518b168e8401528881015160ff16898401528781015160040b88840152868101516101008885018190529061059f8286018261048c565b915050868201516105b78886018263ffffffff169052565b508d8201516105ca8f86018260ff169052565b50908c01516001600160e01b031916928c0192909252978c0197928c0192600101610548565b509e9d5050505050505050505050505050565b600061010080838503121561061757600080fd5b604051908101906001600160401b038211818310171561063957610639610178565b816040526106468461024d565b815261065460208501610269565b60208201526106656040850161027d565b604082015261067660608501610269565b60608201526080840135608082015261069160a0850161027d565b60a08201526106a260c0850161027d565b60c08201526106b360e0850161024d565b60e0820152949350505050565b600082601f8301126106d157600080fd5b813560206106e16103358361028e565b82815260059290921b8401810191818101908684111561070057600080fd5b8286015b8481101561073f5780356001600160401b038111156107235760008081fd5b6107318986838b01016102b1565b845250918301918301610704565b509695505050505050565b60006020828403121561075c57600080fd5b81356001600160401b038082111561077357600080fd5b90830190610140828603121561078857600080fd5b6107906101fa565b6107998361024d565b81526107a760208401610269565b60208201526107b86040840161027d565b60408201526107c96060840161027d565b60608201526107da6080840161027d565b60808201526107eb60a08401610269565b60a08201526107fc60c08401610269565b60c082015261080d60e08401610269565b60e0820152610100610820818501610269565b90820152610120838101358381111561083857600080fd5b610844888287016106c0565b918301919091525095945050505050565b600060c0828403121561086757600080fd5b60405160c081016001600160401b03828210818311171561088a5761088a610178565b8160405282935061089a8561024d565b83526108a860208601610269565b60208401526108b96040860161027d565b60408401526108ca60608601610269565b60608401526108db60808601610269565b608084015260a08501359150808211156108f457600080fd5b50610901858286016102b1565b60a0830152505092915050565b60006020828403121561092057600080fd5b81356001600160401b0381111561093657600080fd5b61094284828501610855565b949350505050565b600060a0828403121561095c57600080fd5b60405160a081018181106001600160401b038211171561097e5761097e610178565b60405261098a8361024d565b815261099860208401610269565b60208201526109a96040840161027d565b60408201526109ba6060840161027d565b60608201526109cb60808401610269565b6080820152939250505056fea264697066735822122035dbce060ebd163c087fd0f6f84099b86f0e2cc0bc8452bfded67d26940bae3a64736f6c63430008080033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
