{
  "format": "wa1-module",
  "formatVersion": 1,
  "name": "HUD 演示与压力测试",
  "author": null,
  "class": "All",
  "globalName": "SuperDPS",
  "spellQueueWindow": 250,
  "initCode": "",
  "hud": "-- HUD 演示：一屏展示节点类型、持续动效、入场 / 出场、补间、特效、实时数据，底部是可调规模的压力测试。\n-- 不开游戏也能看：设置里打开「调试时始终显示」；连着游戏时「实时数据」区读真实属性。\n-- 脚本每 50ms 跑一次，时间轴用 os.clock() 驱动；动画都在渲染侧按时刻求值、跟随显示器刷新率出帧（按画面变化量抽帧）。\n-- STRESS = 压力区节点数（0 关闭；总节点上限 200，展示区 82 个，所以最多 115）。\nlocal STRESS = 100\nlocal t = os.clock()\n\n-- h ∈ [0,1) 的色相 → \"#rrggbb\"（饱和度 0.7、亮度 1）\nlocal function hue(h)\n    local i = math.floor(h * 6) % 6\n    local f = h * 6 - math.floor(h * 6)\n    local p, q, u = 0.3, 1 - 0.7 * f, 0.3 + 0.7 * f\n    local r, g, b\n    if i == 0 then r, g, b = 1, u, p elseif i == 1 then r, g, b = q, 1, p elseif i == 2 then r, g, b = p, 1, u\n    elseif i == 3 then r, g, b = p, q, 1 elseif i == 4 then r, g, b = u, p, 1 else r, g, b = 1, p, q end\n    return string.format(\"#%02x%02x%02x\", math.floor(r * 255), math.floor(g * 255), math.floor(b * 255))\nend\n\nlocal TRANSITIONS = { \"fade\", \"slideLeft\", \"slideRight\", \"slideUp\", \"slideDown\", \"zoom\", \"pop\" }\nlocal EASES = { \"linear\", \"inQuad\", \"outQuad\", \"inOutQuad\", \"inCubic\", \"outCubic\", \"inOutCubic\", \"outBack\", \"outElastic\", \"outBounce\" }\nlocal LOOPS = { \"breathe\", \"blink\", \"bounce\", \"float\", \"shake\", \"beat\" }\nlocal ICONS = { \"heart\", \"zap\", \"shield\", \"flame\", \"target\", \"swords\", \"star\", \"clock\" }\nlocal stressCount = math.max(0, math.min(STRESS, 115))\n\nHud.Init(function()\n    local W, H = Hud.Screen()\n    -- 布局按客户区宽度自适应：两列各占一半（1920 vu 时各 900 宽）\n    local colW = (W - 120) / 2\n    local L, R = 40, 40 + colW + 40\n    local function panel(id, x, y, w, h, title)\n        Hud.Frame(id, { anchor = \"TOPLEFT\", x = x, y = y, w = w, h = h, bg = \"#00000080\", border = \"#ffffff26\", radius = 8, enter = \"fade\" })\n        Hud.Text(id .. \"Title\", { parent = id, anchor = \"TOPLEFT\", x = 12, y = 8, size = 14, bold = true, color = \"#ffffffb0\", text = title })\n    end\n\n    -- 标题\n    Hud.Frame(\"title\", { anchor = \"TOP\", y = 12, w = 640, h = 44, bg = \"#00000099\", border = \"#ffffff30\", radius = 10, enter = \"pop\" })\n    Hud.Icon(\"titleIcon\", { parent = \"title\", anchor = \"LEFT\", x = 14, w = 26, h = 26, icon = \"sparkles\", color = \"#f1c40f\", loop = \"float\" })\n    Hud.Text(\"titleText\", { parent = \"title\", anchor = \"CENTER\", size = 22, bold = true, color = \"#ffffff\", text = \"WA1 HUD 演示 · 节点 / 动效 / 补间 / 压力测试\" })\n    Hud.Text(\"screen\", { parent = \"title\", anchor = \"BOTTOM\", y = 18, size = 12, color = \"#ffffff80\",\n        text = string.format(\"客户区 %d × %d vu · 压力区 %d 节点\", math.floor(W), math.floor(H), stressCount) })\n\n    -- A 节点类型：Frame（底 / 边 / 圆角 / 层级）、Text（字号 / 粗体）、Bar（四个方向）、Icon\n    panel(\"pa\", L, 80, colW, 200, \"节点类型  Frame · Text · Bar · Icon\")\n    Hud.Frame(\"fA\", { parent = \"pa\", anchor = \"TOPLEFT\", x = 20, y = 40, w = 80, h = 60, bg = \"#3fa9f5\" })\n    Hud.Frame(\"fB\", { parent = \"pa\", anchor = \"TOPLEFT\", x = 110, y = 40, w = 80, h = 60, border = \"#2ecc71\", borderw = 2, radius = 6 })\n    Hud.Frame(\"fC\", { parent = \"pa\", anchor = \"TOPLEFT\", x = 200, y = 40, w = 80, h = 60, bg = \"#e74c3c80\", radius = 30 })\n    Hud.Frame(\"fZ1\", { parent = \"pa\", anchor = \"TOPLEFT\", x = 290, y = 40, w = 60, h = 60, bg = \"#9b59b6\", z = 1 })\n    Hud.Frame(\"fZ2\", { parent = \"pa\", anchor = \"TOPLEFT\", x = 320, y = 60, w = 60, h = 60, bg = \"#f1c40f\", z = 2, radius = 8 })\n    Hud.Text(\"fLabel\", { parent = \"pa\", anchor = \"TOPLEFT\", x = 20, y = 108, size = 12, color = \"#ffffff80\", text = \"bg · border/radius · 半透明圆 · z 层级\" })\n    Hud.Text(\"t14\", { parent = \"pa\", anchor = \"TOPLEFT\", x = 420, y = 40, size = 14, color = \"#ffffff\", text = \"Text 14\" })\n    Hud.Text(\"t20\", { parent = \"pa\", anchor = \"TOPLEFT\", x = 420, y = 62, size = 20, color = \"#2ecc71\", text = \"Text 20\" })\n    Hud.Text(\"t28\", { parent = \"pa\", anchor = \"TOPLEFT\", x = 420, y = 92, size = 28, bold = true, color = \"#f1c40f\", text = \"Bold 28\" })\n    Hud.Bar(\"bRight\", { parent = \"pa\", anchor = \"TOPLEFT\", x = 580, y = 44, w = 200, h = 14, value = 0.5, color = \"#2ecc71\", bg = \"#ffffff22\", radius = 4, dir = \"right\", smooth = 100 })\n    Hud.Bar(\"bLeft\", { parent = \"pa\", anchor = \"TOPLEFT\", x = 580, y = 66, w = 200, h = 14, value = 0.5, color = \"#e67e22\", bg = \"#ffffff22\", radius = 4, dir = \"left\", smooth = 100 })\n    Hud.Bar(\"bUp\", { parent = \"pa\", anchor = \"TOPLEFT\", x = 800, y = 44, w = 14, h = 100, value = 0.5, color = \"#3fa9f5\", bg = \"#ffffff22\", radius = 4, dir = \"up\", smooth = 100 })\n    Hud.Bar(\"bDown\", { parent = \"pa\", anchor = \"TOPLEFT\", x = 822, y = 44, w = 14, h = 100, value = 0.5, color = \"#9b59b6\", bg = \"#ffffff22\", radius = 4, dir = \"down\", smooth = 100 })\n    Hud.Text(\"bLabel\", { parent = \"pa\", anchor = \"TOPLEFT\", x = 580, y = 88, size = 12, color = \"#ffffff80\", text = \"dir right / left / up / down\" })\n    for i, name in ipairs(ICONS) do\n        Hud.Icon(\"icon\" .. i, { parent = \"pa\", anchor = \"TOPLEFT\", x = 20 + (i - 1) * 46, y = 140, w = 32, h = 32, icon = name, color = hue((i - 1) / #ICONS) })\n    end\n    Hud.Text(\"iLabel\", { parent = \"pa\", anchor = \"TOPLEFT\", x = 400, y = 148, size = 12, color = \"#ffffff80\", text = \"Icon（lucide 图标名，颜色可改）\" })\n\n    -- B 持续动效 loop：六个预设 + 一个表写法\n    panel(\"pb\", R, 80, colW, 200, \"持续动效 loop  breathe · blink · bounce · float · shake · beat · 表写法\")\n    for i, name in ipairs(LOOPS) do\n        Hud.Text(\"loop\" .. i, { parent = \"pb\", anchor = \"TOPLEFT\", x = 24 + (i - 1) * 140, y = 60, size = 24, bold = true, color = hue((i - 1) / #LOOPS), text = name, loop = name })\n    end\n    Hud.Frame(\"beatBox\", { parent = \"pb\", anchor = \"TOPLEFT\", x = 24, y = 120, w = 56, h = 56, bg = \"#e74c3c\", radius = 28, loop = { kind = \"beat\", to = 1.25, ms = 800 } })\n    Hud.Icon(\"beatIcon\", { parent = \"beatBox\", anchor = \"CENTER\", w = 30, h = 30, icon = \"heart\", color = \"#ffffff\" })\n    Hud.Text(\"loopCustom\", { parent = \"pb\", anchor = \"TOPLEFT\", x = 110, y = 136, size = 18, color = \"#ffffff\", text = \"{ kind = bounce, dir = left, dist = 20, ms = 900, ease = inOutQuad }\",\n        loop = { kind = \"bounce\", dir = \"left\", dist = 20, ms = 900, ease = \"inOutQuad\" } })\n\n    -- C 入场 / 出场：七个预设各自按周期显隐（Show 翻转才播过渡）\n    panel(\"pc\", L, 300, colW, 200, \"入场 / 出场 enter · exit  （各卡片周期性显隐）\")\n    for i, name in ipairs(TRANSITIONS) do\n        local id = \"tr\" .. i\n        Hud.Frame(id, { parent = \"pc\", anchor = \"TOPLEFT\", x = 20 + (i - 1) * 124, y = 44, w = 110, h = 110, bg = hue((i - 1) / #TRANSITIONS) .. \"cc\", radius = 10, enter = name, exit = name })\n        Hud.Text(id .. \"Text\", { parent = id, anchor = \"CENTER\", size = 16, bold = true, color = \"#ffffff\", text = name })\n    end\n    Hud.Text(\"trLabel\", { parent = \"pc\", anchor = \"TOPLEFT\", x = 20, y = 166, size = 12, color = \"#ffffff80\", text = \"同名预设同时用作 enter 与 exit；默认入场 250ms outCubic（pop 为 outBack）、出场 180ms inCubic\" })\n\n    -- D 补间：Animate 小球（轮换十种缓动）、smooth 有无对比、Animate 字号\n    panel(\"pd\", R, 300, colW, 200, \"补间  Hud.Animate · smooth\")\n    Hud.Frame(\"track\", { parent = \"pd\", anchor = \"TOPLEFT\", x = 40, y = 60, w = 760, h = 4, bg = \"#ffffff22\", radius = 2 })\n    Hud.Frame(\"ball\", { parent = \"pd\", anchor = \"TOPLEFT\", x = 40, y = 42, w = 40, h = 40, bg = \"#3fa9f5\", radius = 20 })\n    Hud.Text(\"easeText\", { parent = \"pd\", anchor = \"TOPLEFT\", x = 40, y = 96, size = 14, color = \"#ffffff\", text = \"Animate 1200ms\" })\n    Hud.Bar(\"smoothOn\", { parent = \"pd\", anchor = \"TOPLEFT\", x = 40, y = 128, w = 360, h = 14, value = 0.5, color = \"#2ecc71\", bg = \"#ffffff22\", radius = 4, smooth = 150 })\n    Hud.Bar(\"smoothOff\", { parent = \"pd\", anchor = \"TOPLEFT\", x = 440, y = 128, w = 360, h = 14, value = 0.5, color = \"#e67e22\", bg = \"#ffffff22\", radius = 4 })\n    Hud.Text(\"smoothLabelOn\", { parent = \"pd\", anchor = \"TOPLEFT\", x = 40, y = 150, size = 12, color = \"#ffffff80\", text = \"smooth = 150：50ms 节拍补到刷新率\" })\n    Hud.Text(\"smoothLabelOff\", { parent = \"pd\", anchor = \"TOPLEFT\", x = 440, y = 150, size = 12, color = \"#ffffff80\", text = \"无 smooth：随脚本节拍跳变\" })\n    Hud.Text(\"sizeText\", { parent = \"pd\", anchor = \"TOPRIGHT\", x = -30, y = 90, size = 16, bold = true, color = \"#f1c40f\", text = \"Animate size\" })\n\n    -- E 特效：Flash / Pulse / Blink / 运行中 Hud.Loop 切换\n    panel(\"pe\", L, 520, colW, 120, \"特效  Hud.Flash · Hud.Pulse · Hud.Blink · Hud.Loop 切换\")\n    Hud.Frame(\"flashBox\", { parent = \"pe\", anchor = \"TOPLEFT\", x = 20, y = 44, w = 160, h = 56, bg = \"#34495e\", radius = 8 })\n    Hud.Text(\"flashText\", { parent = \"flashBox\", anchor = \"CENTER\", size = 16, color = \"#ffffff\", text = \"Flash 每 2s\" })\n    Hud.Text(\"pulseText\", { parent = \"pe\", anchor = \"TOPLEFT\", x = 220, y = 60, size = 22, bold = true, color = \"#2ecc71\", text = \"Pulse\" })\n    Hud.Text(\"blinkText\", { parent = \"pe\", anchor = \"TOPLEFT\", x = 340, y = 60, size = 22, bold = true, color = \"#e74c3c\", text = \"Blink\" })\n    Hud.Text(\"loopToggle\", { parent = \"pe\", anchor = \"TOPLEFT\", x = 460, y = 60, size = 22, bold = true, color = \"#f1c40f\", text = \"Loop shake ⇄ none\" })\n\n    -- F 实时数据：属性驱动（没游戏时全 0）\n    panel(\"pf\", R, 520, colW, 120, \"实时数据  Prop 驱动（未连接游戏时为 0）\")\n    Hud.Bar(\"hp\", { parent = \"pf\", anchor = \"TOPLEFT\", x = 20, y = 50, w = 400, h = 22, value = 0, color = \"#2ecc71\", bg = \"#ffffff22\", radius = 6, smooth = 150 })\n    Hud.Text(\"hpText\", { parent = \"hp\", anchor = \"CENTER\", size = 15, bold = true, color = \"#ffffff\", text = \"0%\" })\n    Hud.Text(\"combat\", { parent = \"pf\", anchor = \"TOPLEFT\", x = 460, y = 50, size = 22, bold = true, color = \"#ff4d4d\", text = \"战斗中\", hidden = true, enter = \"pop\", exit = \"fade\", loop = \"breathe\" })\n    Hud.Text(\"visible\", { parent = \"pf\", anchor = \"TOPLEFT\", x = 620, y = 56, size = 13, color = \"#ffffff80\", text = \"\" })\n\n    -- G 压力测试：STRESS 个小条，loop 交替 breathe / beat / 无（值走 smooth），每拍全部更新值与颜色\n    local cols = math.max(1, math.floor((W - 120) / 90))\n    local rows = math.ceil(stressCount / cols)\n    panel(\"pg\", L, 660, W - 80, math.max(80, 50 + rows * 32), string.format(\"压力测试  %d 个 Bar · 每拍更新值与颜色 · loop 交替 breathe / beat / smooth\", stressCount))\n    for i = 1, stressCount do\n        local col, row = (i - 1) % cols, math.floor((i - 1) / cols)\n        local loop = (i % 3 == 1) and \"breathe\" or (i % 3 == 2) and \"beat\" or nil\n        Hud.Bar(\"s\" .. i, { parent = \"pg\", anchor = \"TOPLEFT\", x = 20 + col * 90, y = 40 + row * 32, w = 76, h = 12, value = 0.5,\n            color = hue((i - 1) / stressCount), bg = \"#ffffff18\", radius = 3, smooth = (i % 3 == 0) and 120 or nil, loop = loop })\n    end\nend)\n\n-- A：四向条随正弦变化\nlocal wave = 0.5 + 0.5 * math.sin(t * 1.6)\nHud.Set(\"bRight\", \"value\", wave)\nHud.Set(\"bLeft\", \"value\", 1 - wave)\nHud.Set(\"bUp\", \"value\", 0.5 + 0.5 * math.sin(t * 1.6 + 1))\nHud.Set(\"bDown\", \"value\", 0.5 + 0.5 * math.cos(t * 1.6 + 1))\n\n-- C：每张卡片按自己的相位周期显隐\nfor i = 1, #TRANSITIONS do\n    Hud.Show(\"tr\" .. i, math.floor(t / 1.6 + i * 0.35) % 2 == 0)\nend\n\n-- D：小球每 1.5s 换方向与缓动；smooth 对比条同一份数据；字号往返\nif CoolDown(\"demo.ball\", 1500) then\n    local step = math.floor(t / 1.5)\n    local ease = EASES[step % #EASES + 1]\n    local toRight = step % 2 == 0\n    Hud.Animate(\"ball\", { x = toRight and 760 or 40, bg = hue((step % #EASES) / #EASES) }, 1200, ease)\n    Hud.Set(\"easeText\", \"text\", \"Animate 1200ms · ease = \" .. ease)\n    Hud.Animate(\"sizeText\", { size = toRight and 30 or 14 }, 1200, ease)\nend\nlocal s2 = 0.5 + 0.5 * math.sin(t * 2.4)\nHud.Set(\"smoothOn\", \"value\", s2)\nHud.Set(\"smoothOff\", \"value\", s2)\n\n-- E：闪光 / 呼吸 / 闪烁 / 运行中切换 loop\nif CoolDown(\"demo.flash\", 2000) then Hud.Flash(\"flashBox\", \"#ffffff\", 500) end\nHud.Pulse(\"pulseText\", true, { period = 900, min = 0.3 })\nHud.Blink(\"blinkText\", true, 500)\nHud.Loop(\"loopToggle\", math.floor(t / 3) % 2 == 0 and \"shake\" or false)\n\n-- F：实时属性\nlocal hp = Prop(\"生命百分比\")\nHud.Set(\"hp\", \"value\", hp)\nHud.Set(\"hpText\", \"text\", string.format(\"%d%%\", math.floor(hp * 100)))\nHud.Set(\"hp\", \"color\", hp < 0.3 and \"#e74c3c\" or \"#2ecc71\")\nHud.Show(\"combat\", Prop(\"战斗中\") > 0)\nHud.Set(\"visible\", \"text\", \"Hud.Visible() = \" .. tostring(Hud.Visible()))\n\n-- G：压力区每拍全部更新（值与颜色都变，触发 smooth 补间与重绘）\nfor i = 1, stressCount do\n    local v = 0.5 + 0.5 * math.sin(t * 2 + i * 0.25)\n    Hud.Set(\"s\" .. i, { value = v, color = hue(((i - 1) / stressCount + t * 0.05) % 1) })\nend",
  "macros": [
    {
      "index": 1,
      "hotkey": "ALT-SHIFT-NUMPAD1",
      "name": "",
      "macro": ""
    },
    {
      "index": 2,
      "hotkey": "ALT-SHIFT-NUMPAD2",
      "name": "",
      "macro": ""
    },
    {
      "index": 3,
      "hotkey": "ALT-SHIFT-NUMPAD3",
      "name": "",
      "macro": ""
    },
    {
      "index": 4,
      "hotkey": "ALT-SHIFT-NUMPAD4",
      "name": "",
      "macro": ""
    },
    {
      "index": 5,
      "hotkey": "ALT-SHIFT-NUMPAD5",
      "name": "",
      "macro": ""
    },
    {
      "index": 6,
      "hotkey": "ALT-SHIFT-NUMPAD6",
      "name": "",
      "macro": ""
    },
    {
      "index": 7,
      "hotkey": "ALT-SHIFT-NUMPAD7",
      "name": "",
      "macro": ""
    },
    {
      "index": 8,
      "hotkey": "ALT-SHIFT-NUMPAD8",
      "name": "",
      "macro": ""
    },
    {
      "index": 9,
      "hotkey": "ALT-SHIFT-NUMPAD9",
      "name": "",
      "macro": ""
    },
    {
      "index": 10,
      "hotkey": "ALT-SHIFT-NUMPAD0",
      "name": "",
      "macro": ""
    },
    {
      "index": 11,
      "hotkey": "CTRL-SHIFT-NUMPAD1",
      "name": "",
      "macro": ""
    },
    {
      "index": 12,
      "hotkey": "CTRL-SHIFT-NUMPAD2",
      "name": "",
      "macro": ""
    },
    {
      "index": 13,
      "hotkey": "CTRL-SHIFT-NUMPAD3",
      "name": "",
      "macro": ""
    },
    {
      "index": 14,
      "hotkey": "CTRL-SHIFT-NUMPAD4",
      "name": "",
      "macro": ""
    },
    {
      "index": 15,
      "hotkey": "CTRL-SHIFT-NUMPAD5",
      "name": "",
      "macro": ""
    },
    {
      "index": 16,
      "hotkey": "CTRL-SHIFT-NUMPAD6",
      "name": "",
      "macro": ""
    },
    {
      "index": 17,
      "hotkey": "CTRL-SHIFT-NUMPAD7",
      "name": "",
      "macro": ""
    },
    {
      "index": 18,
      "hotkey": "CTRL-SHIFT-NUMPAD8",
      "name": "",
      "macro": ""
    },
    {
      "index": 19,
      "hotkey": "CTRL-SHIFT-NUMPAD9",
      "name": "",
      "macro": ""
    },
    {
      "index": 20,
      "hotkey": "CTRL-SHIFT-NUMPAD0",
      "name": "",
      "macro": ""
    },
    {
      "index": 21,
      "hotkey": "SHIFT-NUMPAD1",
      "name": "",
      "macro": ""
    },
    {
      "index": 22,
      "hotkey": "SHIFT-NUMPAD2",
      "name": "",
      "macro": ""
    },
    {
      "index": 23,
      "hotkey": "SHIFT-NUMPAD3",
      "name": "",
      "macro": ""
    },
    {
      "index": 24,
      "hotkey": "SHIFT-NUMPAD4",
      "name": "",
      "macro": ""
    },
    {
      "index": 25,
      "hotkey": "SHIFT-NUMPAD5",
      "name": "",
      "macro": ""
    },
    {
      "index": 26,
      "hotkey": "SHIFT-NUMPAD6",
      "name": "",
      "macro": ""
    },
    {
      "index": 27,
      "hotkey": "SHIFT-NUMPAD7",
      "name": "",
      "macro": ""
    },
    {
      "index": 28,
      "hotkey": "SHIFT-NUMPAD8",
      "name": "",
      "macro": ""
    },
    {
      "index": 29,
      "hotkey": "SHIFT-NUMPAD9",
      "name": "",
      "macro": ""
    },
    {
      "index": 30,
      "hotkey": "SHIFT-NUMPAD0",
      "name": "",
      "macro": ""
    },
    {
      "index": 31,
      "hotkey": "CTRL-NUMPAD1",
      "name": "",
      "macro": ""
    },
    {
      "index": 32,
      "hotkey": "CTRL-NUMPAD2",
      "name": "",
      "macro": ""
    },
    {
      "index": 33,
      "hotkey": "CTRL-NUMPAD3",
      "name": "",
      "macro": ""
    },
    {
      "index": 34,
      "hotkey": "CTRL-NUMPAD4",
      "name": "",
      "macro": ""
    },
    {
      "index": 35,
      "hotkey": "CTRL-NUMPAD5",
      "name": "",
      "macro": ""
    },
    {
      "index": 36,
      "hotkey": "CTRL-NUMPAD6",
      "name": "",
      "macro": ""
    },
    {
      "index": 37,
      "hotkey": "CTRL-NUMPAD7",
      "name": "",
      "macro": ""
    },
    {
      "index": 38,
      "hotkey": "CTRL-NUMPAD8",
      "name": "",
      "macro": ""
    },
    {
      "index": 39,
      "hotkey": "CTRL-NUMPAD9",
      "name": "",
      "macro": ""
    },
    {
      "index": 40,
      "hotkey": "CTRL-NUMPAD0",
      "name": "",
      "macro": ""
    },
    {
      "index": 41,
      "hotkey": "ALT-NUMPAD1",
      "name": "",
      "macro": ""
    },
    {
      "index": 42,
      "hotkey": "ALT-NUMPAD2",
      "name": "",
      "macro": ""
    },
    {
      "index": 43,
      "hotkey": "ALT-NUMPAD3",
      "name": "",
      "macro": ""
    },
    {
      "index": 44,
      "hotkey": "ALT-NUMPAD4",
      "name": "",
      "macro": ""
    },
    {
      "index": 45,
      "hotkey": "ALT-NUMPAD5",
      "name": "",
      "macro": ""
    },
    {
      "index": 46,
      "hotkey": "ALT-NUMPAD6",
      "name": "",
      "macro": ""
    },
    {
      "index": 47,
      "hotkey": "ALT-NUMPAD7",
      "name": "",
      "macro": ""
    },
    {
      "index": 48,
      "hotkey": "ALT-NUMPAD8",
      "name": "",
      "macro": ""
    },
    {
      "index": 49,
      "hotkey": "ALT-NUMPAD9",
      "name": "",
      "macro": ""
    },
    {
      "index": 50,
      "hotkey": "ALT-NUMPAD0",
      "name": "",
      "macro": ""
    },
    {
      "index": 51,
      "hotkey": "ALT-SHIFT-,",
      "name": "",
      "macro": ""
    },
    {
      "index": 52,
      "hotkey": "ALT-SHIFT-.",
      "name": "",
      "macro": ""
    },
    {
      "index": 53,
      "hotkey": "ALT-SHIFT-/",
      "name": "",
      "macro": ""
    },
    {
      "index": 54,
      "hotkey": "ALT-SHIFT-;",
      "name": "",
      "macro": ""
    },
    {
      "index": 55,
      "hotkey": "ALT-SHIFT-'",
      "name": "",
      "macro": ""
    },
    {
      "index": 56,
      "hotkey": "ALT-SHIFT-[",
      "name": "",
      "macro": ""
    },
    {
      "index": 57,
      "hotkey": "ALT-SHIFT-]",
      "name": "",
      "macro": ""
    },
    {
      "index": 58,
      "hotkey": "ALT-SHIFT-=",
      "name": "",
      "macro": ""
    },
    {
      "index": 59,
      "hotkey": "CTRL-SHIFT-,",
      "name": "",
      "macro": ""
    },
    {
      "index": 60,
      "hotkey": "CTRL-SHIFT-.",
      "name": "",
      "macro": ""
    },
    {
      "index": 61,
      "hotkey": "CTRL-SHIFT-/",
      "name": "",
      "macro": ""
    },
    {
      "index": 62,
      "hotkey": "CTRL-SHIFT-;",
      "name": "",
      "macro": ""
    },
    {
      "index": 63,
      "hotkey": "CTRL-SHIFT-'",
      "name": "",
      "macro": ""
    },
    {
      "index": 64,
      "hotkey": "CTRL-SHIFT-[",
      "name": "",
      "macro": ""
    },
    {
      "index": 65,
      "hotkey": "CTRL-SHIFT-]",
      "name": "",
      "macro": ""
    },
    {
      "index": 66,
      "hotkey": "CTRL-SHIFT-=",
      "name": "",
      "macro": ""
    },
    {
      "index": 67,
      "hotkey": "SHIFT-,",
      "name": "",
      "macro": ""
    },
    {
      "index": 68,
      "hotkey": "SHIFT-.",
      "name": "",
      "macro": ""
    },
    {
      "index": 69,
      "hotkey": "SHIFT-/",
      "name": "",
      "macro": ""
    },
    {
      "index": 70,
      "hotkey": "SHIFT-;",
      "name": "",
      "macro": ""
    },
    {
      "index": 71,
      "hotkey": "SHIFT-'",
      "name": "",
      "macro": ""
    },
    {
      "index": 72,
      "hotkey": "SHIFT-[",
      "name": "",
      "macro": ""
    },
    {
      "index": 73,
      "hotkey": "SHIFT-]",
      "name": "",
      "macro": ""
    },
    {
      "index": 74,
      "hotkey": "SHIFT-=",
      "name": "",
      "macro": ""
    },
    {
      "index": 75,
      "hotkey": "CTRL-,",
      "name": "",
      "macro": ""
    },
    {
      "index": 76,
      "hotkey": "CTRL-.",
      "name": "",
      "macro": ""
    },
    {
      "index": 77,
      "hotkey": "CTRL-/",
      "name": "",
      "macro": ""
    },
    {
      "index": 78,
      "hotkey": "CTRL-;",
      "name": "",
      "macro": ""
    },
    {
      "index": 79,
      "hotkey": "CTRL-'",
      "name": "",
      "macro": ""
    },
    {
      "index": 80,
      "hotkey": "CTRL-[",
      "name": "",
      "macro": ""
    },
    {
      "index": 81,
      "hotkey": "CTRL-]",
      "name": "",
      "macro": ""
    },
    {
      "index": 82,
      "hotkey": "CTRL-=",
      "name": "",
      "macro": ""
    },
    {
      "index": 83,
      "hotkey": "ALT-,",
      "name": "",
      "macro": ""
    },
    {
      "index": 84,
      "hotkey": "ALT-.",
      "name": "",
      "macro": ""
    },
    {
      "index": 85,
      "hotkey": "ALT-/",
      "name": "",
      "macro": ""
    },
    {
      "index": 86,
      "hotkey": "ALT-;",
      "name": "",
      "macro": ""
    },
    {
      "index": 87,
      "hotkey": "ALT-'",
      "name": "",
      "macro": ""
    },
    {
      "index": 88,
      "hotkey": "ALT-[",
      "name": "",
      "macro": ""
    },
    {
      "index": 89,
      "hotkey": "ALT-]",
      "name": "",
      "macro": ""
    },
    {
      "index": 90,
      "hotkey": "ALT-=",
      "name": "",
      "macro": ""
    },
    {
      "index": 91,
      "hotkey": "ALT-SHIFT-F1",
      "name": "",
      "macro": ""
    },
    {
      "index": 92,
      "hotkey": "ALT-SHIFT-F2",
      "name": "",
      "macro": ""
    },
    {
      "index": 93,
      "hotkey": "ALT-SHIFT-F3",
      "name": "",
      "macro": ""
    },
    {
      "index": 94,
      "hotkey": "ALT-SHIFT-F4",
      "name": "",
      "macro": ""
    },
    {
      "index": 95,
      "hotkey": "ALT-SHIFT-F5",
      "name": "",
      "macro": ""
    },
    {
      "index": 96,
      "hotkey": "ALT-SHIFT-F6",
      "name": "",
      "macro": ""
    },
    {
      "index": 97,
      "hotkey": "ALT-SHIFT-F7",
      "name": "",
      "macro": ""
    },
    {
      "index": 98,
      "hotkey": "ALT-SHIFT-F8",
      "name": "",
      "macro": ""
    },
    {
      "index": 99,
      "hotkey": "ALT-SHIFT-F9",
      "name": "",
      "macro": ""
    },
    {
      "index": 100,
      "hotkey": "ALT-SHIFT-F10",
      "name": "",
      "macro": ""
    },
    {
      "index": 101,
      "hotkey": "ALT-SHIFT-F11",
      "name": "",
      "macro": ""
    },
    {
      "index": 102,
      "hotkey": "ALT-SHIFT-F12",
      "name": "",
      "macro": ""
    },
    {
      "index": 103,
      "hotkey": "CTRL-SHIFT-F1",
      "name": "",
      "macro": ""
    },
    {
      "index": 104,
      "hotkey": "CTRL-SHIFT-F2",
      "name": "",
      "macro": ""
    },
    {
      "index": 105,
      "hotkey": "CTRL-SHIFT-F3",
      "name": "",
      "macro": ""
    },
    {
      "index": 106,
      "hotkey": "SHIFT-F1",
      "name": "",
      "macro": ""
    },
    {
      "index": 107,
      "hotkey": "SHIFT-F2",
      "name": "",
      "macro": ""
    },
    {
      "index": 108,
      "hotkey": "SHIFT-F3",
      "name": "",
      "macro": ""
    },
    {
      "index": 109,
      "hotkey": "SHIFT-F4",
      "name": "",
      "macro": ""
    },
    {
      "index": 110,
      "hotkey": "SHIFT-F5",
      "name": "",
      "macro": ""
    },
    {
      "index": 111,
      "hotkey": "SHIFT-F6",
      "name": "",
      "macro": ""
    },
    {
      "index": 112,
      "hotkey": "SHIFT-F7",
      "name": "",
      "macro": ""
    },
    {
      "index": 113,
      "hotkey": "SHIFT-F8",
      "name": "",
      "macro": ""
    },
    {
      "index": 114,
      "hotkey": "SHIFT-F9",
      "name": "",
      "macro": ""
    },
    {
      "index": 115,
      "hotkey": "SHIFT-F10",
      "name": "",
      "macro": ""
    },
    {
      "index": 116,
      "hotkey": "SHIFT-F11",
      "name": "",
      "macro": ""
    },
    {
      "index": 117,
      "hotkey": "SHIFT-F12",
      "name": "",
      "macro": ""
    },
    {
      "index": 118,
      "hotkey": "CTRL-F1",
      "name": "",
      "macro": ""
    },
    {
      "index": 119,
      "hotkey": "CTRL-F2",
      "name": "",
      "macro": ""
    },
    {
      "index": 120,
      "hotkey": "CTRL-F3",
      "name": "",
      "macro": ""
    },
    {
      "index": 121,
      "hotkey": "CTRL-F4",
      "name": "",
      "macro": ""
    },
    {
      "index": 122,
      "hotkey": "CTRL-F5",
      "name": "",
      "macro": ""
    },
    {
      "index": 123,
      "hotkey": "CTRL-F6",
      "name": "",
      "macro": ""
    },
    {
      "index": 124,
      "hotkey": "CTRL-F7",
      "name": "",
      "macro": ""
    },
    {
      "index": 125,
      "hotkey": "CTRL-F8",
      "name": "",
      "macro": ""
    },
    {
      "index": 126,
      "hotkey": "CTRL-F9",
      "name": "",
      "macro": ""
    },
    {
      "index": 127,
      "hotkey": "CTRL-F10",
      "name": "",
      "macro": ""
    },
    {
      "index": 128,
      "hotkey": "CTRL-F11",
      "name": "",
      "macro": ""
    },
    {
      "index": 129,
      "hotkey": "CTRL-F12",
      "name": "",
      "macro": ""
    },
    {
      "index": 130,
      "hotkey": "ALT-F1",
      "name": "",
      "macro": ""
    },
    {
      "index": 131,
      "hotkey": "ALT-F2",
      "name": "",
      "macro": ""
    },
    {
      "index": 132,
      "hotkey": "ALT-F3",
      "name": "",
      "macro": ""
    },
    {
      "index": 133,
      "hotkey": "ALT-F4",
      "name": "",
      "macro": ""
    },
    {
      "index": 134,
      "hotkey": "ALT-F5",
      "name": "",
      "macro": ""
    },
    {
      "index": 135,
      "hotkey": "ALT-F6",
      "name": "",
      "macro": ""
    },
    {
      "index": 136,
      "hotkey": "ALT-F7",
      "name": "",
      "macro": ""
    },
    {
      "index": 137,
      "hotkey": "ALT-F8",
      "name": "",
      "macro": ""
    },
    {
      "index": 138,
      "hotkey": "ALT-F9",
      "name": "",
      "macro": ""
    },
    {
      "index": 139,
      "hotkey": "ALT-F10",
      "name": "",
      "macro": ""
    },
    {
      "index": 140,
      "hotkey": "ALT-F11",
      "name": "",
      "macro": ""
    },
    {
      "index": 141,
      "hotkey": "ALT-F12",
      "name": "",
      "macro": ""
    },
    {
      "index": 142,
      "hotkey": "CTRL-SHIFT-F4",
      "name": "",
      "macro": ""
    },
    {
      "index": 143,
      "hotkey": "CTRL-SHIFT-F5",
      "name": "",
      "macro": ""
    },
    {
      "index": 144,
      "hotkey": "CTRL-SHIFT-F6",
      "name": "",
      "macro": ""
    },
    {
      "index": 145,
      "hotkey": "CTRL-SHIFT-F7",
      "name": "",
      "macro": ""
    },
    {
      "index": 146,
      "hotkey": "CTRL-SHIFT-F8",
      "name": "",
      "macro": ""
    },
    {
      "index": 147,
      "hotkey": "CTRL-SHIFT-F9",
      "name": "",
      "macro": ""
    },
    {
      "index": 148,
      "hotkey": "CTRL-SHIFT-F10",
      "name": "",
      "macro": ""
    },
    {
      "index": 149,
      "hotkey": "CTRL-SHIFT-F11",
      "name": "",
      "macro": ""
    },
    {
      "index": 150,
      "hotkey": "CTRL-SHIFT-F12",
      "name": "",
      "macro": ""
    }
  ],
  "props": [
    {
      "index": 1,
      "name": "生命百分比",
      "mode": "custom",
      "params": "player",
      "libRef": "",
      "code": "-- 受保护值下也能读的百分比（FromGUID 直给 0~1 小数，别改成 UnitHealth/UnitHealthMax 版）\nlocal guid = UnitGUID(arg1)\nif not guid then return 0 end\nreturn UnitPercentHealthFromGUID(guid)"
    },
    {
      "index": 2,
      "name": "战斗中",
      "mode": "custom",
      "params": "",
      "libRef": "",
      "code": "-- 战斗中按 1，非战斗 0\nreturn InCombatLockdown()"
    },
    {
      "index": 3,
      "name": "",
      "mode": "off",
      "params": "",
      "libRef": "",
      "code": ""
    },
    {
      "index": 4,
      "name": "",
      "mode": "off",
      "params": "",
      "libRef": "",
      "code": ""
    },
    {
      "index": 5,
      "name": "",
      "mode": "off",
      "params": "",
      "libRef": "",
      "code": ""
    },
    {
      "index": 6,
      "name": "",
      "mode": "off",
      "params": "",
      "libRef": "",
      "code": ""
    },
    {
      "index": 7,
      "name": "",
      "mode": "off",
      "params": "",
      "libRef": "",
      "code": ""
    },
    {
      "index": 8,
      "name": "",
      "mode": "off",
      "params": "",
      "libRef": "",
      "code": ""
    },
    {
      "index": 9,
      "name": "",
      "mode": "off",
      "params": "",
      "libRef": "",
      "code": ""
    },
    {
      "index": 10,
      "name": "",
      "mode": "off",
      "params": "",
      "libRef": "",
      "code": ""
    },
    {
      "index": 11,
      "name": "",
      "mode": "off",
      "params": "",
      "libRef": "",
      "code": ""
    },
    {
      "index": 12,
      "name": "",
      "mode": "off",
      "params": "",
      "libRef": "",
      "code": ""
    },
    {
      "index": 13,
      "name": "",
      "mode": "off",
      "params": "",
      "libRef": "",
      "code": ""
    },
    {
      "index": 14,
      "name": "",
      "mode": "off",
      "params": "",
      "libRef": "",
      "code": ""
    },
    {
      "index": 15,
      "name": "",
      "mode": "off",
      "params": "",
      "libRef": "",
      "code": ""
    },
    {
      "index": 16,
      "name": "",
      "mode": "off",
      "params": "",
      "libRef": "",
      "code": ""
    },
    {
      "index": 17,
      "name": "",
      "mode": "off",
      "params": "",
      "libRef": "",
      "code": ""
    },
    {
      "index": 18,
      "name": "",
      "mode": "off",
      "params": "",
      "libRef": "",
      "code": ""
    },
    {
      "index": 19,
      "name": "",
      "mode": "off",
      "params": "",
      "libRef": "",
      "code": ""
    },
    {
      "index": 20,
      "name": "",
      "mode": "off",
      "params": "",
      "libRef": "",
      "code": ""
    },
    {
      "index": 21,
      "name": "",
      "mode": "off",
      "params": "",
      "libRef": "",
      "code": ""
    },
    {
      "index": 22,
      "name": "",
      "mode": "off",
      "params": "",
      "libRef": "",
      "code": ""
    },
    {
      "index": 23,
      "name": "",
      "mode": "off",
      "params": "",
      "libRef": "",
      "code": ""
    },
    {
      "index": 24,
      "name": "",
      "mode": "off",
      "params": "",
      "libRef": "",
      "code": ""
    },
    {
      "index": 25,
      "name": "",
      "mode": "off",
      "params": "",
      "libRef": "",
      "code": ""
    },
    {
      "index": 26,
      "name": "",
      "mode": "off",
      "params": "",
      "libRef": "",
      "code": ""
    },
    {
      "index": 27,
      "name": "",
      "mode": "off",
      "params": "",
      "libRef": "",
      "code": ""
    },
    {
      "index": 28,
      "name": "",
      "mode": "off",
      "params": "",
      "libRef": "",
      "code": ""
    },
    {
      "index": 29,
      "name": "",
      "mode": "off",
      "params": "",
      "libRef": "",
      "code": ""
    },
    {
      "index": 30,
      "name": "",
      "mode": "off",
      "params": "",
      "libRef": "",
      "code": ""
    },
    {
      "index": 31,
      "name": "",
      "mode": "off",
      "params": "",
      "libRef": "",
      "code": ""
    },
    {
      "index": 32,
      "name": "",
      "mode": "off",
      "params": "",
      "libRef": "",
      "code": ""
    },
    {
      "index": 33,
      "name": "",
      "mode": "off",
      "params": "",
      "libRef": "",
      "code": ""
    },
    {
      "index": 34,
      "name": "",
      "mode": "off",
      "params": "",
      "libRef": "",
      "code": ""
    },
    {
      "index": 35,
      "name": "",
      "mode": "off",
      "params": "",
      "libRef": "",
      "code": ""
    },
    {
      "index": 36,
      "name": "",
      "mode": "off",
      "params": "",
      "libRef": "",
      "code": ""
    },
    {
      "index": 37,
      "name": "",
      "mode": "off",
      "params": "",
      "libRef": "",
      "code": ""
    },
    {
      "index": 38,
      "name": "",
      "mode": "off",
      "params": "",
      "libRef": "",
      "code": ""
    },
    {
      "index": 39,
      "name": "",
      "mode": "off",
      "params": "",
      "libRef": "",
      "code": ""
    },
    {
      "index": 40,
      "name": "",
      "mode": "off",
      "params": "",
      "libRef": "",
      "code": ""
    },
    {
      "index": 41,
      "name": "",
      "mode": "off",
      "params": "",
      "libRef": "",
      "code": ""
    },
    {
      "index": 42,
      "name": "",
      "mode": "off",
      "params": "",
      "libRef": "",
      "code": ""
    },
    {
      "index": 43,
      "name": "",
      "mode": "off",
      "params": "",
      "libRef": "",
      "code": ""
    },
    {
      "index": 44,
      "name": "",
      "mode": "off",
      "params": "",
      "libRef": "",
      "code": ""
    },
    {
      "index": 45,
      "name": "",
      "mode": "off",
      "params": "",
      "libRef": "",
      "code": ""
    },
    {
      "index": 46,
      "name": "",
      "mode": "off",
      "params": "",
      "libRef": "",
      "code": ""
    },
    {
      "index": 47,
      "name": "",
      "mode": "off",
      "params": "",
      "libRef": "",
      "code": ""
    },
    {
      "index": 48,
      "name": "",
      "mode": "off",
      "params": "",
      "libRef": "",
      "code": ""
    },
    {
      "index": 49,
      "name": "",
      "mode": "off",
      "params": "",
      "libRef": "",
      "code": ""
    },
    {
      "index": 50,
      "name": "",
      "mode": "off",
      "params": "",
      "libRef": "",
      "code": ""
    },
    {
      "index": 51,
      "name": "",
      "mode": "off",
      "params": "",
      "libRef": "",
      "code": ""
    },
    {
      "index": 52,
      "name": "",
      "mode": "off",
      "params": "",
      "libRef": "",
      "code": ""
    },
    {
      "index": 53,
      "name": "",
      "mode": "off",
      "params": "",
      "libRef": "",
      "code": ""
    },
    {
      "index": 54,
      "name": "",
      "mode": "off",
      "params": "",
      "libRef": "",
      "code": ""
    },
    {
      "index": 55,
      "name": "",
      "mode": "off",
      "params": "",
      "libRef": "",
      "code": ""
    },
    {
      "index": 56,
      "name": "",
      "mode": "off",
      "params": "",
      "libRef": "",
      "code": ""
    },
    {
      "index": 57,
      "name": "",
      "mode": "off",
      "params": "",
      "libRef": "",
      "code": ""
    },
    {
      "index": 58,
      "name": "",
      "mode": "off",
      "params": "",
      "libRef": "",
      "code": ""
    },
    {
      "index": 59,
      "name": "",
      "mode": "off",
      "params": "",
      "libRef": "",
      "code": ""
    },
    {
      "index": 60,
      "name": "",
      "mode": "off",
      "params": "",
      "libRef": "",
      "code": ""
    },
    {
      "index": 61,
      "name": "",
      "mode": "off",
      "params": "",
      "libRef": "",
      "code": ""
    },
    {
      "index": 62,
      "name": "",
      "mode": "off",
      "params": "",
      "libRef": "",
      "code": ""
    },
    {
      "index": 63,
      "name": "",
      "mode": "off",
      "params": "",
      "libRef": "",
      "code": ""
    },
    {
      "index": 64,
      "name": "",
      "mode": "off",
      "params": "",
      "libRef": "",
      "code": ""
    },
    {
      "index": 65,
      "name": "",
      "mode": "off",
      "params": "",
      "libRef": "",
      "code": ""
    },
    {
      "index": 66,
      "name": "",
      "mode": "off",
      "params": "",
      "libRef": "",
      "code": ""
    },
    {
      "index": 67,
      "name": "",
      "mode": "off",
      "params": "",
      "libRef": "",
      "code": ""
    },
    {
      "index": 68,
      "name": "",
      "mode": "off",
      "params": "",
      "libRef": "",
      "code": ""
    },
    {
      "index": 69,
      "name": "",
      "mode": "off",
      "params": "",
      "libRef": "",
      "code": ""
    },
    {
      "index": 70,
      "name": "",
      "mode": "off",
      "params": "",
      "libRef": "",
      "code": ""
    },
    {
      "index": 71,
      "name": "",
      "mode": "off",
      "params": "",
      "libRef": "",
      "code": ""
    },
    {
      "index": 72,
      "name": "",
      "mode": "off",
      "params": "",
      "libRef": "",
      "code": ""
    },
    {
      "index": 73,
      "name": "",
      "mode": "off",
      "params": "",
      "libRef": "",
      "code": ""
    },
    {
      "index": 74,
      "name": "",
      "mode": "off",
      "params": "",
      "libRef": "",
      "code": ""
    },
    {
      "index": 75,
      "name": "",
      "mode": "off",
      "params": "",
      "libRef": "",
      "code": ""
    },
    {
      "index": 76,
      "name": "",
      "mode": "off",
      "params": "",
      "libRef": "",
      "code": ""
    },
    {
      "index": 77,
      "name": "",
      "mode": "off",
      "params": "",
      "libRef": "",
      "code": ""
    },
    {
      "index": 78,
      "name": "",
      "mode": "off",
      "params": "",
      "libRef": "",
      "code": ""
    },
    {
      "index": 79,
      "name": "",
      "mode": "off",
      "params": "",
      "libRef": "",
      "code": ""
    },
    {
      "index": 80,
      "name": "",
      "mode": "off",
      "params": "",
      "libRef": "",
      "code": ""
    },
    {
      "index": 81,
      "name": "",
      "mode": "off",
      "params": "",
      "libRef": "",
      "code": ""
    },
    {
      "index": 82,
      "name": "",
      "mode": "off",
      "params": "",
      "libRef": "",
      "code": ""
    },
    {
      "index": 83,
      "name": "",
      "mode": "off",
      "params": "",
      "libRef": "",
      "code": ""
    },
    {
      "index": 84,
      "name": "",
      "mode": "off",
      "params": "",
      "libRef": "",
      "code": ""
    },
    {
      "index": 85,
      "name": "",
      "mode": "off",
      "params": "",
      "libRef": "",
      "code": ""
    },
    {
      "index": 86,
      "name": "",
      "mode": "off",
      "params": "",
      "libRef": "",
      "code": ""
    },
    {
      "index": 87,
      "name": "",
      "mode": "off",
      "params": "",
      "libRef": "",
      "code": ""
    },
    {
      "index": 88,
      "name": "",
      "mode": "off",
      "params": "",
      "libRef": "",
      "code": ""
    },
    {
      "index": 89,
      "name": "",
      "mode": "off",
      "params": "",
      "libRef": "",
      "code": ""
    },
    {
      "index": 90,
      "name": "",
      "mode": "off",
      "params": "",
      "libRef": "",
      "code": ""
    }
  ],
  "luaScripts": [
    {
      "index": 1,
      "id": 0,
      "name": "",
      "code": ""
    },
    {
      "index": 2,
      "id": 0,
      "name": "",
      "code": ""
    },
    {
      "index": 3,
      "id": 0,
      "name": "",
      "code": ""
    },
    {
      "index": 4,
      "id": 0,
      "name": "",
      "code": ""
    },
    {
      "index": 5,
      "id": 0,
      "name": "",
      "code": ""
    },
    {
      "index": 6,
      "id": 0,
      "name": "",
      "code": ""
    },
    {
      "index": 7,
      "id": 0,
      "name": "",
      "code": ""
    },
    {
      "index": 8,
      "id": 0,
      "name": "",
      "code": ""
    },
    {
      "index": 9,
      "id": 0,
      "name": "",
      "code": ""
    },
    {
      "index": 10,
      "id": 0,
      "name": "",
      "code": ""
    },
    {
      "index": 11,
      "id": 0,
      "name": "",
      "code": ""
    },
    {
      "index": 12,
      "id": 0,
      "name": "",
      "code": ""
    },
    {
      "index": 13,
      "id": 0,
      "name": "",
      "code": ""
    },
    {
      "index": 14,
      "id": 0,
      "name": "",
      "code": ""
    },
    {
      "index": 15,
      "id": 0,
      "name": "",
      "code": ""
    },
    {
      "index": 16,
      "id": 0,
      "name": "",
      "code": ""
    },
    {
      "index": 17,
      "id": 0,
      "name": "",
      "code": ""
    },
    {
      "index": 18,
      "id": 0,
      "name": "",
      "code": ""
    },
    {
      "index": 19,
      "id": 0,
      "name": "",
      "code": ""
    },
    {
      "index": 20,
      "id": 0,
      "name": "",
      "code": ""
    },
    {
      "index": 21,
      "id": 0,
      "name": "",
      "code": ""
    },
    {
      "index": 22,
      "id": 0,
      "name": "",
      "code": ""
    },
    {
      "index": 23,
      "id": 0,
      "name": "",
      "code": ""
    },
    {
      "index": 24,
      "id": 0,
      "name": "",
      "code": ""
    },
    {
      "index": 25,
      "id": 0,
      "name": "",
      "code": ""
    },
    {
      "index": 26,
      "id": 0,
      "name": "",
      "code": ""
    },
    {
      "index": 27,
      "id": 0,
      "name": "",
      "code": ""
    },
    {
      "index": 28,
      "id": 0,
      "name": "",
      "code": ""
    },
    {
      "index": 29,
      "id": 0,
      "name": "",
      "code": ""
    },
    {
      "index": 30,
      "id": 0,
      "name": "",
      "code": ""
    },
    {
      "index": 31,
      "id": 0,
      "name": "",
      "code": ""
    },
    {
      "index": 32,
      "id": 0,
      "name": "",
      "code": ""
    },
    {
      "index": 33,
      "id": 0,
      "name": "",
      "code": ""
    },
    {
      "index": 34,
      "id": 0,
      "name": "",
      "code": ""
    },
    {
      "index": 35,
      "id": 0,
      "name": "",
      "code": ""
    },
    {
      "index": 36,
      "id": 0,
      "name": "",
      "code": ""
    },
    {
      "index": 37,
      "id": 0,
      "name": "",
      "code": ""
    },
    {
      "index": 38,
      "id": 0,
      "name": "",
      "code": ""
    },
    {
      "index": 39,
      "id": 0,
      "name": "",
      "code": ""
    },
    {
      "index": 40,
      "id": 0,
      "name": "",
      "code": ""
    },
    {
      "index": 41,
      "id": 0,
      "name": "",
      "code": ""
    },
    {
      "index": 42,
      "id": 0,
      "name": "",
      "code": ""
    },
    {
      "index": 43,
      "id": 0,
      "name": "",
      "code": ""
    },
    {
      "index": 44,
      "id": 0,
      "name": "",
      "code": ""
    },
    {
      "index": 45,
      "id": 0,
      "name": "",
      "code": ""
    },
    {
      "index": 46,
      "id": 0,
      "name": "",
      "code": ""
    },
    {
      "index": 47,
      "id": 0,
      "name": "",
      "code": ""
    },
    {
      "index": 48,
      "id": 0,
      "name": "",
      "code": ""
    },
    {
      "index": 49,
      "id": 0,
      "name": "",
      "code": ""
    },
    {
      "index": 50,
      "id": 0,
      "name": "",
      "code": ""
    }
  ],
  "propLibrary": []
}
