[
  {
    "path": ".editorconfig",
    "content": "# EditorConfig helps developers define and maintain consistent\n# coding styles between different editors and IDEs\n# editorconfig.org\n\nroot = true\n\n\n[*]\n\n# Change these settings to your own preference\nindent_style = space\nindent_size = 2\n\n# We recommend you to keep these unchanged\nend_of_line = lf\ncharset = utf-8\ntrim_trailing_whitespace = true\ninsert_final_newline = true\n\n[*.md]\ntrim_trailing_whitespace = false\n"
  },
  {
    "path": ".eslintignore",
    "content": "dist\nnode_modules\npublic\ntests\n"
  },
  {
    "path": ".github/FUNDING.yml",
    "content": "github: sv2\n"
  },
  {
    "path": ".github/workflows/main.yml",
    "content": "name: CI\n\n# Controls when the action will run. Triggers the workflow on push or pull request\n# events but only for the master branch\non:\n  push:\n    branches: [ master ]\n\n# A workflow run is made up of one or more jobs that can run sequentially or in parallel\njobs:\n  build_and_publish:\n    # The type of runner that the job will run on\n    runs-on: ubuntu-latest\n\n    # Steps represent a sequence of tasks that will be executed as part of the job\n    steps:\n    # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it\n    - uses: actions/checkout@v2\n\n    - name: Get yarn cache directory path\n      id: yarn-cache-dir-path\n      run: echo \"::set-output name=dir::$(yarn cache dir)\"\n\n    - uses: actions/cache@v1\n      id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`)\n      with:\n        path: ${{ steps.yarn-cache-dir-path.outputs.dir }}\n        key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}\n        restore-keys: |\n          ${{ runner.os }}-yarn-\n\n    # Runs a set of commands using the runners shell\n    - name: Install NPM packages\n      run: yarn install\n\n    - name: Build\n      run: yarn run build\n\n    - name: Deploy\n      uses: JamesIves/github-pages-deploy-action@releases/v3\n      with:\n        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n        BRANCH: gh-pages\n        FOLDER: dist\n"
  },
  {
    "path": ".gitignore",
    "content": ".DS_Store\nnode_modules\n/dist\n/demo\n\n/tests/e2e/videos/\n/tests/e2e/screenshots/\n\n# local env files\n.env.local\n.env.*.local\n\n# Log files\nnpm-debug.log*\nyarn-debug.log*\nyarn-error.log*\n\n# Editor directories and files\n.idea\n.vscode\n*.suo\n*.ntvs*\n*.njsproj\n*.sln\n*.sw?\n"
  },
  {
    "path": ".prettierrc",
    "content": "{\n  \"singleQuote\": true,\n  \"printWidth\": 160\n}\n"
  },
  {
    "path": "CONTRIBUTING.md",
    "content": "# Contributing \n\nWant to contribute to **dashblocks-template**? Awesome!\n\n\nThere are many ways you can contribute:\n\n* by reviewing \n* by reporting bugs\n* by suggesting improvements and new features\n* by writing or editing documentation\n* by writing code ( no patch is too small  )\n* by closing issues\n\n## Proposing pull requests\n\nPull requests are very welcome. Note that if you are going to propose drastic changes, be sure to open an issue for discussion first, to make sure that your PR will be accepted before you spend effort coding it.\n\n\nInspired by https://github.com/middleman/middleman-heroku/blob/master/CONTRIBUTING.md\n"
  },
  {
    "path": "LICENSE",
    "content": "The MIT License (MIT)\n\nCopyright (c) 2019-present slana.tech\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "README.md",
    "content": "<p align=\"center\">\n<img src=\"https://github.com/slanatech/dashblocks-template/blob/master/screenshots/dblogo.png?raw=true\" height=\"200\" width=\"200\" alt=\"https://dashblocks.io\"/>\n</p>\n\n# Dashblocks Vue Material Admin Template | [DEMO](https://slanatech.github.io/dashblocks-template)   \n\n![](https://img.shields.io/badge/vue-2.x-brightgreen.svg)\n<img src=\"https://img.shields.io/npm/v/quasar.svg?label=quasar\">\n<img src=\"https://img.shields.io/npm/v/dashblocks.svg?label=dashblocks\"> \n![CI](https://github.com/slanatech/dashblocks-template/workflows/CI/badge.svg)\n\n### Enable Analytics in your Vue App with [Dashblocks](https://github.com/slanatech/dashblocks)\n\n[Live Demo](https://slanatech.github.io/dashblocks-template)\n\n\n![dashboard](screenshots/dashblocks.png?raw=true)\n\n\nDashblocks Vue Material Admin Template is build based on [Quasar Framework](https://quasar.dev/), [Vuex](https://vuex.vuejs.org/installation.html),  [Vuejs](https://vuejs.org/) and [Dashblocks](https://github.com/slanatech/dashblocks).\n\nWe focus on providing beautiful interactive Dashboards out of the box, and helping to enable In-App Analytics in your Apps.  \n\n[Dashblocks](https://github.com/slanatech/dashblocks) enables simple and streamlined way to quickly add awesome Dashboards in your app: \n \n* Use declarative approach to define a dashboard. The whole dashboard is just one JS object (or JSON) \n* Provide reasonable out of the box defaults for all chart types, such as colors\n* Support dark / light modes out of the box    \n* Enable interactivity by providing event handling on dashboard level\n* Streamline dynamic updates of dashboard data, for example based on user interaction with dashboard\n* Even dynamically generate Dashboard itself based on the data - thanks to declarative approach   \n  \n\n## Quick start\n\nClone `dashblocks-template` repo: \n\n```bash\n$ git clone https://github.com/slanatech/dashblocks-template.git\n```\n\nInstall dependencies:\n\n```bash\n$ cd dashblocks-template\n$ yarn install\n```\n\nRun `serve`:\n\n```bash\n$ yarn run serve\n```\n\n`dashblocks-template` is set up using [vue-cli](https://github.com/vuejs/vue-cli), you will see standard `vue-cli` scripts in `package.json`: `serve`, `build` ...\n[Quasar Framework](https://quasar.dev/) is configured using Vue CLI Quasar Plugin. \n\n\n## Enhancements and Bug Reports\n\nIf you find a bug, or have an enhancement in mind please post [issues](https://github.com/slanatech/dashblocks-template/issues)\n\ntest1 test2 test3\n\n## License\n \n[MIT](LICENSE)\n   \n"
  },
  {
    "path": "babel.config.js",
    "content": "module.exports = {\n  presets: ['@vue/cli-plugin-babel/preset'],\n  plugins: [\n    [\n      'transform-imports',\n      {\n        quasar: {\n          transform: 'quasar/dist/babel-transforms/imports.js',\n          preventFullImport: true\n        }\n      }\n    ]\n  ]\n};\n"
  },
  {
    "path": "cypress.json",
    "content": "{\n  \"pluginsFile\": \"tests/e2e/plugins/index.js\"\n}\n"
  },
  {
    "path": "package.json",
    "content": "{\n  \"name\": \"dashblocks-template\",\n  \"version\": \"0.5.4\",\n  \"private\": true,\n  \"author\": \"https://github.com/sv2\",\n  \"scripts\": {\n    \"serve\": \"vue-cli-service serve\",\n    \"build\": \"vue-cli-service build\",\n    \"test:unit\": \"vue-cli-service test:unit\",\n    \"test:e2e\": \"vue-cli-service test:e2e\",\n    \"lint\": \"vue-cli-service lint\",\n    \"release\": \"release-it\",\n    \"release-ci\": \"release-it --ci\"\n  },\n  \"dependencies\": {\n    \"@quasar/extras\": \"^1.8.2\",\n    \"core-js\": \"^3.6.5\",\n    \"quasar\": \"^1.12.3\",\n    \"vue\": \"^2.6.11\",\n    \"vue-router\": \"^3.3.2\",\n    \"vuex\": \"^3.4.0\"\n  },\n  \"devDependencies\": {\n    \"@vue/cli-plugin-babel\": \"^4.3.1\",\n    \"@vue/cli-plugin-e2e-cypress\": \"^4.3.1\",\n    \"@vue/cli-plugin-eslint\": \"^4.3.1\",\n    \"@vue/cli-plugin-unit-jest\": \"^4.3.1\",\n    \"@vue/cli-service\": \"^4.3.1\",\n    \"@vue/eslint-config-prettier\": \"^6.0.0\",\n    \"@vue/test-utils\": \"^1.0.0-beta.33\",\n    \"babel-core\": \"7.0.0-bridge.0\",\n    \"babel-eslint\": \"^10.1.0\",\n    \"babel-jest\": \"^24.9.0\",\n    \"babel-plugin-transform-imports\": \"1.5.0\",\n    \"dashblocks\": \"^0.5.35\",\n    \"eslint\": \"^6.8.0\",\n    \"eslint-plugin-prettier\": \"^3.1.3\",\n    \"eslint-plugin-vue\": \"^6.2.2\",\n    \"lint-staged\": \"^8.1.5\",\n    \"node-sass\": \"^4.13.1\",\n    \"release-it\": \"^13.5.4\",\n    \"sass-loader\": \"^8.0.2\",\n    \"vue-cli-plugin-quasar\": \"^2.0.0\",\n    \"vue-template-compiler\": \"^2.6.11\",\n    \"webpack-bundle-analyzer\": \"^3.6.0\",\n    \"ramda\": \"^0.27.0\",\n    \"vue-good-table\": \"^2.18.0\"\n  },\n  \"eslintConfig\": {\n    \"root\": true,\n    \"env\": {\n      \"node\": true\n    },\n    \"extends\": [\n      \"plugin:vue/essential\",\n      \"@vue/prettier\"\n    ],\n    \"rules\": {},\n    \"parserOptions\": {\n      \"parser\": \"babel-eslint\"\n    }\n  },\n  \"postcss\": {\n    \"plugins\": {\n      \"autoprefixer\": {}\n    }\n  },\n  \"browserslist\": [\n    \"> 1%\",\n    \"last 2 versions\"\n  ],\n  \"jest\": {\n    \"moduleFileExtensions\": [\n      \"js\",\n      \"jsx\",\n      \"json\",\n      \"vue\"\n    ],\n    \"transform\": {\n      \"^.+\\\\.vue$\": \"vue-jest\",\n      \".+\\\\.(css|styl|less|sass|scss|svg|png|jpg|ttf|woff|woff2)$\": \"jest-transform-stub\",\n      \"^.+\\\\.jsx?$\": \"babel-jest\"\n    },\n    \"transformIgnorePatterns\": [\n      \"/node_modules/\"\n    ],\n    \"moduleNameMapper\": {\n      \"^@/(.*)$\": \"<rootDir>/src/$1\"\n    },\n    \"snapshotSerializers\": [\n      \"jest-serializer-vue\"\n    ],\n    \"testMatch\": [\n      \"**/tests/unit/**/*.spec.(js|jsx|ts|tsx)|**/__tests__/*.(js|jsx|ts|tsx)\"\n    ],\n    \"testURL\": \"http://localhost/\",\n    \"watchPlugins\": [\n      \"jest-watch-typeahead/filename\",\n      \"jest-watch-typeahead/testname\"\n    ]\n  },\n  \"bugs\": {\n    \"url\": \"https://github.com/slanatech/dashblocks-template/issues\",\n    \"email\": \"sv2@slana.tech\"\n  },\n  \"gitHooks\": {\n    \"pre-commit\": \"lint-staged\"\n  },\n  \"homepage\": \"https://github.com/slanatech/dashblocks-template\",\n  \"license\": \"MIT\",\n  \"lint-staged\": {\n    \"*.{js,vue}\": [\n      \"vue-cli-service lint\",\n      \"git add\"\n    ]\n  },\n  \"release-it\": {\n    \"github\": {\n      \"release\": true\n    },\n    \"hooks\": {\n      \"after:release\": \"echo Successfully released ${name} v${version} to ${repo.repository}.\"\n    }\n  },\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"https://github.com/slanatech/dashblocks-template\"\n  }\n}\n"
  },
  {
    "path": "public/googleee01dc033d7bbca2.html",
    "content": "google-site-verification: googleee01dc033d7bbca2.html"
  },
  {
    "path": "public/index.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">\n    <meta name=\"viewport\" content=\"width=device-width,initial-scale=1.0\">\n    <link rel=\"icon\" href=\"<%= BASE_URL %>favicon.ico\">\n    <title>dashblocks-template</title>\n    <link rel=\"stylesheet\" href=\"https://use.fontawesome.com/releases/v5.3.1/css/all.css\" integrity=\"sha384-mzrmE5qonljUremFsqc01SB46JvROS7bZs3IO2EmfFsd15uHvIt+Y8vEf7N7fWAU\" crossorigin=\"anonymous\">\n    <link href='https://fonts.googleapis.com/css?family=Roboto:100,300,400,500,700,900|Material+Icons' rel=\"stylesheet\">\n  </head>\n  <body>\n    <noscript>\n      <strong>We're sorry but dashblocks-template doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>\n    </noscript>\n    <div id=\"app\"></div>\n    <!-- built files will be auto injected -->\n  </body>\n</html>\n"
  },
  {
    "path": "scripts/demodeploy.sh",
    "content": "#!/bin/bash\n\n# abort on errors\nset -e\n\n# navigate into the build output directory\ncd demo\n\ngit init\ngit add -A\ngit commit -m 'deploy for github pages'\n\ngit push -f https://github.com/slanatech/dashblocks-template.git master:gh-pages\n\ncd -\n"
  },
  {
    "path": "src/App.vue",
    "content": "<template>\n  <div id=\"app\">\n    <router-view />\n  </div>\n</template>\n"
  },
  {
    "path": "src/components/menu/menudrawer.vue",
    "content": "<template>\n  <q-drawer\n    ref=\"drawer\"\n    show-if-above\n    :mini=\"miniState\"\n    v-model=\"shown\"\n    :side=\"side\"\n    bordered\n    @on-layout=\"handleLayout\"\n    :mini-to-overlay=\"miniToOverlay\"\n    @mouseover=\"handleMouseOver\"\n    @mouseout=\"handleMouseOut\"\n  >\n    <div class=\"fit ub-box\">\n      <!-- \"height: 100px;\" seem to address issue with flex: 1 1 auto scroll area on safari -->\n      <q-scroll-area class=\"ub-row ub-box-expand\" style=\"height: 100px;\">\n        <slot name=\"menu\"></slot>\n      </q-scroll-area>\n      <!-- Mini toggle is not needed if below breakpoint -->\n      <div v-if=\"hasMiniToggle\" class=\"ub-row ub-box-fixed\">\n        <q-btn color=\"down1\" :ripple=\"false\" class=\"full-width\" flat :icon=\"miniState ? 'chevron_right' : 'chevron_left'\" size=\"md\" @click=\"toggleMini\" />\n      </div>\n    </div>\n  </q-drawer>\n</template>\n<script>\nexport default {\n  name: 'MenuDrawer',\n  components: {},\n  props: {\n    value: {\n      type: Boolean,\n      default: true\n    },\n    mini: {\n      type: Boolean,\n      default: true\n    },\n    autoExpand: {\n      type: Boolean,\n      default: false\n    },\n    side: {\n      type: String,\n      default: 'left'\n    }\n  },\n  data: function() {\n    return {\n      miniState: this.mini,\n      shown: this.value,\n      drawerBelowBreakpoint: false\n    };\n  },\n  computed: {\n    miniToOverlay: function() {\n      return this.autoExpand;\n    },\n    hasMiniToggle: function() {\n      return !this.drawerBelowBreakpoint && !this.autoExpand;\n    }\n  },\n  watch: {\n    value: function(val) {\n      this.shown = val;\n    },\n    shown: function(val) {\n      this.$emit('input', val);\n    },\n    mini: function(val) {\n      if (!this.autoExpand) {\n        this.setMini(val);\n      }\n    },\n    miniState: function(val) {\n      this.$emit('update:mini', val);\n    }\n  },\n  methods: {\n    resize(delay) {\n      this.$nextTick(() => {\n        setTimeout(() => {\n          window.dispatchEvent(new Event('resize'));\n        }, delay);\n      });\n    },\n    handleLayout(state) {\n      console.log(`handleLayout: ${state}`);\n      this.drawerBelowBreakpoint = this.$refs.drawer.belowBreakpoint;\n      this.resize(100);\n    },\n    toggleMini() {\n      this.miniState = !this.miniState;\n      this.resize(200);\n    },\n    setMini(mini) {\n      this.miniState = mini;\n      this.resize(200);\n    },\n    handleMouseOver() {\n      if (this.autoExpand) {\n        this.miniState = false;\n      }\n    },\n    handleMouseOut() {\n      if (this.autoExpand) {\n        this.miniState = true;\n      }\n    }\n  }\n};\n</script>\n<style lang=\"scss\">\n/*\n  ::-webkit-scrollbar {\n    width: 12px;\n  }\n\n  ::-webkit-scrollbar-track {\n    -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3);\n    border-radius: 10px;\n  }\n\n  ::-webkit-scrollbar-thumb {\n    border-radius: 10px;\n    -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.5);\n  }\n */\n</style>\n"
  },
  {
    "path": "src/components/menu/menulist.vue",
    "content": "<template>\n  <q-list class=\"db-menu-list\">\n    <div v-if=\"mode === 'expand'\">\n      <menu-list-item\n        v-for=\"item in menuItems\"\n        v-bind:key=\"item.id\"\n        :item=\"item\"\n        :collapsed=\"collapsed\"\n        :active-class=\"activeClass\"\n        @expansionItemClick=\"onExpansionItemClick(item)\"\n        @itemExpanded=\"onItemExpanded(item)\"\n        @itemCollapsed=\"onItemCollapsed(item)\"\n      />\n    </div>\n    <div v-else>\n      <menu-list-item-ex\n        v-for=\"item in menuItems\"\n        v-bind:key=\"item.id\"\n        :item=\"item\"\n        :collapsed=\"collapsed\"\n        :active-class=\"activeClass\"\n        @expansionItemClick=\"onExpansionItemClick(item)\"\n        @itemExpanded=\"onItemExpanded(item)\"\n        @itemCollapsed=\"onItemCollapsed(item)\"\n      />\n    </div>\n  </q-list>\n</template>\n<script>\nimport MenuListItem from './menulistitem.vue';\nimport MenuListItemEx from './menulistitemex.vue';\nexport default {\n  name: 'MenuList',\n  components: { MenuListItem, MenuListItemEx },\n  props: {\n    menuItems: {\n      type: Array,\n      default: null\n    },\n    collapsed: {\n      type: Boolean,\n      default: false\n    },\n    activeClass: {\n      type: String,\n      default: ''\n    },\n    mode: {\n      type: String,\n      default: 'expand'\n    }\n  },\n  data: function() {\n    return {};\n  },\n  computed: {},\n  watch: {},\n  methods: {\n    onExpansionItemClick(item) {\n      this.$emit('expansionItemClick', item);\n    },\n    onItemExpanded(item) {\n      this.$emit('itemExpanded', item);\n    },\n    onItemCollapsed(item) {\n      this.$emit('itemCollapsed', item);\n    }\n  }\n};\n</script>\n<style lang=\"scss\">\n.db-menu-list {\n  a,\n  a:hover {\n    text-decoration: none;\n  }\n}\n</style>\n"
  },
  {
    "path": "src/components/menu/menulistitem.vue",
    "content": "<template>\n  <q-expansion-item\n    v-if=\"item.items\"\n    :icon=\"item.icon\"\n    :label=\"item.title\"\n    :caption=\"item.caption\"\n    expand-separator\n    :class=\"`menuitem-ei-${item.id} ` + itemClass\"\n    :active-class=\"itemActiveClass\"\n    @click=\"onClick\"\n    @show=\"onShow\"\n    @hide=\"onHide\"\n  >\n    <q-tooltip anchor=\"top right\" self=\"center middle\" :target=\"`.menuitem-ei-${item.id} i`\">{{ item.title }}</q-tooltip>\n    <menu-list-item v-for=\"childItem in item.items\" v-bind:key=\"childItem.id\" :item=\"childItem\" />\n  </q-expansion-item>\n  <q-item v-else clickable v-ripple v-bind:key=\"item.link\" :to=\"item.link\" exact :class=\"itemClass\" :active-class=\"itemActiveClass\">\n    <q-item-section avatar>\n      <!-- Workaround for badge, if desired to show when menu is collapsed\n      <div class=\"relative-position\" style=\"width:25px;margin-left:2px\">\n        <q-icon :name=\"item.icon\" size=\"24px\">\n        </q-icon>\n        <q-badge v-if=\"item.badge && !collapsed\" :label=\"item.badge\" floating/>\n      </div>-->\n      <q-icon v-if=\"item.icon\" :name=\"item.icon\"></q-icon>\n      <q-tooltip anchor=\"top right\" self=\"center middle\">\n        {{ item.title }}\n      </q-tooltip>\n    </q-item-section>\n    <q-item-section>\n      <q-item-label>{{ item.title }}</q-item-label>\n      <q-item-label v-if=\"item.caption\" caption>{{ item.caption }}</q-item-label>\n    </q-item-section>\n\n    <q-item-section v-if=\"hasSide\" side :top=\"isSideTop\">\n      <q-badge v-if=\"item.badge\" :color=\"item.badgeColor || 'primary'\" :label=\"item.badge\" />\n      <q-item-label v-if=\"item.sideCaption\" caption>{{ item.sideCaption }}</q-item-label>\n    </q-item-section>\n  </q-item>\n</template>\n<script>\nimport { mapActions, mapState } from 'vuex';\nexport default {\n  name: 'MenuListItem',\n  props: {\n    item: {\n      type: Object,\n      default: null\n    },\n    collapsed: {\n      type: Boolean,\n      default: true\n    },\n    activeClass: {\n      type: String,\n      default: ''\n    }\n  },\n  data: function() {\n    return {};\n  },\n  computed: {\n    itemClass: function() {\n      return this.item.class ? this.item.class : '';\n    },\n    itemActiveClass: function() {\n      return this.item.activeClass ? this.item.activeClass : this.activeClass;\n    },\n    hasSide: function() {\n      return 'badge' in this.item || 'sideCaption' in this.item;\n    },\n    isSideTop: function() {\n      return 'caption' in this.item || 'sideCaption' in this.item;\n    }\n  },\n  watch: {},\n  methods: {\n    onClick(evt) {\n      this.$emit('expansionItemClick', evt);\n    },\n    onShow(evt) {\n      this.$emit('itemExpanded', evt);\n    },\n    onHide(evt) {\n      this.$emit('itemCollapsed', evt);\n    }\n  }\n};\n</script>\n"
  },
  {
    "path": "src/components/menu/menulistitemex.vue",
    "content": "<template>\n  <div v-if=\"item.items\">\n    <q-item clickable v-ripple exact :class=\"itemClass\" :active-class=\"itemActiveClass\">\n      <q-item-section avatar>\n        <q-icon v-if=\"item.icon\" :name=\"item.icon\"></q-icon>\n        <q-tooltip anchor=\"top right\" self=\"center middle\">\n          {{ item.title }}\n        </q-tooltip>\n      </q-item-section>\n      <q-item-section @click=\"expanded = !expanded\">\n        <q-item-label>{{ item.title }}</q-item-label>\n        <q-item-label v-if=\"item.caption\" caption>{{ item.caption }}</q-item-label>\n      </q-item-section>\n      <q-item-section side :top=\"true\">\n        <q-btn size=\"sm\" round unelevated :icon=\"expanded ? 'mdi-chevron-up' : 'mdi-chevron-down'\" @click=\"expanded = !expanded\" />\n      </q-item-section>\n    </q-item>\n    <div v-if=\"expanded\">\n      <menu-list-item-ex v-for=\"childItem in item.items\" v-bind:key=\"childItem.id\" :item=\"childItem\" :icon-size=\"'xs'\" />\n    </div>\n  </div>\n  <div v-else>\n    <q-item clickable v-ripple v-bind:key=\"item.link\" :to=\"item.link\" exact :class=\"itemClass\" :active-class=\"itemActiveClass\">\n      <q-item-section avatar>\n        <!-- Workaround for badge, if desired to show when menu is collapsed\n        <div class=\"relative-position\" style=\"width:25px;margin-left:2px\">\n          <q-icon :name=\"item.icon\" size=\"24px\">\n          </q-icon>\n          <q-badge v-if=\"item.badge && !collapsed\" :label=\"item.badge\" floating/>\n        </div>-->\n        <q-icon v-if=\"item.icon\" :name=\"item.icon\"></q-icon>\n        <q-tooltip anchor=\"top right\" self=\"center middle\">\n          {{ item.title }}\n        </q-tooltip>\n      </q-item-section>\n      <q-item-section style=\"margin-left: 10px;\">\n        <q-item-label>{{ item.title }}</q-item-label>\n        <q-item-label v-if=\"item.caption\" caption>{{ item.caption }}</q-item-label>\n      </q-item-section>\n\n      <q-item-section v-if=\"hasSide\" side :top=\"isSideTop\">\n        <q-badge v-if=\"item.badge\" :color=\"item.badgeColor || 'primary'\" :label=\"item.badge\" />\n        <q-item-label v-if=\"item.sideCaption\" caption>{{ item.sideCaption }}</q-item-label>\n      </q-item-section>\n    </q-item>\n  </div>\n</template>\n<script>\nimport { mapActions, mapState } from 'vuex';\nexport default {\n  name: 'MenuListItemEx',\n  props: {\n    item: {\n      type: Object,\n      default: null\n    },\n    collapsed: {\n      type: Boolean,\n      default: true\n    },\n    activeClass: {\n      type: String,\n      default: ''\n    },\n    insetLevel: {\n      type: Number,\n      default: 0\n    },\n    iconSize: {\n      type: String,\n      default: 'sm'\n    }\n  },\n  data: function() {\n    return {\n      expanded: false\n    };\n  },\n  computed: {\n    itemClass: function() {\n      return this.item.class ? this.item.class : '';\n    },\n    itemActiveClass: function() {\n      return this.item.activeClass ? this.item.activeClass : this.activeClass;\n    },\n    hasSide: function() {\n      return 'badge' in this.item || 'sideCaption' in this.item;\n    },\n    isSideTop: function() {\n      return 'caption' in this.item || 'sideCaption' in this.item;\n    }\n  },\n  watch: {},\n  methods: {\n    onClick(evt) {\n      this.$emit('expansionItemClick', evt);\n    },\n    onShow(evt) {\n      this.$emit('itemExpanded', evt);\n    },\n    onHide(evt) {\n      this.$emit('itemCollapsed', evt);\n    }\n  }\n};\n</script>\n"
  },
  {
    "path": "src/components/settings/colorschemeselector.vue",
    "content": "<template>\n  <q-card style=\"width: 100%;\">\n    <q-card-section>\n      <q-input v-model=\"query\" debounce=\"400\" filled dense placeholder=\"Search Color Scheme\" clearable>\n        <template v-slot:prepend>\n          <q-icon name=\"search\" />\n        </template>\n      </q-input>\n    </q-card-section>\n\n    <q-card-section style=\"height: 300px;\">\n      <q-scroll-area class=\"fit\">\n        <q-list>\n          <q-item\n            v-for=\"scheme in filteredSchemes\"\n            v-bind:key=\"scheme.name\"\n            clickable\n            v-ripple\n            v-close-popup\n            active-class=\"bg-teal-1 text-grey-8\"\n            @click=\"onSelect(scheme.name)\"\n          >\n            <q-item-section avatar top>\n              <q-icon name=\"mdi-invert-colors\" />\n            </q-item-section>\n            <q-item-section>\n              <q-item-label>{{ scheme.name }}</q-item-label>\n              <div>\n                <q-chip square size=\"sm\">Light:</q-chip>\n                <q-chip square size=\"xs\" :style=\"`background-color: ${scheme.light[0]}`\"></q-chip>\n                <q-chip square size=\"xs\" :style=\"`background-color: ${scheme.light[1]}`\"></q-chip>\n                <q-chip square size=\"xs\" :style=\"`background-color: ${scheme.light[2]}`\"></q-chip>\n                <q-chip square size=\"xs\" :style=\"`background-color: ${scheme.light[3]}`\"></q-chip>\n                <q-chip square size=\"xs\" :style=\"`background-color: ${scheme.light[4]}`\"></q-chip>\n              </div>\n              <div>\n                <q-chip square size=\"sm\">Dark :</q-chip>\n                <q-chip square size=\"xs\" :style=\"`background-color: ${scheme.dark[0]}`\"></q-chip>\n                <q-chip square size=\"xs\" :style=\"`background-color: ${scheme.dark[1]}`\"></q-chip>\n                <q-chip square size=\"xs\" :style=\"`background-color: ${scheme.dark[2]}`\"></q-chip>\n                <q-chip square size=\"xs\" :style=\"`background-color: ${scheme.dark[3]}`\"></q-chip>\n                <q-chip square size=\"xs\" :style=\"`background-color: ${scheme.dark[4]}`\"></q-chip>\n              </div>\n              <!--<q-item-label caption lines=\"1\">{{ getScopeDescription(scope) }}</q-item-label>-->\n            </q-item-section>\n          </q-item>\n        </q-list>\n      </q-scroll-area>\n    </q-card-section>\n\n    <q-card-actions align=\"right\">\n      <q-btn dense flat label=\"Cancel\" color=\"primary\" v-close-popup />\n      <!--<q-btn dense label=\"OK\" color=\"primary\" @click=\"testClick\" />-->\n    </q-card-actions>\n  </q-card>\n</template>\n<script>\nimport { mapActions } from 'vuex';\nimport { dbColors } from 'dashblocks';\n\nexport default {\n  name: 'ColorSchemeSelector',\n  components: {},\n  props: {\n    value: {\n      type: String,\n      default: null\n    }\n  },\n  data() {\n    return {\n      query: '',\n      schemes: []\n    };\n  },\n  computed: {\n    filteredSchemes: function() {\n      return this.schemes.filter(s => this.isVisible(s.name));\n    },\n    dashboardColorScheme: {\n      get() {\n        return this.$store.state.layout.dashboardColorScheme;\n      },\n      set(value) {\n        this.setDashboardColorScheme({ dashboardColorScheme: value });\n      }\n    }\n  },\n  watch: {\n    query: function(value) {\n      //this.updateCellQuery({ id: this.cell.id, query: value });\n    }\n  },\n  mounted() {\n    this.initialize();\n  },\n  methods: {\n    ...mapActions({\n      setDashboardColorScheme: 'layout/setDashboardColorScheme'\n    }),\n    initialize() {\n      let dbc = dbColors;\n      for (let schemeName of Object.keys(dbc.colorSchemes)) {\n        let colorScheme = dbc.colorSchemes[schemeName];\n        this.schemes.push({\n          name: schemeName,\n          light: colorScheme.light.slice(0, 5),\n          dark: colorScheme.dark.slice(0, 5)\n        });\n        // TODO grab all\n      }\n    },\n    isVisible(schemeName) {\n      let qlc = this.query.toLowerCase();\n      return schemeName.toLowerCase().indexOf(qlc) > -1;\n    },\n    onSelect(colorScheme) {\n      this.$emit('input', colorScheme);\n    }\n  }\n};\n</script>\n"
  },
  {
    "path": "src/components/settings/settings.vue",
    "content": "<template>\n  <div class=\"q-pa-md\" style=\"max-width: 350px\">\n    <q-bar class=\"bg-none\">\n      Settings\n      <q-space />\n      <q-btn dense flat round icon=\"close\" @click=\"onClose\" />\n    </q-bar>\n\n    <q-list padding>\n      <!--<q-item tag=\"label\" v-ripple>\n        <q-item-section side top>\n          <q-checkbox v-model=\"check1\" />\n        </q-item-section>\n\n        <q-item-section>\n          <q-item-label>Notifications</q-item-label>\n          <q-item-label caption>\n            Notify me about updates to apps or games that I downloaded\n          </q-item-label>\n        </q-item-section>\n      </q-item>\n\n      <q-item tag=\"label\" v-ripple>\n        <q-item-section side top>\n          <q-checkbox v-model=\"check2\" />\n        </q-item-section>\n\n        <q-item-section>\n          <q-item-label>Sound</q-item-label>\n          <q-item-label caption>\n            Auto-update apps at anytime. Data charges may apply\n          </q-item-label>\n        </q-item-section>\n      </q-item>\n\n      <q-item tag=\"label\" v-ripple>\n        <q-item-section side top>\n          <q-checkbox v-model=\"check3\" />\n        </q-item-section>\n\n        <q-item-section>\n          <q-item-label>Auto-add widgets</q-item-label>\n          <q-item-label caption>\n            Automatically add home screen widgets\n          </q-item-label>\n        </q-item-section>\n      </q-item>\n\n      <q-separator spaced />\n      <q-item-label header>Notifications</q-item-label>\n      -->\n\n      <q-item tag=\"label\" v-ripple>\n        <q-item-section>\n          <q-item-label>Dark Mode</q-item-label>\n        </q-item-section>\n        <q-item-section side>\n          <q-toggle v-model=\"dark\" icon=\"brightness_medium\" />\n        </q-item-section>\n      </q-item>\n\n      <q-item tag=\"label\" v-ripple>\n        <q-item-section>\n          <q-item-label>Minimize Menu</q-item-label>\n          <q-item-label caption>Minimize menu sidebar</q-item-label>\n        </q-item-section>\n        <q-item-section side top>\n          <q-toggle v-model=\"menuMini\" icon=\"menu\" />\n        </q-item-section>\n      </q-item>\n\n      <q-item tag=\"label\" v-ripple>\n        <q-item-section>\n          <q-item-label>Auto-Expand Menu</q-item-label>\n          <q-item-label caption>Auto-expand menu when hovering</q-item-label>\n        </q-item-section>\n        <q-item-section side top>\n          <q-toggle v-model=\"menuAutoExpand\" icon=\"menu\" />\n        </q-item-section>\n      </q-item>\n\n      <q-separator spaced />\n\n      <!--<q-item tag=\"label\">\n        <q-item-section>\n          <q-select v-model=\"dashboardColorScheme\" :options=\"colorSchemaOptions\" label=\"Dashboard Color Schema\" />\n        </q-item-section>\n      </q-item>-->\n\n      <q-item-label header style=\"padding-bottom: 0px;\">Dashboard Color Scheme</q-item-label>\n\n      <q-item>\n        <q-item-section> </q-item-section>\n        <q-item-section side top>\n          <q-btn-dropdown\n            size=\"md\"\n            align=\"right\"\n            v-model=\"schemeSelectorShown\"\n            outlined\n            flat\n            :label=\"dashboardColorScheme\"\n            icon=\"mdi-invert-colors\"\n            menu-self=\"center left\"\n          >\n            <div style=\"width: 400px;\">\n              <color-scheme-selector v-model=\"dashboardColorScheme\"></color-scheme-selector>\n            </div>\n          </q-btn-dropdown>\n          <div>\n            <q-chip square size=\"sm\">Light:</q-chip>\n            <q-chip square size=\"xs\" :style=\"`background-color: ${lightColors[0]}`\"></q-chip>\n            <q-chip square size=\"xs\" :style=\"`background-color: ${lightColors[1]}`\"></q-chip>\n            <q-chip square size=\"xs\" :style=\"`background-color: ${lightColors[2]}`\"></q-chip>\n            <q-chip square size=\"xs\" :style=\"`background-color: ${lightColors[3]}`\"></q-chip>\n            <q-chip square size=\"xs\" :style=\"`background-color: ${lightColors[4]}`\"></q-chip>\n          </div>\n          <div>\n            <q-chip square size=\"sm\">Dark:</q-chip>\n            <q-chip square size=\"xs\" :style=\"`background-color: ${darkColors[0]}`\"></q-chip>\n            <q-chip square size=\"xs\" :style=\"`background-color: ${darkColors[1]}`\"></q-chip>\n            <q-chip square size=\"xs\" :style=\"`background-color: ${darkColors[2]}`\"></q-chip>\n            <q-chip square size=\"xs\" :style=\"`background-color: ${darkColors[3]}`\"></q-chip>\n            <q-chip square size=\"xs\" :style=\"`background-color: ${darkColors[4]}`\"></q-chip>\n          </div>\n        </q-item-section>\n      </q-item>\n\n      <q-separator spaced />\n      <q-item-label header>TODO Banner Colors, Backgounds</q-item-label>\n\n      <!--<q-separator spaced />\n      <q-item-label header>Other settings</q-item-label>\n\n      <q-item>\n        <q-item-section side>\n          <q-icon color=\"teal\" name=\"volume_down\" />\n        </q-item-section>\n        <q-item-section>\n          <q-slider v-model=\"volume\" :min=\"0\" :max=\"10\" label color=\"teal\" />\n        </q-item-section>\n        <q-item-section side>\n          <q-icon color=\"teal\" name=\"volume_up\" />\n        </q-item-section>\n      </q-item>\n\n      <q-item>\n        <q-item-section side>\n          <q-icon color=\"deep-orange\" name=\"brightness_medium\" />\n        </q-item-section>\n        <q-item-section>\n          <q-slider v-model=\"brightness\" :min=\"0\" :max=\"10\" label color=\"deep-orange\" />\n        </q-item-section>\n      </q-item>\n\n      <q-item>\n        <q-item-section side>\n          <q-icon color=\"primary\" name=\"mic\" />\n        </q-item-section>\n        <q-item-section>\n          <q-slider v-model=\"mic\" :min=\"0\" :max=\"50\" label />\n        </q-item-section>\n      </q-item>-->\n    </q-list>\n  </div>\n</template>\n<script>\nimport { mapActions } from 'vuex';\nimport ColorSchemeSelector from './colorschemeselector.vue';\nimport { dbColors } from 'dashblocks';\nexport default {\n  name: 'Settings',\n  components: {\n    ColorSchemeSelector\n  },\n  props: {},\n  data() {\n    return {\n      schemeSelectorShown: false,\n      colorSchemaOptions: ['default', 'Grafana', 'Tableau', 'Diverging', 'Categorical', 'Warm', 'Cool', 'Calm', 'Fancy', 'Colorblind Friendly'],\n\n      lightColors: [],\n      darkColors: [],\n\n      check1: true,\n      check2: false,\n      check3: false,\n\n      notif1: true,\n      notif2: true,\n      notif3: false,\n\n      volume: 6,\n      brightness: 3,\n      mic: 8\n    };\n  },\n  computed: {\n    dark: {\n      get() {\n        return this.$store.state.layout.dark;\n      },\n      set(value) {\n        this.setDark({ dark: value });\n      }\n    },\n    menuAutoExpand: {\n      get() {\n        return this.$store.state.layout.menuAutoExpand;\n      },\n      set(value) {\n        this.setMenuAutoExpand({ menuAutoExpand: value });\n      }\n    },\n    menuMini: {\n      get() {\n        return this.$store.state.layout.menuMini;\n      },\n      set(value) {\n        this.setMenuMini({ menuMini: value });\n      }\n    },\n    dashboardColorScheme: {\n      get() {\n        return this.$store.state.layout.dashboardColorScheme;\n      },\n      set(value) {\n        this.setDashboardColorScheme({ dashboardColorScheme: value });\n      }\n    }\n  },\n  watch: {\n    dashboardColorScheme: function(val) {\n      this.initColors();\n    }\n  },\n  mounted() {\n    this.initColors();\n  },\n  methods: {\n    ...mapActions({\n      setDark: 'layout/setDark',\n      setMenuAutoExpand: 'layout/setMenuAutoExpand',\n      setMenuMini: 'layout/setMenuMini',\n      setDashboardColorScheme: 'layout/setDashboardColorScheme'\n    }),\n    initColors() {\n      let colorScheme = dbColors.getColorScheme(this.dashboardColorScheme);\n      this.lightColors = colorScheme.light.slice(0, 5);\n      this.darkColors = colorScheme.dark.slice(0, 5);\n    },\n    onClose() {\n      this.$emit('close');\n    }\n  }\n};\n</script>\n"
  },
  {
    "path": "src/components/tables/htable.vue",
    "content": "<template>\n  <q-table\n    dense\n    flat\n    :data=\"hits\"\n    :columns=\"columnsList\"\n    :pagination.sync=\"pagination\"\n    :rows-per-page-options=\"[5, 10, 25, 50, 100]\"\n    :filter=\"filter\"\n    :filter-method=\"compositeFilterFn\"\n    row-key=\"name\"\n    separator=\"cell\"\n    class=\"ub-hits-table\"\n  >\n    <template v-slot:top=\"props\">\n      <q-input v-model=\"filter\" debounce=\"500\" filled dense placeholder=\"Search\" clearable class=\"col-md-4\">\n        <template v-slot:prepend>\n          <q-icon name=\"search\" />\n        </template>\n      </q-input>\n      <q-space></q-space>\n      <q-toggle v-model=\"showPreview\">Show Preview</q-toggle>\n      <q-btn flat round dense :icon=\"props.inFullscreen ? 'fullscreen_exit' : 'fullscreen'\" @click=\"props.toggleFullscreen\" class=\"q-ml-md\" size=\"md\" />\n    </template>\n\n    <template v-slot:header=\"props\">\n      <q-tr :props=\"props\">\n        <q-th v-for=\"col in props.cols\" :key=\"col.name\" :props=\"props\" class=\"ub-th\">\n          {{ col.label }}\n        </q-th>\n      </q-tr>\n    </template>\n\n    <template v-slot:body=\"props\">\n      <tr v-if=\"hasHitColumn\" class=\"ub-hits-tr\" @click=\"onRowClick(props.row)\" @dblclick=\"onRowDblClick(props.row)\">\n        <td class=\"ub-hits-td-time\">\n          {{ formatTsColumn(props.row) }}\n        </td>\n        <td class=\"ub-hits-td-hit\">\n          <code class=\"ub-code\" v-html=\"formatJsonColumn(props.row)\"></code>\n        </td>\n      </tr>\n      <tr v-else class=\"ub-hits-tr\" @click=\"onRowClick(props.row)\" @dblclick=\"onRowDblClick(props.row)\">\n        <td v-for=\"col in props.cols\" :key=\"col.name\">\n          {{ formatColumn(col, props.row) }}\n        </td>\n      </tr>\n    </template>\n  </q-table>\n</template>\n<script>\nimport pathOr from 'ramda/src/pathOr';\n\n// Specialized table to show collection of JSON documents\nexport default {\n  name: 'HTable',\n  props: {\n    hits: {\n      type: Array,\n      default: () => []\n    },\n    tsPath: {\n      type: Array,\n      default: () => ['@timestamp']\n    },\n    tsLabel: {\n      type: String,\n      default: '@timestamp'\n    },\n    displayFields: {\n      type: Object,\n      default: () => {}\n    },\n    displayFieldsRemovePrefix: {\n      type: String,\n      default: null\n    },\n    page: {\n      type: Number,\n      default: 1\n    },\n    rowsPerPage: {\n      type: Number,\n      default: 5\n    },\n    sortBy: {\n      type: String,\n      default: ''\n    },\n    descending: {\n      type: Boolean,\n      default: true\n    },\n    preview: {\n      type: Boolean,\n      default: false\n    }\n  },\n  data: function() {\n    return {\n      pagination: {\n        page: 1,\n        rowsPerPage: this.rowsPerPage,\n        sortBy: this.tsLabel,\n        descending: true\n      },\n      tsColumn: {\n        name: this.tsLabel,\n        required: true,\n        label: this.tsLabel,\n        align: 'left',\n        field: this.tsLabel,\n        format: this.formatTsColumn,\n        sortable: true,\n        style: 'vertical-align: top;'\n      },\n      hitColumn: {\n        name: 'hit',\n        required: true,\n        label: 'Hit',\n        align: 'left',\n        sortable: false\n      },\n      columns: [],\n      items: [],\n      allColumnsList: [],\n      thStops: [25, 50, 100],\n      thStopsWidth: [100, 140, 160],\n      showPreview: this.preview,\n      filter: ''\n    };\n  },\n  computed: {\n    hasHitColumn: function() {\n      return this.showPreview; //return Object.keys(this.displayFields).length <= 0;\n    },\n    columnsList: function() {\n      let allColumnsList = [this.tsColumn];\n      if (this.hasHitColumn) {\n        allColumnsList.push(this.hitColumn);\n      } else {\n        for (let dc of Object.keys(this.displayFields)) {\n          let fn = dc;\n          if (this.displayFieldsRemovePrefix && fn.startsWith(this.displayFieldsRemovePrefix)) {\n            fn = fn.replace(this.displayFieldsRemovePrefix, '');\n          }\n          allColumnsList.push({\n            name: fn,\n            required: true,\n            label: fn,\n            field: dc,\n            align: 'left',\n            sortable: true\n          });\n        }\n      }\n      return allColumnsList;\n    }\n  },\n  mounted: function() {},\n  watch: {\n    page: function(val) {\n      this.pagination.page = val;\n    },\n    rowsPerPage: function(val) {\n      this.pagination.rowsPerPage = val;\n    },\n    sortBy: function(val) {\n      this.pagination.sortBy = val;\n    },\n    descending: function(val) {\n      this.pagination.descending = val;\n    }\n  },\n  methods: {\n    getThStyle(col) {\n      let len = col.label.length;\n      let idx = this.thStops.findIndex(x => x > len);\n      return idx !== -1 ? `min-width:${this.thStopsWidth[idx]}px;` : 'min-width:250px;';\n    },\n\n    formatColumn(col, row) {\n      if (col.label === this.tsLabel) {\n        return this.formatTsColumn(row);\n      }\n      let path = pathOr(null, [col.field], this.displayFields);\n      if (!path) {\n        return '';\n      }\n      return pathOr('', path, row);\n    },\n\n    formatTsColumn(row) {\n      return pathOr(null, this.tsPath, row);\n    },\n\n    formatJsonColumn(row) {\n      let code = JSON.stringify(row, (key, value) => {\n        if (typeof value === 'string') {\n          return `<span class='ub-v-s'>${value}</span>`;\n        } else if (typeof value === 'number') {\n          return `<span class='ub-v-n'>${value}</span>`;\n        }\n        return value;\n      });\n      return code;\n    },\n\n    onRowClick(row) {\n      this.$emit('rowClick', row);\n    },\n\n    compositeFilterFn(rows, terms, cols, cellValue) {\n      console.log(`compositeFilterFn: terms = ${JSON.stringify(terms)}`);\n      let filteredRows = rows;\n      if (terms && terms !== '') {\n        const lowerTerms = terms.toLowerCase();\n        filteredRows = rows.filter(\n          row =>\n            JSON.stringify(row)\n              .toLowerCase()\n              .indexOf(lowerTerms) !== -1\n        );\n      }\n      return filteredRows;\n    },\n\n    onRowDblClick(row) {\n      this.$emit('rowDblClick', row);\n    }\n  }\n};\n</script>\n<style lang=\"scss\">\n.ub-hits-table {\n  width: 100%;\n\n  .ub-hits-tr {\n    font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', 'source-code-pro', monospace;\n    cursor: pointer;\n  }\n\n  .ub-hits-td-time {\n    vertical-align: top;\n  }\n\n  .ub-hits-td-hit {\n    vertical-align: top;\n    white-space: normal;\n    word-break: break-all;\n  }\n}\n</style>\n"
  },
  {
    "path": "src/components/tables/itable.vue",
    "content": "<template>\n  <q-table\n    dense\n    flat\n    virtual-scroll\n    :data=\"items\"\n    :columns=\"columns\"\n    :pagination.sync=\"pagination\"\n    class=\"ub-items-table\"\n    :row-key=\"valueProp\"\n    :selection=\"selection\"\n    :filter=\"filter\"\n    :selected.sync=\"selected\"\n    :visible-columns=\"visibleColumns\"\n    :hide-bottom=\"items.length > 0\"\n  >\n    <template v-if=\"showSearch\" v-slot:top>\n      <q-input v-model=\"filter\" debounce=\"500\" filled dense placeholder=\"Search\" clearable class=\"full-width\">\n        <template v-slot:prepend>\n          <q-icon name=\"search\" />\n        </template>\n      </q-input>\n    </template>\n    <template v-slot:header=\"props\">\n      <q-tr :props=\"props\">\n        <q-th v-if=\"hasSelectionToggle\">\n          <q-toggle size=\"xs\" v-model=\"props.selected\" />\n        </q-th>\n        <q-th key=\"icon\" :props=\"props\"> </q-th>\n        <q-th key=\"value\" :props=\"props\">\n          {{ valueTitle + ' ' + valueSubTitle }}\n        </q-th>\n        <q-th v-if=\"showData\" key=\"data\" :props=\"props\">\n          {{ dataTitle }}\n        </q-th>\n      </q-tr>\n    </template>\n    <template v-slot:body=\"props\">\n      <q-tr\n        :props=\"props\"\n        class=\"ub-items-row\"\n        @click=\"props.selected = !props.selected\"\n        @mouseover.native=\"onRowMouseOver(props.row)\"\n        @mouseleave.native=\"onRowMouseLeave(props.row)\"\n      >\n        <q-td auto-width v-if=\"hasSelectionToggle\">\n          <q-toggle size=\"xs\" v-model=\"props.selected\" :style=\"`color:${props.row.color};`\" />\n        </q-td>\n        <q-td key=\"icon\" :props=\"props\" auto-width>\n          <q-icon :name=\"icon\" size=\"sm\" :style=\"`color:${props.row.color};`\" />\n        </q-td>\n        <q-td key=\"value\" :props=\"props\" class=\"ub-items-val\">\n          {{ valueProp ? props.row[valueProp] : '' }}\n        </q-td>\n        <q-td key=\"data\" v-if=\"showData\" :props=\"props\" auto-width class=\"ub-items-data\">\n          {{ dataProp ? props.row[dataProp] : '' }}\n        </q-td>\n      </q-tr>\n    </template>\n  </q-table>\n</template>\n<script>\nimport { debounce } from 'quasar';\n\n// Table that shows the list of items\n// Note: when list of items is large, selection (toggle) may slow down (i.e. resizing)\n// Consider implementing more efficient selection mechanism - i.e. click on row to select/ unselect\n// For now this is fine\nexport default {\n  name: 'ITable',\n  props: {\n    items: {\n      type: Array,\n      default: () => []\n    },\n    /* Property in item object that contains value to be shown */\n    /* TODO Consider keyProp */\n    valueProp: {\n      type: String,\n      default: null\n    },\n    valueTitle: {\n      type: String,\n      default: 'Value'\n    },\n    valueSubTitle: {\n      type: String,\n      default: ''\n    },\n    /* Property in item object that contains active flag */\n    activeProp: {\n      type: String,\n      default: null\n    },\n    icon: {\n      type: String,\n      default: null\n    },\n    selection: {\n      type: String,\n      default: 'none'\n    },\n    selectionToggle: {\n      type: Boolean,\n      default: true\n    },\n    selectedItems: {\n      type: Array,\n      default: () => []\n    },\n    highlightedItem: {\n      type: Object,\n      default: null\n    },\n    dataProp: {\n      type: String,\n      default: null\n    },\n    dataTitle: {\n      type: String,\n      default: 'Data'\n    },\n    showData: {\n      type: Boolean,\n      default: false\n    },\n    showSearch: {\n      type: Boolean,\n      default: true\n    }\n  },\n  data: function() {\n    return {\n      pagination: {\n        sortBy: 'icons',\n        descending: false,\n        page: 1,\n        rowsPerPage: 0\n      },\n      filter: '',\n      columns: [\n        {\n          name: 'icon',\n          required: false,\n          label: '',\n          align: 'left',\n          field: 'title',\n          sortable: false\n        },\n        { name: 'value', sortable: true, label: this.valueTitle, align: 'left', field: this.valueProp, style: 'white-space:normal; word-break:break-all;' },\n        { name: 'data', sortable: true, label: this.dataTitle, align: 'left', field: 'data' }\n      ],\n      selected: [],\n      highlighted: null\n    };\n  },\n  computed: {\n    visibleColumns: function() {\n      return this.icon ? ['icon', 'value', 'data', 'ctrls'] : ['value', 'data', 'ctrls'];\n    },\n    hasSelectionToggle: function() {\n      return (this.selection === 'single' || this.selection === 'multiple') && this.selectionToggle;\n    }\n  },\n  created() {\n    this.highlightedUpdateEvent = debounce(this.highlightedUpdateEvent, 500);\n  },\n  mounted: function() {},\n  watch: {\n    selected: function(val) {\n      this.$emit('update:selectedItems', val);\n    }\n  },\n  methods: {\n    highlightedUpdateEvent() {\n      this.$emit('update:highlightedItem', this.highlighted);\n    },\n    onRowMouseOver(row) {\n      // TODO Consider using keyProp\n      if (this.highlighted && this.highlighted[this.valueProp] === row[this.valueProp]) {\n        return; // already there\n      }\n      this.highlighted = row;\n      this.highlightedUpdateEvent();\n    },\n    onRowMouseLeave(row) {\n      this.highlighted = null;\n      this.highlightedUpdateEvent();\n    }\n  }\n};\n</script>\n<style lang=\"scss\">\n.ub-items-table {\n  & table {\n    table-layout: auto;\n  }\n\n  /* [sv2] This disables highlighting background of selected rows in q-table. */\n  .q-table > tbody > tr.selected > td:after {\n    content: none;\n  }\n\n  & tbody > tr.selected > td.ub-items-val {\n    font-weight: 500;\n  }\n\n  /* TODO Consider monospace\n  font-family: \"Monaco\", \"Menlo\", \"Ubuntu Mono\", \"Consolas\", \"source-code-pro\", \"Lucida Console\", monospace;\n  */\n  .ub-items-val {\n    &.active {\n      color: #1a1aa6;\n    }\n  }\n\n  .ub-items-data {\n    font-weight: 500;\n  }\n\n  .ub-items-row:hover > .ub-items-row-ctrl > .ub-items-ctrls {\n    display: block;\n  }\n\n  /* This enables passing arbitrary color to q-toggle */\n  .q-toggle__inner--truthy {\n    color: currentColor;\n  }\n  .q-toggle--dark .q-toggle__inner {\n    color: currentColor;\n  }\n  /* This makes track color more prominent */\n  .q-toggle__track {\n    opacity: 0.8;\n  }\n  /* This makes thumb less prominent in dark mode */\n  .q-toggle--dark .q-toggle__thumb:after {\n    opacity: 0.7;\n  }\n}\n</style>\n"
  },
  {
    "path": "src/components/tables/ptable.vue",
    "content": "<template>\n  <q-table dense flat hide-bottom :data=\"items\" :columns=\"columns\" row-key=\"prop\" :pagination.sync=\"pagination\" class=\"ub-prop-table\" style=\"width: 100%;\">\n    <template v-slot:body=\"props\">\n      <q-tr :props=\"props\" class=\"ub-prop-row\">\n        <q-td key=\"prop\" :props=\"props\" auto-width class=\"ub-prop-key\">\n          {{ props.row.title }}\n        </q-td>\n        <q-td key=\"val\" :props=\"props\" :class=\"valClass(props.row)\">\n          {{ props.row.val }}\n        </q-td>\n      </q-tr>\n    </template>\n  </q-table>\n</template>\n<script>\n// Show object properties in a table\nexport default {\n  name: 'PTable',\n  props: {\n    obj: Object,\n    removePrefix: {\n      type: String,\n      default: ''\n    },\n    // List of \"active\" properties, array of keys\n    activeProps: {\n      type: Array,\n      default: () => []\n    }\n  },\n  data: function() {\n    return {\n      keyCntr: 0,\n      pagination: {\n        sortBy: 'prop',\n        descending: false,\n        page: 1,\n        rowsPerPage: 0\n      },\n      columns: [\n        {\n          name: 'prop',\n          required: true,\n          label: 'Name',\n          align: 'left',\n          field: 'title',\n          sortable: true,\n          style: 'vertical-align: top;white-space:normal;'\n        },\n        { name: 'val', label: 'Value', align: 'left', field: 'val', style: 'white-space:normal; word-break:break-all;font-weight:500;' }\n      ],\n      items: []\n    };\n  },\n  computed: {},\n  mounted: function() {\n    this.preProcessObj(this.obj);\n  },\n  watch: {\n    obj: function(val) {\n      this.preProcessObj(val);\n    },\n    activeProps: function(val) {\n      this.items.map(x => {\n        x.active = val.includes(x.prop);\n      });\n    }\n  },\n  methods: {\n    valClass: function(row) {\n      return 'ub-prop-val ' + (row.active ? 'active' : '');\n    },\n    // Pre-process object, generate flat table data structure and values according to field types\n    preProcessObj(obj) {\n      this.items = [];\n      let allitems = [];\n      let path = [];\n      this.preProcessProps('', path, obj, allitems);\n      this.items = allitems;\n    },\n    addProp(prop, allItems) {\n      prop.title = prop.prop;\n      prop.active = this.activeProps.includes(prop.prop);\n      if (this.removePrefix !== '' && prop.title.startsWith(this.removePrefix)) {\n        prop.title = prop.title.replace(this.removePrefix, '');\n      }\n      allItems.push(prop);\n    },\n    preProcessProps(prefix, path, obj, allItems) {\n      if (typeof obj === 'undefined' || !obj) {\n        this.addProp(\n          {\n            typeclass: '',\n            typetext: 't',\n            type: 'string',\n            prop: prefix,\n            val: 'NULL',\n            path: path\n          },\n          allItems\n        );\n        return;\n      }\n      for (let prop of Object.keys(obj)) {\n        let propfullname = prefix !== '' ? `${prefix}.${prop}` : prop;\n        let currentPath = path.slice();\n        currentPath.push(prop);\n        switch (typeof obj[prop]) {\n          case 'object': {\n            this.preProcessProps(propfullname, currentPath, obj[prop], allItems);\n            break;\n          }\n          case 'string': {\n            this.addProp(\n              {\n                key: this.keyCntr++,\n                typeclass: '',\n                typetext: 't',\n                type: 'string',\n                prop: propfullname,\n                val: obj[prop],\n                path: currentPath\n              },\n              allItems\n            );\n            break;\n          }\n          case 'boolean': {\n            this.addProp(\n              {\n                key: this.keyCntr++,\n                typeclass: 'fa fa-adjust',\n                typetext: '',\n                type: 'boolean',\n                prop: propfullname,\n                val: obj[prop] ? 'true' : 'false',\n                path: currentPath\n              },\n              allItems\n            );\n            break;\n          }\n          case 'number': {\n            this.addProp(\n              {\n                key: this.keyCntr++,\n                typeclass: '',\n                typetext: '#',\n                type: 'number',\n                prop: propfullname,\n                val: `${obj[prop]}`,\n                path: currentPath\n              },\n              allItems\n            );\n            break;\n          }\n        }\n      }\n    }\n  }\n};\n</script>\n<style lang=\"scss\">\n.ub-prop-table {\n  & table {\n    table-layout: auto;\n  }\n  /*\n  font-family: \"Monaco\", \"Menlo\", \"Ubuntu Mono\", \"Consolas\", \"source-code-pro\", \"Lucida Console\", monospace;\n  */\n  .ub-prop-val {\n    &.active {\n      color: #1a1aa6;\n    }\n  }\n\n  .ub-prop-row:hover > .ub-prop-val > .ub-prop-ctrls {\n    display: block;\n  }\n}\n</style>\n"
  },
  {
    "path": "src/components/user/message.vue",
    "content": "<template>\n  <q-item>\n    <q-item-section avatar top>\n      <q-icon v-if=\"message.icon\" :name=\"message.icon || 'mdi-message-text-outline'\" size=\"34px\" />\n      <q-avatar v-else-if=\"message.avatar\" size=\"34px\">\n        <img :src=\"message.avatar\" />\n      </q-avatar>\n      <q-icon v-else name=\"mdi-message-text-outline\" size=\"34px\" />\n    </q-item-section>\n\n    <q-item-section top>\n      <q-item-label lines=\"1\">\n        <div class=\"text-grey-7 cursor-pointer\">{{ message.from }}</div>\n        <div class=\"cursor-pointer text-weight-medium\">{{ message.subject }}</div>\n      </q-item-label>\n      <q-item-label class=\"text-body2\" lines=\"1\">\n        {{ message.text }}\n      </q-item-label>\n    </q-item-section>\n\n    <q-item-section top side>\n      <div class=\"text-grey-7 q-gutter-xs\">\n        <q-btn size=\"sm\" flat dense round icon=\"delete\" />\n        <q-btn size=\"sm\" flat dense round icon=\"done\" />\n        <!--<q-btn size=\"12px\" flat dense round icon=\"more_vert\" />-->\n      </div>\n      <div class=\"text-grey-7 q-gutter-xs\">\n        {{ message.date }}\n      </div>\n    </q-item-section>\n  </q-item>\n</template>\n<script>\nexport default {\n  name: 'Message',\n  components: {},\n  props: {\n    message: {\n      type: Object,\n      default: null\n    }\n  },\n  data: function() {\n    return {};\n  },\n  computed: {},\n  watch: {},\n  methods: {}\n};\n</script>\n<style lang=\"scss\"></style>\n"
  },
  {
    "path": "src/components/user/messages.vue",
    "content": "<template>\n  <div class=\"q-pa-md\" style=\"max-width: 700px\">\n    <q-bar class=\"bg-none\">\n      Notifications\n      <q-space />\n      <q-btn dense flat round icon=\"close\" @click=\"onClose\" />\n    </q-bar>\n\n    <q-list style=\"width: 600px\" separator>\n      <message v-for=\"message in messagesList\" v-bind:key=\"message.id\" :message=\"message\"></message>\n    </q-list>\n  </div>\n</template>\n<script>\nimport Message from './message.vue';\nexport default {\n  name: 'Messages',\n  components: { Message },\n  props: {},\n  data() {\n    return {\n      messagesList: [\n        {\n          id: '1',\n          from: 'Slack',\n          subject: 'Current Job result: SUCCESS',\n          text: 'service-pipeline-branches/master:65e1b0d6-21f0-498d-9510-5a2acc49b06b',\n          icon: 'mdi-slack',\n          date: '4/23/20'\n        },\n        {\n          id: '2',\n          from: 'GitHub',\n          subject: 'github-actions pushed to slanatech/dashblocks-template ',\n          text: '62e7e60 Deploying to gh-pages from @e393152',\n          icon: 'mdi-github',\n          date: '4/23/20'\n        },\n        {\n          id: '3',\n          from: 'Leela Dunlap',\n          subject: 'Dashblocks Material Admin Template',\n          text: 'Dashblocks enables easily creating sophisticated interactive dashboards simply by declaring dashboard structure as json or javascript object',\n          avatar: 'images/avatars/female/1.png',\n          date: '4/23/20'\n        },\n        {\n          id: '4',\n          from: 'Keeley Milner',\n          subject: 'Dashblocks Charts',\n          text: 'Dashblocks uses popular charting libraries: d3, Chart.js, Dygraphs, Plotly.js.',\n          avatar: 'images/avatars/male/1.png',\n          date: '4/23/20'\n        },\n        { id: '5', from: 'Leela Dunlap', subject: 'Re: Dashblocks Charts', text: 'Awesome!', avatar: 'images/avatars/female/1.png', date: '4/23/20' }\n      ]\n    };\n  },\n  computed: {},\n  watch: {},\n  methods: {\n    onClose() {\n      this.$emit('close');\n    }\n  }\n};\n</script>\n"
  },
  {
    "path": "src/components/user/userinfo.vue",
    "content": "<template>\n  <div class=\"q-pa-md\" style=\"max-width: 280px\">\n    <q-list style=\"width: 260px\">\n      <q-item>\n        <q-item-section avatar>\n          <q-avatar>\n            <img src=\"images/avatars/male/1.png\" />\n          </q-avatar>\n        </q-item-section>\n        <q-item-section>\n          <q-item-label lines=\"1\">\n            <div class=\"text-h5\">John Smith</div>\n          </q-item-label>\n        </q-item-section>\n      </q-item>\n\n      <q-separator spaced />\n\n      <q-item clickable v-ripple v-close-popup>\n        <q-item-section avatar>\n          <q-icon name=\"mdi-account\"></q-icon>\n        </q-item-section>\n        <q-item-section>\n          <q-item-label lines=\"1\">\n            My Account\n          </q-item-label>\n        </q-item-section>\n      </q-item>\n\n      <q-item clickable v-ripple v-close-popup>\n        <q-item-section avatar>\n          <q-icon name=\"mdi-bell\"></q-icon>\n        </q-item-section>\n        <q-item-section>\n          <q-item-label lines=\"1\">\n            Notifications\n          </q-item-label>\n        </q-item-section>\n        <q-item-section side>\n          <q-badge color=\"red\" label=\"5\" />\n        </q-item-section>\n      </q-item>\n\n      <q-item clickable v-ripple v-close-popup>\n        <q-item-section avatar>\n          <q-icon name=\"mdi-calendar\"></q-icon>\n        </q-item-section>\n        <q-item-section>\n          <q-item-label lines=\"1\">\n            Calendar\n          </q-item-label>\n        </q-item-section>\n        <q-item-section side>\n          <q-badge color=\"red\" label=\"1\" />\n        </q-item-section>\n      </q-item>\n\n      <q-separator spaced />\n\n      <q-item clickable v-ripple v-close-popup>\n        <q-item-section avatar>\n          <q-icon name=\"mdi-help-box\"></q-icon>\n        </q-item-section>\n        <q-item-section>\n          <q-item-label lines=\"1\">\n            Help\n          </q-item-label>\n        </q-item-section>\n      </q-item>\n\n      <q-item clickable v-ripple v-close-popup>\n        <q-item-section avatar>\n          <q-icon name=\"mdi-logout\"></q-icon>\n        </q-item-section>\n        <q-item-section>\n          <q-item-label lines=\"1\">\n            Log Out\n          </q-item-label>\n        </q-item-section>\n      </q-item>\n    </q-list>\n\n    <!--<q-list bordered padding>\n      <q-item-label header>User Controls</q-item-label>\n\n      <q-item clickable v-ripple>\n        <q-item-section>\n          <q-item-label>Content filtering</q-item-label>\n          <q-item-label caption>\n            Set the content filtering level to restrict apps that can be downloaded\n          </q-item-label>\n        </q-item-section>\n      </q-item>\n\n      <q-item clickable v-ripple>\n        <q-item-section>\n          <q-item-label>Password</q-item-label>\n          <q-item-label caption>\n            Require password for purchase or use password to restrict purchase\n          </q-item-label>\n        </q-item-section>\n      </q-item>\n\n      <q-separator spaced />\n      <q-item-label header>General</q-item-label>\n\n      <q-item tag=\"label\" v-ripple>\n        <q-item-section side top>\n          <q-checkbox v-model=\"check1\" />\n        </q-item-section>\n\n        <q-item-section>\n          <q-item-label>Notifications</q-item-label>\n          <q-item-label caption>\n            Notify me about updates to apps or games that I downloaded\n          </q-item-label>\n        </q-item-section>\n      </q-item>\n\n      <q-item tag=\"label\" v-ripple>\n        <q-item-section side top>\n          <q-checkbox v-model=\"check2\" />\n        </q-item-section>\n\n        <q-item-section>\n          <q-item-label>Sound</q-item-label>\n          <q-item-label caption>\n            Auto-update apps at anytime. Data charges may apply\n          </q-item-label>\n        </q-item-section>\n      </q-item>\n\n      <q-item tag=\"label\" v-ripple>\n        <q-item-section side top>\n          <q-checkbox v-model=\"check3\" />\n        </q-item-section>\n\n        <q-item-section>\n          <q-item-label>Auto-add widgets</q-item-label>\n          <q-item-label caption>\n            Automatically add home screen widgets\n          </q-item-label>\n        </q-item-section>\n      </q-item>\n\n      <q-separator spaced />\n      <q-item-label header>Notifications</q-item-label>\n\n      <q-item tag=\"label\" v-ripple>\n        <q-item-section>\n          <q-item-label>Battery too low</q-item-label>\n        </q-item-section>\n        <q-item-section side>\n          <q-toggle color=\"blue\" v-model=\"notif1\" val=\"battery\" />\n        </q-item-section>\n      </q-item>\n\n      <q-item tag=\"label\" v-ripple>\n        <q-item-section>\n          <q-item-label>Friend request</q-item-label>\n          <q-item-label caption>Allow notification</q-item-label>\n        </q-item-section>\n        <q-item-section side top>\n          <q-toggle color=\"green\" v-model=\"notif2\" val=\"friend\" />\n        </q-item-section>\n      </q-item>\n\n      <q-item tag=\"label\" v-ripple>\n        <q-item-section>\n          <q-item-label>Picture uploaded</q-item-label>\n          <q-item-label caption>Allow notification when uploading images</q-item-label>\n        </q-item-section>\n        <q-item-section side top>\n          <q-toggle color=\"red\" v-model=\"notif3\" val=\"picture\" />\n        </q-item-section>\n      </q-item>\n\n      <q-separator spaced />\n      <q-item-label header>Other settings</q-item-label>\n\n      <q-item>\n        <q-item-section side>\n          <q-icon color=\"teal\" name=\"volume_down\" />\n        </q-item-section>\n        <q-item-section>\n          <q-slider v-model=\"volume\" :min=\"0\" :max=\"10\" label color=\"teal\" />\n        </q-item-section>\n        <q-item-section side>\n          <q-icon color=\"teal\" name=\"volume_up\" />\n        </q-item-section>\n      </q-item>\n\n      <q-item>\n        <q-item-section side>\n          <q-icon color=\"deep-orange\" name=\"brightness_medium\" />\n        </q-item-section>\n        <q-item-section>\n          <q-slider v-model=\"brightness\" :min=\"0\" :max=\"10\" label color=\"deep-orange\" />\n        </q-item-section>\n      </q-item>\n\n      <q-item>\n        <q-item-section side>\n          <q-icon color=\"primary\" name=\"mic\" />\n        </q-item-section>\n        <q-item-section>\n          <q-slider v-model=\"mic\" :min=\"0\" :max=\"50\" label />\n        </q-item-section>\n      </q-item>\n    </q-list>-->\n  </div>\n</template>\n<script>\nexport default {\n  name: 'UserInfo',\n  components: {},\n  props: {},\n  data() {\n    return {};\n  },\n  computed: {},\n  watch: {},\n  methods: {}\n};\n</script>\n"
  },
  {
    "path": "src/dashboards/ChartJsShowcase.json",
    "content": "{\n  \"layout\": {\n    \"type\": \"grid\"\n  },\n  \"widgets\": [\n    {\n      \"id\": \"w1\",\n      \"type\": \"DbChartjsLine\",\n      \"cspan\": 4,\n      \"height\": 250,\n      \"properties\": {\n        \"options\": {\n          \"maintainAspectRatio\": false,\n          \"legend\": {\n            \"labels\": {\n              \"fontColor\": \"red\"\n            }\n          }\n        }\n      }\n    },\n    {\n      \"id\": \"w2\",\n      \"type\": \"DbChartjsBar\",\n      \"cspan\": 4,\n      \"height\": 250\n    },\n    {\n      \"id\": \"w3\",\n      \"type\": \"DbChartjsHorizontalBar\",\n      \"cspan\": 4\n    },\n    {\n      \"id\": \"w4\",\n      \"type\": \"DbChartjsPie\",\n      \"cspan\": 4\n    },\n    {\n      \"id\": \"w5\",\n      \"type\": \"DbChartjsDoughnut\",\n      \"cspan\": 4,\n      \"height\": 250\n    },\n    {\n      \"id\": \"w6\",\n      \"type\": \"DbChartjsPolarArea\",\n      \"cspan\": 4,\n      \"height\": 250\n    },\n    {\n      \"id\": \"w7\",\n      \"type\": \"DbChartjsRadar\",\n      \"cspan\": 4,\n      \"height\": 250\n    },\n    {\n      \"id\": \"w8\",\n      \"type\": \"DbChartjsBar\",\n      \"cspan\": 4,\n      \"height\": 250\n    },\n    {\n      \"id\": \"w9\",\n      \"type\": \"DbChartjsBubble\",\n      \"cspan\": 8,\n      \"height\": 300\n    },\n    {\n      \"id\": \"w10\",\n      \"type\": \"DbChartjsScatter\",\n      \"cspan\": 8,\n      \"height\": 300,\n      \"properties\": {\n        \"options\": {\n          \"scales\": {\n            \"xAxes\": [{\n              \"type\": \"linear\",\n              \"position\": \"bottom\"\n            }]\n          }\n        }\n      }\n    }\n  ]\n}\n"
  },
  {
    "path": "src/dashboards/dashfive.json",
    "content": "{\n  \"layout\": {\n    \"type\": \"grid\"\n  },\n  \"widgets\": [\n    {\n      \"id\": \"wa\",\n      \"type\": \"DbDygraphsBar\",\n      \"cspan\": 16,\n      \"height\": 250,\n      \"properties\": {\n        \"options\": {\n          \"stackedGraph\": true\n        }\n      }\n    },\n    {\n      \"id\": \"w0\",\n      \"type\": \"DbTrendLine\",\n      \"cspan\": 4,\n      \"properties\": {\n        \"smooth\": false,\n        \"strokeWidth\": 1\n      }\n    },\n    {\n      \"id\": \"w0\",\n      \"type\": \"DbTrendLine\",\n      \"cspan\": 4\n    },\n    {\n      \"id\": \"w1\",\n      \"type\": \"DbTrendBar\",\n      \"cspan\": 4\n    },\n    {\n      \"id\": \"w2\",\n      \"type\": \"DbTrendBar\",\n      \"cspan\": 4\n    },\n    {\n      \"id\": \"w4\",\n      \"type\": \"DbNumber\",\n      \"cspan\": 4,\n      \"properties\": {\n        \"title\": \"Test OK\",\n        \"badge\": \"req/s\",\n        \"icon\" : \"fa fa-signal\",\n        \"ranges\": [1000,2000]\n      }\n    },\n    {\n      \"id\": \"w5\",\n      \"type\": \"DbNumber\",\n      \"cspan\": 4,\n      \"properties\": {\n        \"title\": \"Test Warning\",\n        \"badge\": \"req/s\",\n        \"icon\" : \"fa fa-clock\",\n        \"ranges\": [1000,2000]\n      }\n    },\n    {\n      \"id\": \"w6\",\n      \"type\": \"DbNumber\",\n      \"cspan\": 4,\n      \"properties\": {\n        \"title\": \"Test Alarm\",\n        \"badge\": \"req/s\",\n        \"icon\" : \"fa fa-chart-bar\",\n        \"ranges\": [1000,2000]\n      }\n    },\n    {\n      \"id\": \"w7\",\n      \"type\": \"DbPlotly\",\n      \"cspan\": 16,\n      \"rspan\": 2,\n      \"properties\": {\n        \"layout\": {\n          \"paper_bgcolor\":\"rgba(0,0,0,0)\",\n          \"plot_bgcolor\":\"rgba(0,0,0,0)\",\n          \"modebar\": {\n            \"bgcolor\": \"rgba(0,0,0,0)\",\n            \"color\": \"rgba(0,0,0,0.5)\"\n          },\n          \"title\": \"reactive charts\",\n          \"xaxis\": {\n            \"title\": \"xaxis title\"\n          },\n          \"yaxis\": {\n            \"title\": \"yaxis title\"\n          },\n          \"margin\": {\n            \"l\": 60,\n            \"r\": 40,\n            \"b\": 40,\n            \"t\": 40,\n            \"pad\": 5\n          }\n        }\n      }\n    },\n    {\n      \"id\": \"w8\",\n      \"type\": \"DbPlotlyLine\",\n      \"cspan\": 10,\n      \"height\": 300,\n      \"properties\": {\n        \"layout\": {\n          \"template\": \"plotly_dark\",\n          \"paper_bgcolor\":\"rgba(0,0,0,0)\",\n          \"plot_bgcolor\":\"rgba(0,0,0,0)\",\n          \"modebar\": {\n            \"bgcolor\": \"rgba(0,0,0,0)\",\n            \"color\": \"rgba(0,0,0,0.5)\"\n          },\n          \"margin\": {\n            \"l\": 60,\n            \"r\": 40,\n            \"b\": 40,\n            \"t\": 40,\n            \"pad\": 5\n          }\n        }\n      }\n    },\n    {\n      \"id\": \"w9\",\n      \"type\": \"DbPlotlyPie\",\n      \"cspan\": 6,\n      \"height\": 300,\n      \"properties\": {\n        \"layout\": {\n          \"legend\": {\n            \"orientation\": \"h\"\n          },\n          \"paper_bgcolor\":\"rgba(0,0,0,0)\",\n          \"plot_bgcolor\":\"rgba(0,0,0,0)\",\n          \"modebar\": {\n            \"bgcolor\": \"rgba(0,0,0,0)\",\n            \"color\": \"rgba(0,0,0,0.5)\"\n          },\n          \"margin\": {\n            \"l\": 60,\n            \"r\": 40,\n            \"b\": 40,\n            \"t\": 40,\n            \"pad\": 5\n          }\n        }\n      }\n    }\n\n\n  ]\n}\n"
  },
  {
    "path": "src/dashboards/dashfour.json",
    "content": "{\n  \"layout\": {\n    \"type\": \"grid\"\n  },\n  \"widgets\": [\n    {\n      \"id\": \"w0\",\n      \"type\": \"DbTrendLine\",\n      \"cspan\": 16\n    },\n    {\n      \"id\": \"w1\",\n      \"type\": \"WidgetOne\",\n      \"cspan\": 2,\n      \"rspan\": 2\n    },\n    {\n      \"id\": \"w2\",\n      \"type\": \"WidgetOne\",\n      \"cspan\": 2,\n      \"rspan\": 1\n    },\n    {\n      \"id\": \"w3\",\n      \"type\": \"DbChartjsLine\",\n      \"cspan\": 4,\n      \"height\": 350\n    },\n    {\n      \"id\": \"w4\",\n      \"type\": \"DbChartjsBar\",\n      \"cspan\": 4,\n      \"height\": 350\n    },\n    {\n      \"id\": \"w5\",\n      \"type\": \"DbChartjsBar\",\n      \"cspan\": 4\n    },\n    {\n      \"id\": \"w1\",\n      \"type\": \"DbNumber\",\n      \"cspan\": 4,\n      \"height\": 300\n    },\n    {\n      \"id\": \"w6\",\n      \"type\": \"DbEasyPie\",\n      \"cspan\": 4,\n      \"properties\": {\n        \"barColor\": \"red\",\n        \"lineWidth\": 10\n      }\n    },\n    {\n      \"id\": \"w7\",\n      \"type\": \"DbTrendLine\",\n      \"cspan\": 6\n    }\n  ]\n}\n"
  },
  {
    "path": "src/dashboards/dashsix.json",
    "content": "{\n  \"layout\": {\n    \"type\": \"grid\"\n  },\n  \"widgets\": [\n    {\n      \"id\": \"w1\",\n      \"type\": \"DbDygraphsBar\",\n      \"cspan\": 16,\n      \"height\": 250,\n      \"properties\": {\n        \"options\": {\n          \"stackedGraph\": true\n        }\n      }\n    },\n    {\n      \"id\": \"w2\",\n      \"type\": \"DbDygraphsLine\",\n      \"cspan\": 8,\n      \"height\": 300,\n      \"properties\": {\n        \"options\": {\n          \"stackedGraph\": false,\n          \"title\": \"Random value Chart\",\n          \"ylabel\": \"Probability\",\n          \"labels\" : [\"Date\",\"AAA\",\"BBB\"],\n          \"legend\": \"always\"\n        }\n      }\n    },\n    {\n      \"id\": \"w6\",\n      \"type\": \"DbDygraphsLine\",\n      \"cspan\": 8,\n      \"height\": 300,\n      \"properties\": {\n        \"options\": {\n          \"showRangeSelector\": true,\n          \"stackedGraph\": false,\n          \"title\": \"Random value Chart\",\n          \"ylabel\": \"Probability\",\n          \"labels\" : [\"Date\",\"AAA\",\"BBB\"],\n          \"legend\": \"always\"\n        }\n      }\n    },\n    {\n      \"id\": \"w3\",\n      \"type\": \"DbDygraphsSparkLine\",\n      \"cspan\": 4,\n      \"properties\": {\n        \"smoothing\": 0.5\n      }\n    },\n    {\n      \"id\": \"w4\",\n      \"type\": \"DbDygraphsSparkLine\",\n      \"cspan\": 4,\n      \"properties\": {\n        \"options\": {\n          \"colors\": [\"gray\"],\n          \"strokeWidth\": 0,\n          \"fillGraph\": true,\n          \"fillAlpha\": 0.2\n        }\n      }\n    },\n    {\n      \"id\": \"w5\",\n      \"type\": \"DbDygraphsSparkLine\",\n      \"cspan\": 4,\n      \"properties\": {\n        \"smoothing\": 0.5\n      }\n    }\n  ]\n}\n"
  },
  {
    "path": "src/dashboards/dashthree.json",
    "content": "{\n  \"layout\": {\n    \"type\": \"grid\"\n  },\n  \"widgets\": [\n    {\n      \"id\": \"w1\",\n      \"type\": \"DbHorizon\",\n      \"cspan\": 16\n    }\n  ]\n}\n"
  },
  {
    "path": "src/data/ChartJsShowcase.json",
    "content": "{\n  \"layout\": {\n    \"type\": \"grid\"\n  },\n  \"widgets\": [\n    {\n      \"id\": \"w1\",\n      \"type\": \"DbChartjsLine\",\n      \"cspan\": 4,\n      \"height\": 250,\n      \"properties\": {\n        \"options\": {\n          \"maintainAspectRatio\": false,\n          \"legend\": {\n            \"labels\": {\n              \"fontColor\": \"red\"\n            }\n          }\n        }\n      }\n    },\n    {\n      \"id\": \"w2\",\n      \"type\": \"DbChartjsBar\",\n      \"cspan\": 4,\n      \"height\": 250\n    },\n    {\n      \"id\": \"w3\",\n      \"type\": \"DbChartjsHorizontalBar\",\n      \"cspan\": 4\n    },\n    {\n      \"id\": \"w4\",\n      \"type\": \"DbChartjsPie\",\n      \"cspan\": 4\n    },\n    {\n      \"id\": \"w5\",\n      \"type\": \"DbChartjsDoughnut\",\n      \"cspan\": 4,\n      \"height\": 250\n    },\n    {\n      \"id\": \"w6\",\n      \"type\": \"DbChartjsPolarArea\",\n      \"cspan\": 4,\n      \"height\": 250\n    },\n    {\n      \"id\": \"w7\",\n      \"type\": \"DbChartjsRadar\",\n      \"cspan\": 4,\n      \"height\": 250\n    },\n    {\n      \"id\": \"w8\",\n      \"type\": \"DbChartjsBar\",\n      \"cspan\": 4,\n      \"height\": 250\n    },\n    {\n      \"id\": \"w9\",\n      \"type\": \"DbChartjsBubble\",\n      \"cspan\": 8,\n      \"height\": 300\n    },\n    {\n      \"id\": \"w10\",\n      \"type\": \"DbChartjsScatter\",\n      \"cspan\": 8,\n      \"height\": 300,\n      \"properties\": {\n        \"options\": {\n          \"scales\": {\n            \"xAxes\": [{\n              \"type\": \"linear\",\n              \"position\": \"bottom\"\n            }]\n          }\n        }\n      }\n    }\n  ]\n}\n"
  },
  {
    "path": "src/data/api.json",
    "content": "{\n  \"startts\": 1588045302159,\n  \"all\": {\n    \"requests\": 2465,\n    \"responses\": 2465,\n    \"errors\": 286,\n    \"info\": 0,\n    \"success\": 2179,\n    \"redirect\": 0,\n    \"client_error\": 210,\n    \"server_error\": 76,\n    \"total_time\": 125717,\n    \"max_time\": 111,\n    \"avg_time\": 51.00081135902637,\n    \"total_req_clength\": 119548,\n    \"max_req_clength\": 210,\n    \"avg_req_clength\": 48,\n    \"total_res_clength\": 261003,\n    \"max_res_clength\": 203,\n    \"avg_res_clength\": 105,\n    \"req_rate\": 12.00325280846899,\n    \"err_rate\": 1.3829305466958186,\n    \"apdex_threshold\": 25,\n    \"apdex_satisfied\": 523,\n    \"apdex_tolerated\": 1649,\n    \"apdex_score\": 0.5466531440162272\n  },\n  \"egress\": {\n    \"requests\": 0,\n    \"responses\": 0,\n    \"errors\": 0,\n    \"info\": 0,\n    \"success\": 0,\n    \"redirect\": 0,\n    \"client_error\": 0,\n    \"server_error\": 0,\n    \"total_time\": 0,\n    \"max_time\": 0,\n    \"avg_time\": 0,\n    \"total_req_clength\": 0,\n    \"max_req_clength\": 0,\n    \"avg_req_clength\": 0,\n    \"total_res_clength\": 0,\n    \"max_res_clength\": 0,\n    \"avg_res_clength\": 0,\n    \"req_rate\": 0,\n    \"err_rate\": 0,\n    \"apdex_threshold\": 25,\n    \"apdex_satisfied\": 0,\n    \"apdex_tolerated\": 0,\n    \"apdex_score\": 0\n  },\n  \"sys\": {\n    \"rss\": 49680384,\n    \"heapTotal\": 34906112,\n    \"heapUsed\": 17352432,\n    \"external\": 1405319,\n    \"cpu\": 6.0893728265431175,\n    \"lag\": 0.123,\n    \"maxlag\": 4.560799\n  },\n  \"name\": \"swagger-stats-spectest\",\n  \"version\": \"0.95.16\",\n  \"hostname\": \"hostname\",\n  \"ip\": \"127.0.0.1\",\n  \"apdexThreshold\": 25,\n  \"apidefs\": {\n    \"/v2/pet\": {\n      \"PUT\": {\n        \"swagger\": true,\n        \"deprecated\": false,\n        \"description\": \"\",\n        \"operationId\": \"updatePet\",\n        \"summary\": \"Update an existing pet\",\n        \"tags\": [\n          \"pet\"\n        ]\n      },\n      \"POST\": {\n        \"swagger\": true,\n        \"deprecated\": false,\n        \"description\": \"\",\n        \"operationId\": \"addPet\",\n        \"summary\": \"Add a new pet to the store\",\n        \"tags\": [\n          \"pet\"\n        ]\n      }\n    },\n    \"/v2/pet/findByStatus\": {\n      \"GET\": {\n        \"swagger\": true,\n        \"deprecated\": false,\n        \"description\": \"Multiple status values can be provided with comma separated strings\",\n        \"operationId\": \"findPetsByStatus\",\n        \"summary\": \"Finds Pets by status\",\n        \"tags\": [\n          \"pet\"\n        ]\n      }\n    },\n    \"/v2/pet/findByTags\": {\n      \"GET\": {\n        \"swagger\": true,\n        \"deprecated\": true,\n        \"description\": \"Muliple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing.\",\n        \"operationId\": \"findPetsByTags\",\n        \"summary\": \"Finds Pets by tags\",\n        \"tags\": [\n          \"pet\"\n        ]\n      }\n    },\n    \"/v2/pet/{petId}\": {\n      \"GET\": {\n        \"swagger\": true,\n        \"deprecated\": false,\n        \"description\": \"Returns a single pet\",\n        \"operationId\": \"getPetById\",\n        \"summary\": \"Find pet by ID\",\n        \"tags\": [\n          \"pet\"\n        ]\n      },\n      \"POST\": {\n        \"swagger\": true,\n        \"deprecated\": false,\n        \"description\": \"\",\n        \"operationId\": \"updatePetWithForm\",\n        \"summary\": \"Updates a pet in the store with form data\",\n        \"tags\": [\n          \"pet\"\n        ]\n      },\n      \"DELETE\": {\n        \"swagger\": true,\n        \"deprecated\": false,\n        \"description\": \"\",\n        \"operationId\": \"deletePet\",\n        \"summary\": \"Deletes a pet\",\n        \"tags\": [\n          \"pet\"\n        ]\n      }\n    },\n    \"/v2/pet/{petId}/uploadImage\": {\n      \"POST\": {\n        \"swagger\": true,\n        \"deprecated\": false,\n        \"description\": \"\",\n        \"operationId\": \"uploadFile\",\n        \"summary\": \"uploads an image\",\n        \"tags\": [\n          \"pet\"\n        ]\n      }\n    },\n    \"/v2/store/inventory\": {\n      \"GET\": {\n        \"swagger\": true,\n        \"deprecated\": false,\n        \"description\": \"Returns a map of status codes to quantities\",\n        \"operationId\": \"getInventory\",\n        \"summary\": \"Returns pet inventories by status\",\n        \"tags\": [\n          \"store\"\n        ]\n      }\n    },\n    \"/v2/store/order\": {\n      \"POST\": {\n        \"swagger\": true,\n        \"deprecated\": false,\n        \"description\": \"\",\n        \"operationId\": \"placeOrder\",\n        \"summary\": \"Place an order for a pet\",\n        \"tags\": [\n          \"store\"\n        ]\n      }\n    },\n    \"/v2/store/order/{orderId}\": {\n      \"GET\": {\n        \"swagger\": true,\n        \"deprecated\": false,\n        \"description\": \"For valid response try integer IDs with value >= 1 and <= 10. Other values will generated exceptions\",\n        \"operationId\": \"getOrderById\",\n        \"summary\": \"Find purchase order by ID\",\n        \"tags\": [\n          \"store\"\n        ]\n      },\n      \"DELETE\": {\n        \"swagger\": true,\n        \"deprecated\": false,\n        \"description\": \"For valid response try integer IDs with positive integer value. Negative or non-integer values will generate API errors\",\n        \"operationId\": \"deleteOrder\",\n        \"summary\": \"Delete purchase order by ID\",\n        \"tags\": [\n          \"store\"\n        ]\n      }\n    },\n    \"/v2/user\": {\n      \"POST\": {\n        \"swagger\": true,\n        \"deprecated\": false,\n        \"description\": \"This can only be done by the logged in user.\",\n        \"operationId\": \"createUser\",\n        \"summary\": \"Create user\",\n        \"tags\": [\n          \"user\"\n        ]\n      }\n    },\n    \"/v2/user/createWithArray\": {\n      \"POST\": {\n        \"swagger\": true,\n        \"deprecated\": false,\n        \"description\": \"\",\n        \"operationId\": \"createUsersWithArrayInput\",\n        \"summary\": \"Creates list of users with given input array\",\n        \"tags\": [\n          \"user\"\n        ]\n      }\n    },\n    \"/v2/user/createWithList\": {\n      \"POST\": {\n        \"swagger\": true,\n        \"deprecated\": false,\n        \"description\": \"\",\n        \"operationId\": \"createUsersWithListInput\",\n        \"summary\": \"Creates list of users with given input array\",\n        \"tags\": [\n          \"user\"\n        ]\n      }\n    },\n    \"/v2/user/login\": {\n      \"GET\": {\n        \"swagger\": true,\n        \"deprecated\": false,\n        \"description\": \"\",\n        \"operationId\": \"loginUser\",\n        \"summary\": \"Logs user into the system\",\n        \"tags\": [\n          \"user\"\n        ]\n      }\n    },\n    \"/v2/user/logout\": {\n      \"GET\": {\n        \"swagger\": true,\n        \"deprecated\": false,\n        \"description\": \"\",\n        \"operationId\": \"logoutUser\",\n        \"summary\": \"Logs out current logged in user session\",\n        \"tags\": [\n          \"user\"\n        ]\n      }\n    },\n    \"/v2/user/{username}\": {\n      \"GET\": {\n        \"swagger\": true,\n        \"deprecated\": false,\n        \"description\": \"\",\n        \"operationId\": \"getUserByName\",\n        \"summary\": \"Get user by user name\",\n        \"tags\": [\n          \"user\"\n        ]\n      },\n      \"PUT\": {\n        \"swagger\": true,\n        \"deprecated\": false,\n        \"description\": \"This can only be done by the logged in user.\",\n        \"operationId\": \"updateUser\",\n        \"summary\": \"Updated user\",\n        \"tags\": [\n          \"user\"\n        ]\n      },\n      \"DELETE\": {\n        \"swagger\": true,\n        \"deprecated\": false,\n        \"description\": \"This can only be done by the logged in user.\",\n        \"operationId\": \"deleteUser\",\n        \"summary\": \"Delete user\",\n        \"tags\": [\n          \"user\"\n        ]\n      }\n    }\n  },\n  \"apistats\": {\n    \"/v2/pet\": {\n      \"PUT\": {\n        \"requests\": 115,\n        \"responses\": 115,\n        \"errors\": 16,\n        \"info\": 0,\n        \"success\": 99,\n        \"redirect\": 0,\n        \"client_error\": 11,\n        \"server_error\": 5,\n        \"total_time\": 5807,\n        \"max_time\": 98,\n        \"avg_time\": 50.495652173913044,\n        \"total_req_clength\": 13050,\n        \"max_req_clength\": 210,\n        \"avg_req_clength\": 113,\n        \"total_res_clength\": 12180,\n        \"max_res_clength\": 202,\n        \"avg_res_clength\": 105,\n        \"req_rate\": 0.5599894819366872,\n        \"err_rate\": 0.07791158009553908,\n        \"apdex_threshold\": 25,\n        \"apdex_satisfied\": 24,\n        \"apdex_tolerated\": 75,\n        \"apdex_score\": 0.5347826086956522\n      },\n      \"POST\": {\n        \"requests\": 116,\n        \"responses\": 116,\n        \"errors\": 13,\n        \"info\": 0,\n        \"success\": 103,\n        \"redirect\": 0,\n        \"client_error\": 11,\n        \"server_error\": 2,\n        \"total_time\": 6038,\n        \"max_time\": 101,\n        \"avg_time\": 52.05172413793103,\n        \"total_req_clength\": 12510,\n        \"max_req_clength\": 209,\n        \"avg_req_clength\": 107,\n        \"total_res_clength\": 11777,\n        \"max_res_clength\": 203,\n        \"avg_res_clength\": 101,\n        \"req_rate\": 0.5648589556926583,\n        \"err_rate\": 0.05843368507165431,\n        \"apdex_threshold\": 25,\n        \"apdex_satisfied\": 32,\n        \"apdex_tolerated\": 71,\n        \"apdex_score\": 0.5818965517241379\n      }\n    },\n    \"/v2/pet/findByStatus\": {\n      \"GET\": {\n        \"requests\": 119,\n        \"responses\": 119,\n        \"errors\": 15,\n        \"info\": 0,\n        \"success\": 104,\n        \"redirect\": 0,\n        \"client_error\": 12,\n        \"server_error\": 3,\n        \"total_time\": 6716,\n        \"max_time\": 100,\n        \"avg_time\": 56.436974789915965,\n        \"total_req_clength\": 0,\n        \"max_req_clength\": 0,\n        \"avg_req_clength\": 0,\n        \"total_res_clength\": 11860,\n        \"max_res_clength\": 203,\n        \"avg_res_clength\": 99,\n        \"req_rate\": 0.5794673769605719,\n        \"err_rate\": 0.07304210633956788,\n        \"apdex_threshold\": 25,\n        \"apdex_satisfied\": 18,\n        \"apdex_tolerated\": 86,\n        \"apdex_score\": 0.5126050420168067\n      }\n    },\n    \"/v2/pet/findByTags\": {\n      \"GET\": {\n        \"requests\": 116,\n        \"responses\": 116,\n        \"errors\": 12,\n        \"info\": 0,\n        \"success\": 104,\n        \"redirect\": 0,\n        \"client_error\": 10,\n        \"server_error\": 2,\n        \"total_time\": 6412,\n        \"max_time\": 101,\n        \"avg_time\": 55.275862068965516,\n        \"total_req_clength\": 0,\n        \"max_req_clength\": 0,\n        \"avg_req_clength\": 0,\n        \"total_res_clength\": 12530,\n        \"max_res_clength\": 201,\n        \"avg_res_clength\": 108,\n        \"req_rate\": 0.5648589556926583,\n        \"err_rate\": 0.05843368507165431,\n        \"apdex_threshold\": 25,\n        \"apdex_satisfied\": 20,\n        \"apdex_tolerated\": 83,\n        \"apdex_score\": 0.5301724137931034\n      }\n    },\n    \"/v2/pet/{petId}\": {\n      \"GET\": {\n        \"requests\": 114,\n        \"responses\": 114,\n        \"errors\": 16,\n        \"info\": 0,\n        \"success\": 98,\n        \"redirect\": 0,\n        \"client_error\": 9,\n        \"server_error\": 7,\n        \"total_time\": 5997,\n        \"max_time\": 101,\n        \"avg_time\": 52.60526315789474,\n        \"total_req_clength\": 0,\n        \"max_req_clength\": 0,\n        \"avg_req_clength\": 0,\n        \"total_res_clength\": 12009,\n        \"max_res_clength\": 202,\n        \"avg_res_clength\": 105,\n        \"req_rate\": 0.5551200081807159,\n        \"err_rate\": 0.07791158009553908,\n        \"apdex_threshold\": 25,\n        \"apdex_satisfied\": 26,\n        \"apdex_tolerated\": 71,\n        \"apdex_score\": 0.5394736842105263\n      },\n      \"POST\": {\n        \"requests\": 113,\n        \"responses\": 113,\n        \"errors\": 11,\n        \"info\": 0,\n        \"success\": 102,\n        \"redirect\": 0,\n        \"client_error\": 6,\n        \"server_error\": 5,\n        \"total_time\": 5768,\n        \"max_time\": 100,\n        \"avg_time\": 51.04424778761062,\n        \"total_req_clength\": 12302,\n        \"max_req_clength\": 210,\n        \"avg_req_clength\": 108,\n        \"total_res_clength\": 12516,\n        \"max_res_clength\": 203,\n        \"avg_res_clength\": 110,\n        \"req_rate\": 0.5502505344247447,\n        \"err_rate\": 0.05356421131568312,\n        \"apdex_threshold\": 25,\n        \"apdex_satisfied\": 21,\n        \"apdex_tolerated\": 81,\n        \"apdex_score\": 0.5442477876106194\n      },\n      \"DELETE\": {\n        \"requests\": 111,\n        \"responses\": 111,\n        \"errors\": 16,\n        \"info\": 0,\n        \"success\": 95,\n        \"redirect\": 0,\n        \"client_error\": 14,\n        \"server_error\": 2,\n        \"total_time\": 5477,\n        \"max_time\": 101,\n        \"avg_time\": 49.34234234234234,\n        \"total_req_clength\": 0,\n        \"max_req_clength\": 0,\n        \"avg_req_clength\": 0,\n        \"total_res_clength\": 10790,\n        \"max_res_clength\": 201,\n        \"avg_res_clength\": 97,\n        \"req_rate\": 0.5405115869128023,\n        \"err_rate\": 0.07791158009553908,\n        \"apdex_threshold\": 25,\n        \"apdex_satisfied\": 21,\n        \"apdex_tolerated\": 73,\n        \"apdex_score\": 0.5180180180180181\n      }\n    },\n    \"/v2/pet/{petId}/uploadImage\": {\n      \"POST\": {\n        \"requests\": 122,\n        \"responses\": 122,\n        \"errors\": 12,\n        \"info\": 0,\n        \"success\": 110,\n        \"redirect\": 0,\n        \"client_error\": 10,\n        \"server_error\": 2,\n        \"total_time\": 5714,\n        \"max_time\": 99,\n        \"avg_time\": 46.83606557377049,\n        \"total_req_clength\": 14007,\n        \"max_req_clength\": 210,\n        \"avg_req_clength\": 114,\n        \"total_res_clength\": 12753,\n        \"max_res_clength\": 201,\n        \"avg_res_clength\": 104,\n        \"req_rate\": 0.5940757982284854,\n        \"err_rate\": 0.05843368507165431,\n        \"apdex_threshold\": 25,\n        \"apdex_satisfied\": 31,\n        \"apdex_tolerated\": 79,\n        \"apdex_score\": 0.5778688524590164\n      }\n    },\n    \"/v2/store/inventory\": {\n      \"GET\": {\n        \"requests\": 100,\n        \"responses\": 100,\n        \"errors\": 16,\n        \"info\": 0,\n        \"success\": 84,\n        \"redirect\": 0,\n        \"client_error\": 11,\n        \"server_error\": 5,\n        \"total_time\": 5166,\n        \"max_time\": 100,\n        \"avg_time\": 51.66,\n        \"total_req_clength\": 0,\n        \"max_req_clength\": 0,\n        \"avg_req_clength\": 0,\n        \"total_res_clength\": 9600,\n        \"max_res_clength\": 202,\n        \"avg_res_clength\": 96,\n        \"req_rate\": 0.48694737559711926,\n        \"err_rate\": 0.07791158009553908,\n        \"apdex_threshold\": 25,\n        \"apdex_satisfied\": 23,\n        \"apdex_tolerated\": 61,\n        \"apdex_score\": 0.535\n      }\n    },\n    \"/v2/store/order\": {\n      \"POST\": {\n        \"requests\": 107,\n        \"responses\": 107,\n        \"errors\": 15,\n        \"info\": 0,\n        \"success\": 92,\n        \"redirect\": 0,\n        \"client_error\": 7,\n        \"server_error\": 8,\n        \"total_time\": 5302,\n        \"max_time\": 98,\n        \"avg_time\": 49.55140186915888,\n        \"total_req_clength\": 12968,\n        \"max_req_clength\": 208,\n        \"avg_req_clength\": 121,\n        \"total_res_clength\": 10589,\n        \"max_res_clength\": 201,\n        \"avg_res_clength\": 98,\n        \"req_rate\": 0.5210336918889176,\n        \"err_rate\": 0.07304210633956788,\n        \"apdex_threshold\": 25,\n        \"apdex_satisfied\": 24,\n        \"apdex_tolerated\": 68,\n        \"apdex_score\": 0.5420560747663551\n      }\n    },\n    \"/v2/store/order/{orderId}\": {\n      \"GET\": {\n        \"requests\": 110,\n        \"responses\": 110,\n        \"errors\": 9,\n        \"info\": 0,\n        \"success\": 101,\n        \"redirect\": 0,\n        \"client_error\": 8,\n        \"server_error\": 1,\n        \"total_time\": 5054,\n        \"max_time\": 101,\n        \"avg_time\": 45.945454545454545,\n        \"total_req_clength\": 0,\n        \"max_req_clength\": 0,\n        \"avg_req_clength\": 0,\n        \"total_res_clength\": 11548,\n        \"max_res_clength\": 203,\n        \"avg_res_clength\": 104,\n        \"req_rate\": 0.5356421131568312,\n        \"err_rate\": 0.04382526380374073,\n        \"apdex_threshold\": 25,\n        \"apdex_satisfied\": 26,\n        \"apdex_tolerated\": 74,\n        \"apdex_score\": 0.5727272727272728\n      },\n      \"DELETE\": {\n        \"requests\": 119,\n        \"responses\": 119,\n        \"errors\": 14,\n        \"info\": 0,\n        \"success\": 105,\n        \"redirect\": 0,\n        \"client_error\": 10,\n        \"server_error\": 4,\n        \"total_time\": 5792,\n        \"max_time\": 99,\n        \"avg_time\": 48.67226890756302,\n        \"total_req_clength\": 0,\n        \"max_req_clength\": 0,\n        \"avg_req_clength\": 0,\n        \"total_res_clength\": 13335,\n        \"max_res_clength\": 203,\n        \"avg_res_clength\": 112,\n        \"req_rate\": 0.5794673769605719,\n        \"err_rate\": 0.0681726325835967,\n        \"apdex_threshold\": 25,\n        \"apdex_satisfied\": 30,\n        \"apdex_tolerated\": 75,\n        \"apdex_score\": 0.5672268907563025\n      }\n    },\n    \"/v2/user\": {\n      \"POST\": {\n        \"requests\": 120,\n        \"responses\": 120,\n        \"errors\": 15,\n        \"info\": 0,\n        \"success\": 105,\n        \"redirect\": 0,\n        \"client_error\": 13,\n        \"server_error\": 2,\n        \"total_time\": 5876,\n        \"max_time\": 101,\n        \"avg_time\": 48.96666666666667,\n        \"total_req_clength\": 13878,\n        \"max_req_clength\": 210,\n        \"avg_req_clength\": 115,\n        \"total_res_clength\": 13716,\n        \"max_res_clength\": 203,\n        \"avg_res_clength\": 114,\n        \"req_rate\": 0.5843368507165431,\n        \"err_rate\": 0.07304210633956788,\n        \"apdex_threshold\": 25,\n        \"apdex_satisfied\": 24,\n        \"apdex_tolerated\": 80,\n        \"apdex_score\": 0.5333333333333333\n      }\n    },\n    \"/v2/user/createWithArray\": {\n      \"POST\": {\n        \"requests\": 104,\n        \"responses\": 104,\n        \"errors\": 11,\n        \"info\": 0,\n        \"success\": 93,\n        \"redirect\": 0,\n        \"client_error\": 8,\n        \"server_error\": 3,\n        \"total_time\": 5149,\n        \"max_time\": 100,\n        \"avg_time\": 49.50961538461539,\n        \"total_req_clength\": 11446,\n        \"max_req_clength\": 208,\n        \"avg_req_clength\": 110,\n        \"total_res_clength\": 11957,\n        \"max_res_clength\": 203,\n        \"avg_res_clength\": 114,\n        \"req_rate\": 0.5064252706210041,\n        \"err_rate\": 0.05356421131568312,\n        \"apdex_threshold\": 25,\n        \"apdex_satisfied\": 29,\n        \"apdex_tolerated\": 64,\n        \"apdex_score\": 0.5865384615384616\n      }\n    },\n    \"/v2/user/createWithList\": {\n      \"POST\": {\n        \"requests\": 114,\n        \"responses\": 114,\n        \"errors\": 14,\n        \"info\": 0,\n        \"success\": 100,\n        \"redirect\": 0,\n        \"client_error\": 11,\n        \"server_error\": 3,\n        \"total_time\": 5949,\n        \"max_time\": 97,\n        \"avg_time\": 52.18421052631579,\n        \"total_req_clength\": 12257,\n        \"max_req_clength\": 210,\n        \"avg_req_clength\": 107,\n        \"total_res_clength\": 12477,\n        \"max_res_clength\": 202,\n        \"avg_res_clength\": 109,\n        \"req_rate\": 0.5551200081807159,\n        \"err_rate\": 0.0681726325835967,\n        \"apdex_threshold\": 25,\n        \"apdex_satisfied\": 22,\n        \"apdex_tolerated\": 78,\n        \"apdex_score\": 0.5350877192982456\n      }\n    },\n    \"/v2/user/login\": {\n      \"GET\": {\n        \"requests\": 111,\n        \"responses\": 111,\n        \"errors\": 12,\n        \"info\": 0,\n        \"success\": 99,\n        \"redirect\": 0,\n        \"client_error\": 8,\n        \"server_error\": 4,\n        \"total_time\": 5295,\n        \"max_time\": 100,\n        \"avg_time\": 47.7027027027027,\n        \"total_req_clength\": 0,\n        \"max_req_clength\": 0,\n        \"avg_req_clength\": 0,\n        \"total_res_clength\": 12515,\n        \"max_res_clength\": 203,\n        \"avg_res_clength\": 112,\n        \"req_rate\": 0.5405115869128023,\n        \"err_rate\": 0.05843368507165431,\n        \"apdex_threshold\": 25,\n        \"apdex_satisfied\": 26,\n        \"apdex_tolerated\": 73,\n        \"apdex_score\": 0.5630630630630631\n      }\n    },\n    \"/v2/user/logout\": {\n      \"GET\": {\n        \"requests\": 113,\n        \"responses\": 113,\n        \"errors\": 7,\n        \"info\": 0,\n        \"success\": 106,\n        \"redirect\": 0,\n        \"client_error\": 5,\n        \"server_error\": 2,\n        \"total_time\": 5795,\n        \"max_time\": 102,\n        \"avg_time\": 51.283185840707965,\n        \"total_req_clength\": 0,\n        \"max_req_clength\": 0,\n        \"avg_req_clength\": 0,\n        \"total_res_clength\": 13021,\n        \"max_res_clength\": 203,\n        \"avg_res_clength\": 115,\n        \"req_rate\": 0.5502505344247447,\n        \"err_rate\": 0.03408631629179835,\n        \"apdex_threshold\": 25,\n        \"apdex_satisfied\": 23,\n        \"apdex_tolerated\": 83,\n        \"apdex_score\": 0.5707964601769911\n      }\n    },\n    \"/v2/user/{username}\": {\n      \"GET\": {\n        \"requests\": 112,\n        \"responses\": 112,\n        \"errors\": 16,\n        \"info\": 0,\n        \"success\": 96,\n        \"redirect\": 0,\n        \"client_error\": 10,\n        \"server_error\": 6,\n        \"total_time\": 5814,\n        \"max_time\": 99,\n        \"avg_time\": 51.910714285714285,\n        \"total_req_clength\": 0,\n        \"max_req_clength\": 0,\n        \"avg_req_clength\": 0,\n        \"total_res_clength\": 10691,\n        \"max_res_clength\": 201,\n        \"avg_res_clength\": 95,\n        \"req_rate\": 0.5453810606687736,\n        \"err_rate\": 0.07304210633956788,\n        \"apdex_threshold\": 25,\n        \"apdex_satisfied\": 20,\n        \"apdex_tolerated\": 76,\n        \"apdex_score\": 0.5178571428571429\n      },\n      \"PUT\": {\n        \"requests\": 108,\n        \"responses\": 108,\n        \"errors\": 10,\n        \"info\": 0,\n        \"success\": 98,\n        \"redirect\": 0,\n        \"client_error\": 9,\n        \"server_error\": 1,\n        \"total_time\": 5792,\n        \"max_time\": 99,\n        \"avg_time\": 53.629629629629626,\n        \"total_req_clength\": 11986,\n        \"max_req_clength\": 207,\n        \"avg_req_clength\": 110,\n        \"total_res_clength\": 11715,\n        \"max_res_clength\": 202,\n        \"avg_res_clength\": 108,\n        \"req_rate\": 0.5259031656448888,\n        \"err_rate\": 0.048694737559711924,\n        \"apdex_threshold\": 25,\n        \"apdex_satisfied\": 21,\n        \"apdex_tolerated\": 77,\n        \"apdex_score\": 0.5509259259259259\n      },\n      \"DELETE\": {\n        \"requests\": 114,\n        \"responses\": 114,\n        \"errors\": 13,\n        \"info\": 0,\n        \"success\": 101,\n        \"redirect\": 0,\n        \"client_error\": 8,\n        \"server_error\": 5,\n        \"total_time\": 6311,\n        \"max_time\": 100,\n        \"avg_time\": 55.35964912280702,\n        \"total_req_clength\": 0,\n        \"max_req_clength\": 0,\n        \"avg_req_clength\": 0,\n        \"total_res_clength\": 12074,\n        \"max_res_clength\": 202,\n        \"avg_res_clength\": 105,\n        \"req_rate\": 0.5551200081807159,\n        \"err_rate\": 0.06330315882762551,\n        \"apdex_threshold\": 25,\n        \"apdex_satisfied\": 18,\n        \"apdex_tolerated\": 83,\n        \"apdex_score\": 0.5219298245614035\n      }\n    },\n    \"/pets\": {\n      \"GET\": {\n        \"requests\": 49,\n        \"responses\": 49,\n        \"errors\": 6,\n        \"info\": 0,\n        \"success\": 43,\n        \"redirect\": 0,\n        \"client_error\": 5,\n        \"server_error\": 1,\n        \"total_time\": 2277,\n        \"max_time\": 111,\n        \"avg_time\": 46.46938775510204,\n        \"total_req_clength\": 0,\n        \"max_req_clength\": 0,\n        \"avg_req_clength\": 0,\n        \"total_res_clength\": 4831,\n        \"max_res_clength\": 195,\n        \"avg_res_clength\": 98,\n        \"req_rate\": 0.23860421404258844,\n        \"err_rate\": 0.029216842535827153,\n        \"apdex_threshold\": 25,\n        \"apdex_satisfied\": 14,\n        \"apdex_tolerated\": 28,\n        \"apdex_score\": 0.5714285714285714\n      },\n      \"POST\": {\n        \"requests\": 48,\n        \"responses\": 48,\n        \"errors\": 5,\n        \"info\": 0,\n        \"success\": 43,\n        \"redirect\": 0,\n        \"client_error\": 4,\n        \"server_error\": 1,\n        \"total_time\": 2424,\n        \"max_time\": 99,\n        \"avg_time\": 50.5,\n        \"total_req_clength\": 5144,\n        \"max_req_clength\": 204,\n        \"avg_req_clength\": 107,\n        \"total_res_clength\": 5319,\n        \"max_res_clength\": 202,\n        \"avg_res_clength\": 110,\n        \"req_rate\": 0.23373474028661723,\n        \"err_rate\": 0.024347368779855962,\n        \"apdex_threshold\": 25,\n        \"apdex_satisfied\": 8,\n        \"apdex_tolerated\": 35,\n        \"apdex_score\": 0.53125\n      }\n    },\n    \"/pets/abcde\": {\n      \"DELETE\": {\n        \"requests\": 60,\n        \"responses\": 60,\n        \"errors\": 10,\n        \"info\": 0,\n        \"success\": 50,\n        \"redirect\": 0,\n        \"client_error\": 8,\n        \"server_error\": 2,\n        \"total_time\": 3100,\n        \"max_time\": 101,\n        \"avg_time\": 51.666666666666664,\n        \"total_req_clength\": 0,\n        \"max_req_clength\": 0,\n        \"avg_req_clength\": 0,\n        \"total_res_clength\": 6082,\n        \"max_res_clength\": 186,\n        \"avg_res_clength\": 101,\n        \"req_rate\": 0.29216842535827153,\n        \"err_rate\": 0.048694737559711924,\n        \"apdex_threshold\": 25,\n        \"apdex_satisfied\": 11,\n        \"apdex_tolerated\": 38,\n        \"apdex_score\": 0.5\n      },\n      \"GET\": {\n        \"requests\": 50,\n        \"responses\": 50,\n        \"errors\": 2,\n        \"info\": 0,\n        \"success\": 48,\n        \"redirect\": 0,\n        \"client_error\": 2,\n        \"server_error\": 0,\n        \"total_time\": 2692,\n        \"max_time\": 99,\n        \"avg_time\": 53.84,\n        \"total_req_clength\": 0,\n        \"max_req_clength\": 0,\n        \"avg_req_clength\": 0,\n        \"total_res_clength\": 5118,\n        \"max_res_clength\": 203,\n        \"avg_res_clength\": 102,\n        \"req_rate\": 0.24347368779855963,\n        \"err_rate\": 0.009738947511942386,\n        \"apdex_threshold\": 25,\n        \"apdex_satisfied\": 11,\n        \"apdex_tolerated\": 37,\n        \"apdex_score\": 0.59\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "src/data/apioperation.json",
    "content": "{\n  \"startts\": 1588045302159,\n  \"all\": {\n    \"requests\": 55827,\n    \"responses\": 55827,\n    \"errors\": 5998,\n    \"info\": 0,\n    \"success\": 49829,\n    \"redirect\": 0,\n    \"client_error\": 3994,\n    \"server_error\": 2004,\n    \"total_time\": 2844745,\n    \"max_time\": 211,\n    \"avg_time\": 50.956436849553086,\n    \"total_req_clength\": 2760192,\n    \"max_req_clength\": 210,\n    \"avg_req_clength\": 49,\n    \"total_res_clength\": 5786238,\n    \"max_res_clength\": 203,\n    \"avg_res_clength\": 103,\n    \"req_rate\": 23.541789660116386,\n    \"err_rate\": 2.5293075820190603,\n    \"apdex_threshold\": 25,\n    \"apdex_satisfied\": 12278,\n    \"apdex_tolerated\": 37332,\n    \"apdex_score\": 0.5542837695022121\n  },\n  \"egress\": {\n    \"requests\": 0,\n    \"responses\": 0,\n    \"errors\": 0,\n    \"info\": 0,\n    \"success\": 0,\n    \"redirect\": 0,\n    \"client_error\": 0,\n    \"server_error\": 0,\n    \"total_time\": 0,\n    \"max_time\": 0,\n    \"avg_time\": 0,\n    \"total_req_clength\": 0,\n    \"max_req_clength\": 0,\n    \"avg_req_clength\": 0,\n    \"total_res_clength\": 0,\n    \"max_res_clength\": 0,\n    \"avg_res_clength\": 0,\n    \"req_rate\": 0,\n    \"err_rate\": 0,\n    \"apdex_threshold\": 25,\n    \"apdex_satisfied\": 0,\n    \"apdex_tolerated\": 0,\n    \"apdex_score\": 0\n  },\n  \"sys\": {\n    \"rss\": 49631232,\n    \"heapTotal\": 26808320,\n    \"heapUsed\": 19504832,\n    \"external\": 1397813,\n    \"cpu\": 4.595193432265044,\n    \"lag\": 0.092901,\n    \"maxlag\": 4.560799\n  },\n  \"name\": \"swagger-stats-spectest\",\n  \"version\": \"0.95.16\",\n  \"hostname\": \"hostname\",\n  \"ip\": \"127.0.0.1\",\n  \"apdexThreshold\": 25,\n  \"apiop\": {\n    \"/v2/pet/{petId}/uploadImage\": {\n      \"POST\": {\n        \"defs\": {\n          \"swagger\": true,\n          \"deprecated\": false,\n          \"description\": \"\",\n          \"operationId\": \"uploadFile\",\n          \"summary\": \"uploads an image\",\n          \"tags\": [\n            \"pet\"\n          ]\n        },\n        \"stats\": {\n          \"requests\": 2694,\n          \"responses\": 2694,\n          \"errors\": 283,\n          \"info\": 0,\n          \"success\": 2411,\n          \"redirect\": 0,\n          \"client_error\": 186,\n          \"server_error\": 97,\n          \"total_time\": 137397,\n          \"max_time\": 126,\n          \"avg_time\": 51.001113585746104,\n          \"total_req_clength\": 294790,\n          \"max_req_clength\": 210,\n          \"avg_req_clength\": 109,\n          \"total_res_clength\": 275845,\n          \"max_res_clength\": 203,\n          \"avg_res_clength\": 102,\n          \"req_rate\": 1.136037783587754,\n          \"err_rate\": 0.11933878721430378,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 589,\n          \"apdex_tolerated\": 1808,\n          \"apdex_score\": 0.5541945063103192\n        },\n        \"details\": {\n          \"duration\": {\n            \"count\": 2694,\n            \"buckets\": [\n              10,\n              25,\n              50,\n              100,\n              200\n            ],\n            \"values\": [\n              275,\n              377,\n              679,\n              1349,\n              14,\n              0\n            ]\n          },\n          \"req_size\": {\n            \"count\": 2694,\n            \"buckets\": [\n              10,\n              25,\n              50,\n              100,\n              200\n            ],\n            \"values\": [\n              0,\n              218,\n              336,\n              648,\n              1388,\n              104\n            ]\n          },\n          \"res_size\": {\n            \"count\": 2694,\n            \"buckets\": [\n              10,\n              25,\n              50,\n              100,\n              200\n            ],\n            \"values\": [\n              97,\n              204,\n              352,\n              684,\n              1318,\n              39\n            ]\n          },\n          \"code\": {\n            \"200\": {\n              \"count\": 2411\n            },\n            \"401\": {\n              \"count\": 44\n            },\n            \"404\": {\n              \"count\": 142\n            },\n            \"500\": {\n              \"count\": 55\n            },\n            \"501\": {\n              \"count\": 42\n            }\n          },\n          \"parameters\": {\n            \"petId\": {\n              \"name\": \"petId\",\n              \"in\": \"path\",\n              \"description\": \"ID of pet to update\",\n              \"required\": true,\n              \"type\": \"integer\",\n              \"format\": \"int64\",\n              \"hits\": 2694,\n              \"misses\": 0\n            },\n            \"additionalMetadata\": {\n              \"name\": \"additionalMetadata\",\n              \"in\": \"formData\",\n              \"description\": \"Additional data to pass to server\",\n              \"required\": false,\n              \"type\": \"string\",\n              \"hits\": 0,\n              \"misses\": 0\n            },\n            \"file\": {\n              \"name\": \"file\",\n              \"in\": \"formData\",\n              \"description\": \"file to upload\",\n              \"required\": false,\n              \"type\": \"file\",\n              \"hits\": 0,\n              \"misses\": 0\n            }\n          }\n        }\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "src/data/errors.json",
    "content": "{\n  \"startts\": 1588092850475,\n  \"all\": {\n    \"requests\": 13204,\n    \"responses\": 13204,\n    \"errors\": 1402,\n    \"info\": 0,\n    \"success\": 11802,\n    \"redirect\": 0,\n    \"client_error\": 915,\n    \"server_error\": 487,\n    \"total_time\": 665490,\n    \"max_time\": 102,\n    \"avg_time\": 50.40063617085732,\n    \"total_req_clength\": 638059,\n    \"max_req_clength\": 210,\n    \"avg_req_clength\": 48,\n    \"total_res_clength\": 1363690,\n    \"max_res_clength\": 203,\n    \"avg_res_clength\": 103,\n    \"req_rate\": 24.924164774325313,\n    \"err_rate\": 2.64644645664981,\n    \"apdex_threshold\": 25,\n    \"apdex_satisfied\": 2944,\n    \"apdex_tolerated\": 8854,\n    \"apdex_score\": 0.5582399272947591\n  },\n  \"egress\": {\n    \"requests\": 0,\n    \"responses\": 0,\n    \"errors\": 0,\n    \"info\": 0,\n    \"success\": 0,\n    \"redirect\": 0,\n    \"client_error\": 0,\n    \"server_error\": 0,\n    \"total_time\": 0,\n    \"max_time\": 0,\n    \"avg_time\": 0,\n    \"total_req_clength\": 0,\n    \"max_req_clength\": 0,\n    \"avg_req_clength\": 0,\n    \"total_res_clength\": 0,\n    \"max_res_clength\": 0,\n    \"avg_res_clength\": 0,\n    \"req_rate\": 0,\n    \"err_rate\": 0,\n    \"apdex_threshold\": 25,\n    \"apdex_satisfied\": 0,\n    \"apdex_tolerated\": 0,\n    \"apdex_score\": 0\n  },\n  \"sys\": {\n    \"rss\": 61698048,\n    \"heapTotal\": 24158208,\n    \"heapUsed\": 19610016,\n    \"external\": 1576443,\n    \"cpu\": 2.132010624706579,\n    \"lag\": 0.103182,\n    \"maxlag\": 6.058928\n  },\n  \"name\": \"swagger-stats-spectest\",\n  \"version\": \"0.95.17\",\n  \"hostname\": \"hostname\",\n  \"ip\": \"127.0.0.1\",\n  \"apdexThreshold\": 25,\n  \"timeline\": {\n    \"settings\": {\n      \"bucket_duration\": 1000,\n      \"bucket_current\": 1588093380,\n      \"length\": 60\n    },\n    \"data\": {\n      \"1588093321\": {\n        \"stats\": {\n          \"requests\": 29,\n          \"responses\": 29,\n          \"errors\": 3,\n          \"info\": 0,\n          \"success\": 26,\n          \"redirect\": 0,\n          \"client_error\": 0,\n          \"server_error\": 3,\n          \"total_time\": 1663,\n          \"max_time\": 97,\n          \"avg_time\": 57.3448275862069,\n          \"total_req_clength\": 1108,\n          \"max_req_clength\": 190,\n          \"avg_req_clength\": 38,\n          \"total_res_clength\": 2544,\n          \"max_res_clength\": 193,\n          \"avg_res_clength\": 87,\n          \"req_rate\": 29,\n          \"err_rate\": 3,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 4,\n          \"apdex_tolerated\": 22,\n          \"apdex_score\": 0.5172413793103449\n        },\n        \"sys\": {\n          \"rss\": 73629696,\n          \"heapTotal\": 36741120,\n          \"heapUsed\": 22383060,\n          \"external\": 1927509,\n          \"cpu\": 3.1899242839189688,\n          \"lag\": 0.129841\n        }\n      },\n      \"1588093322\": {\n        \"stats\": {\n          \"requests\": 22,\n          \"responses\": 22,\n          \"errors\": 3,\n          \"info\": 0,\n          \"success\": 19,\n          \"redirect\": 0,\n          \"client_error\": 3,\n          \"server_error\": 0,\n          \"total_time\": 1147,\n          \"max_time\": 94,\n          \"avg_time\": 52.13636363636363,\n          \"total_req_clength\": 1269,\n          \"max_req_clength\": 188,\n          \"avg_req_clength\": 57,\n          \"total_res_clength\": 2749,\n          \"max_res_clength\": 195,\n          \"avg_res_clength\": 124,\n          \"req_rate\": 22,\n          \"err_rate\": 3,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 3,\n          \"apdex_tolerated\": 16,\n          \"apdex_score\": 0.5\n        },\n        \"sys\": {\n          \"rss\": 73764864,\n          \"heapTotal\": 36741120,\n          \"heapUsed\": 19172033,\n          \"external\": 1503999,\n          \"cpu\": 2.8256244349538524,\n          \"lag\": 0.04654\n        }\n      },\n      \"1588093323\": {\n        \"stats\": {\n          \"requests\": 28,\n          \"responses\": 28,\n          \"errors\": 2,\n          \"info\": 0,\n          \"success\": 26,\n          \"redirect\": 0,\n          \"client_error\": 2,\n          \"server_error\": 0,\n          \"total_time\": 1445,\n          \"max_time\": 98,\n          \"avg_time\": 51.607142857142854,\n          \"total_req_clength\": 1676,\n          \"max_req_clength\": 200,\n          \"avg_req_clength\": 59,\n          \"total_res_clength\": 3045,\n          \"max_res_clength\": 193,\n          \"avg_res_clength\": 108,\n          \"req_rate\": 28,\n          \"err_rate\": 2,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 4,\n          \"apdex_tolerated\": 22,\n          \"apdex_score\": 0.5357142857142857\n        },\n        \"sys\": {\n          \"rss\": 73764864,\n          \"heapTotal\": 36741120,\n          \"heapUsed\": 20588233,\n          \"external\": 1639775,\n          \"cpu\": 3.0452411938048027,\n          \"lag\": 0.039472\n        }\n      },\n      \"1588093324\": {\n        \"stats\": {\n          \"requests\": 19,\n          \"responses\": 19,\n          \"errors\": 2,\n          \"info\": 0,\n          \"success\": 17,\n          \"redirect\": 0,\n          \"client_error\": 2,\n          \"server_error\": 0,\n          \"total_time\": 980,\n          \"max_time\": 97,\n          \"avg_time\": 51.578947368421055,\n          \"total_req_clength\": 767,\n          \"max_req_clength\": 153,\n          \"avg_req_clength\": 40,\n          \"total_res_clength\": 1871,\n          \"max_res_clength\": 176,\n          \"avg_res_clength\": 98,\n          \"req_rate\": 19,\n          \"err_rate\": 2,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 4,\n          \"apdex_tolerated\": 13,\n          \"apdex_score\": 0.5526315789473685\n        },\n        \"sys\": {\n          \"rss\": 73764864,\n          \"heapTotal\": 36741120,\n          \"heapUsed\": 21622555,\n          \"external\": 1779088,\n          \"cpu\": 2.2886910278853336,\n          \"lag\": 0.058839\n        }\n      },\n      \"1588093325\": {\n        \"stats\": {\n          \"requests\": 42,\n          \"responses\": 42,\n          \"errors\": 5,\n          \"info\": 0,\n          \"success\": 37,\n          \"redirect\": 0,\n          \"client_error\": 4,\n          \"server_error\": 1,\n          \"total_time\": 2178,\n          \"max_time\": 98,\n          \"avg_time\": 51.857142857142854,\n          \"total_req_clength\": 1648,\n          \"max_req_clength\": 197,\n          \"avg_req_clength\": 39,\n          \"total_res_clength\": 4712,\n          \"max_res_clength\": 198,\n          \"avg_res_clength\": 112,\n          \"req_rate\": 42,\n          \"err_rate\": 5,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 7,\n          \"apdex_tolerated\": 30,\n          \"apdex_score\": 0.5238095238095238\n        },\n        \"sys\": {\n          \"rss\": 73764864,\n          \"heapTotal\": 36741120,\n          \"heapUsed\": 22830306,\n          \"external\": 1917044,\n          \"cpu\": 3.268680452031966,\n          \"lag\": 0.087054\n        }\n      },\n      \"1588093326\": {\n        \"stats\": {\n          \"requests\": 20,\n          \"responses\": 20,\n          \"errors\": 2,\n          \"info\": 0,\n          \"success\": 18,\n          \"redirect\": 0,\n          \"client_error\": 2,\n          \"server_error\": 0,\n          \"total_time\": 903,\n          \"max_time\": 93,\n          \"avg_time\": 45.15,\n          \"total_req_clength\": 1553,\n          \"max_req_clength\": 203,\n          \"avg_req_clength\": 77,\n          \"total_res_clength\": 1917,\n          \"max_res_clength\": 192,\n          \"avg_res_clength\": 95,\n          \"req_rate\": 20,\n          \"err_rate\": 2,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 4,\n          \"apdex_tolerated\": 14,\n          \"apdex_score\": 0.55\n        },\n        \"sys\": {\n          \"rss\": 73764864,\n          \"heapTotal\": 36741120,\n          \"heapUsed\": 24076802,\n          \"external\": 2052014,\n          \"cpu\": 1.626538698068855,\n          \"lag\": 0.036661\n        }\n      },\n      \"1588093327\": {\n        \"stats\": {\n          \"requests\": 23,\n          \"responses\": 23,\n          \"errors\": 2,\n          \"info\": 0,\n          \"success\": 21,\n          \"redirect\": 0,\n          \"client_error\": 0,\n          \"server_error\": 2,\n          \"total_time\": 1170,\n          \"max_time\": 96,\n          \"avg_time\": 50.869565217391305,\n          \"total_req_clength\": 1286,\n          \"max_req_clength\": 206,\n          \"avg_req_clength\": 55,\n          \"total_res_clength\": 2458,\n          \"max_res_clength\": 201,\n          \"avg_res_clength\": 106,\n          \"req_rate\": 23,\n          \"err_rate\": 2,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 6,\n          \"apdex_tolerated\": 15,\n          \"apdex_score\": 0.5869565217391305\n        },\n        \"sys\": {\n          \"rss\": 73764864,\n          \"heapTotal\": 36741120,\n          \"heapUsed\": 25065481,\n          \"external\": 2187041,\n          \"cpu\": 2.560722373167353,\n          \"lag\": 0.036224\n        }\n      },\n      \"1588093328\": {\n        \"stats\": {\n          \"requests\": 26,\n          \"responses\": 26,\n          \"errors\": 2,\n          \"info\": 0,\n          \"success\": 24,\n          \"redirect\": 0,\n          \"client_error\": 2,\n          \"server_error\": 0,\n          \"total_time\": 1495,\n          \"max_time\": 98,\n          \"avg_time\": 57.5,\n          \"total_req_clength\": 720,\n          \"max_req_clength\": 150,\n          \"avg_req_clength\": 27,\n          \"total_res_clength\": 2684,\n          \"max_res_clength\": 193,\n          \"avg_res_clength\": 103,\n          \"req_rate\": 26,\n          \"err_rate\": 2,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 3,\n          \"apdex_tolerated\": 21,\n          \"apdex_score\": 0.5192307692307693\n        },\n        \"sys\": {\n          \"rss\": 73764864,\n          \"heapTotal\": 36741120,\n          \"heapUsed\": 24010981,\n          \"external\": 2049600,\n          \"cpu\": 2.547331916077647,\n          \"lag\": 0.035727\n        }\n      },\n      \"1588093329\": {\n        \"stats\": {\n          \"requests\": 18,\n          \"responses\": 18,\n          \"errors\": 2,\n          \"info\": 0,\n          \"success\": 16,\n          \"redirect\": 0,\n          \"client_error\": 2,\n          \"server_error\": 0,\n          \"total_time\": 1028,\n          \"max_time\": 96,\n          \"avg_time\": 57.111111111111114,\n          \"total_req_clength\": 668,\n          \"max_req_clength\": 189,\n          \"avg_req_clength\": 37,\n          \"total_res_clength\": 1429,\n          \"max_res_clength\": 198,\n          \"avg_res_clength\": 79,\n          \"req_rate\": 18,\n          \"err_rate\": 2,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 4,\n          \"apdex_tolerated\": 12,\n          \"apdex_score\": 0.5555555555555556\n        },\n        \"sys\": {\n          \"rss\": 73764864,\n          \"heapTotal\": 36741120,\n          \"heapUsed\": 19155713,\n          \"external\": 1507257,\n          \"cpu\": 1.884250653120607,\n          \"lag\": 0.038118\n        }\n      },\n      \"1588093330\": {\n        \"stats\": {\n          \"requests\": 32,\n          \"responses\": 32,\n          \"errors\": 4,\n          \"info\": 0,\n          \"success\": 28,\n          \"redirect\": 0,\n          \"client_error\": 3,\n          \"server_error\": 1,\n          \"total_time\": 1620,\n          \"max_time\": 96,\n          \"avg_time\": 50.625,\n          \"total_req_clength\": 1446,\n          \"max_req_clength\": 202,\n          \"avg_req_clength\": 45,\n          \"total_res_clength\": 3350,\n          \"max_res_clength\": 197,\n          \"avg_res_clength\": 104,\n          \"req_rate\": 32,\n          \"err_rate\": 4,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 7,\n          \"apdex_tolerated\": 21,\n          \"apdex_score\": 0.546875\n        },\n        \"sys\": {\n          \"rss\": 73764864,\n          \"heapTotal\": 36741120,\n          \"heapUsed\": 20409071,\n          \"external\": 1645877,\n          \"cpu\": 2.7842863715307264,\n          \"lag\": 0.03864\n        }\n      },\n      \"1588093331\": {\n        \"stats\": {\n          \"requests\": 23,\n          \"responses\": 23,\n          \"errors\": 4,\n          \"info\": 0,\n          \"success\": 19,\n          \"redirect\": 0,\n          \"client_error\": 3,\n          \"server_error\": 1,\n          \"total_time\": 1037,\n          \"max_time\": 98,\n          \"avg_time\": 45.08695652173913,\n          \"total_req_clength\": 1409,\n          \"max_req_clength\": 185,\n          \"avg_req_clength\": 61,\n          \"total_res_clength\": 2607,\n          \"max_res_clength\": 187,\n          \"avg_res_clength\": 113,\n          \"req_rate\": 23,\n          \"err_rate\": 4,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 7,\n          \"apdex_tolerated\": 12,\n          \"apdex_score\": 0.5652173913043478\n        },\n        \"sys\": {\n          \"rss\": 73764864,\n          \"heapTotal\": 36741120,\n          \"heapUsed\": 21669897,\n          \"external\": 1781483,\n          \"cpu\": 2.8659074236269477,\n          \"lag\": 0.036436\n        }\n      },\n      \"1588093332\": {\n        \"stats\": {\n          \"requests\": 35,\n          \"responses\": 35,\n          \"errors\": 2,\n          \"info\": 0,\n          \"success\": 33,\n          \"redirect\": 0,\n          \"client_error\": 2,\n          \"server_error\": 0,\n          \"total_time\": 1593,\n          \"max_time\": 100,\n          \"avg_time\": 45.51428571428571,\n          \"total_req_clength\": 2150,\n          \"max_req_clength\": 208,\n          \"avg_req_clength\": 61,\n          \"total_res_clength\": 3370,\n          \"max_res_clength\": 198,\n          \"avg_res_clength\": 96,\n          \"req_rate\": 35,\n          \"err_rate\": 2,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 6,\n          \"apdex_tolerated\": 27,\n          \"apdex_score\": 0.5571428571428572\n        },\n        \"sys\": {\n          \"rss\": 73764864,\n          \"heapTotal\": 36741120,\n          \"heapUsed\": 22840032,\n          \"external\": 1917040,\n          \"cpu\": 2.4501578253046605,\n          \"lag\": 1.849815\n        }\n      },\n      \"1588093333\": {\n        \"stats\": {\n          \"requests\": 20,\n          \"responses\": 20,\n          \"errors\": 3,\n          \"info\": 0,\n          \"success\": 17,\n          \"redirect\": 0,\n          \"client_error\": 2,\n          \"server_error\": 1,\n          \"total_time\": 1161,\n          \"max_time\": 97,\n          \"avg_time\": 58.05,\n          \"total_req_clength\": 547,\n          \"max_req_clength\": 121,\n          \"avg_req_clength\": 27,\n          \"total_res_clength\": 1897,\n          \"max_res_clength\": 202,\n          \"avg_res_clength\": 94,\n          \"req_rate\": 20,\n          \"err_rate\": 3,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 3,\n          \"apdex_tolerated\": 14,\n          \"apdex_score\": 0.5\n        },\n        \"sys\": {\n          \"rss\": 73764864,\n          \"heapTotal\": 36741120,\n          \"heapUsed\": 24100305,\n          \"external\": 2052019,\n          \"cpu\": 2.0724092824258613,\n          \"lag\": 0.04868\n        }\n      },\n      \"1588093334\": {\n        \"stats\": {\n          \"requests\": 32,\n          \"responses\": 32,\n          \"errors\": 2,\n          \"info\": 0,\n          \"success\": 30,\n          \"redirect\": 0,\n          \"client_error\": 2,\n          \"server_error\": 0,\n          \"total_time\": 1609,\n          \"max_time\": 95,\n          \"avg_time\": 50.28125,\n          \"total_req_clength\": 2023,\n          \"max_req_clength\": 206,\n          \"avg_req_clength\": 63,\n          \"total_res_clength\": 3360,\n          \"max_res_clength\": 203,\n          \"avg_res_clength\": 105,\n          \"req_rate\": 32,\n          \"err_rate\": 2,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 5,\n          \"apdex_tolerated\": 25,\n          \"apdex_score\": 0.546875\n        },\n        \"sys\": {\n          \"rss\": 73764864,\n          \"heapTotal\": 36741120,\n          \"heapUsed\": 25123809,\n          \"external\": 2191189,\n          \"cpu\": 3.0382591291693912,\n          \"lag\": 0.047287\n        }\n      },\n      \"1588093335\": {\n        \"stats\": {\n          \"requests\": 13,\n          \"responses\": 13,\n          \"errors\": 2,\n          \"info\": 0,\n          \"success\": 11,\n          \"redirect\": 0,\n          \"client_error\": 2,\n          \"server_error\": 0,\n          \"total_time\": 727,\n          \"max_time\": 99,\n          \"avg_time\": 55.92307692307692,\n          \"total_req_clength\": 957,\n          \"max_req_clength\": 201,\n          \"avg_req_clength\": 73,\n          \"total_res_clength\": 1600,\n          \"max_res_clength\": 199,\n          \"avg_res_clength\": 123,\n          \"req_rate\": 13,\n          \"err_rate\": 2,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 3,\n          \"apdex_tolerated\": 8,\n          \"apdex_score\": 0.5384615384615384\n        },\n        \"sys\": {\n          \"rss\": 73764864,\n          \"heapTotal\": 36741120,\n          \"heapUsed\": 23966291,\n          \"external\": 2055357,\n          \"cpu\": 1.9254082568642377,\n          \"lag\": 0.038919\n        }\n      },\n      \"1588093336\": {\n        \"stats\": {\n          \"requests\": 24,\n          \"responses\": 24,\n          \"errors\": 2,\n          \"info\": 0,\n          \"success\": 22,\n          \"redirect\": 0,\n          \"client_error\": 1,\n          \"server_error\": 1,\n          \"total_time\": 974,\n          \"max_time\": 88,\n          \"avg_time\": 40.583333333333336,\n          \"total_req_clength\": 1523,\n          \"max_req_clength\": 199,\n          \"avg_req_clength\": 63,\n          \"total_res_clength\": 2300,\n          \"max_res_clength\": 194,\n          \"avg_res_clength\": 95,\n          \"req_rate\": 24,\n          \"err_rate\": 2,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 8,\n          \"apdex_tolerated\": 14,\n          \"apdex_score\": 0.625\n        },\n        \"sys\": {\n          \"rss\": 73764864,\n          \"heapTotal\": 36741120,\n          \"heapUsed\": 19070131,\n          \"external\": 1503755,\n          \"cpu\": 1.9173139808846917,\n          \"lag\": 0.036821\n        }\n      },\n      \"1588093337\": {\n        \"stats\": {\n          \"requests\": 39,\n          \"responses\": 39,\n          \"errors\": 3,\n          \"info\": 0,\n          \"success\": 36,\n          \"redirect\": 0,\n          \"client_error\": 3,\n          \"server_error\": 0,\n          \"total_time\": 1905,\n          \"max_time\": 96,\n          \"avg_time\": 48.84615384615385,\n          \"total_req_clength\": 1436,\n          \"max_req_clength\": 205,\n          \"avg_req_clength\": 36,\n          \"total_res_clength\": 3417,\n          \"max_res_clength\": 201,\n          \"avg_res_clength\": 87,\n          \"req_rate\": 39,\n          \"err_rate\": 3,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 6,\n          \"apdex_tolerated\": 30,\n          \"apdex_score\": 0.5384615384615384\n        },\n        \"sys\": {\n          \"rss\": 73764864,\n          \"heapTotal\": 36741120,\n          \"heapUsed\": 20285478,\n          \"external\": 1638691,\n          \"cpu\": 3.336869587514194,\n          \"lag\": 0.033396\n        }\n      },\n      \"1588093338\": {\n        \"stats\": {\n          \"requests\": 46,\n          \"responses\": 46,\n          \"errors\": 3,\n          \"info\": 0,\n          \"success\": 43,\n          \"redirect\": 0,\n          \"client_error\": 1,\n          \"server_error\": 2,\n          \"total_time\": 2311,\n          \"max_time\": 98,\n          \"avg_time\": 50.23913043478261,\n          \"total_req_clength\": 2324,\n          \"max_req_clength\": 210,\n          \"avg_req_clength\": 50,\n          \"total_res_clength\": 4619,\n          \"max_res_clength\": 201,\n          \"avg_res_clength\": 100,\n          \"req_rate\": 46,\n          \"err_rate\": 3,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 12,\n          \"apdex_tolerated\": 31,\n          \"apdex_score\": 0.5978260869565217\n        },\n        \"sys\": {\n          \"rss\": 73764864,\n          \"heapTotal\": 36741120,\n          \"heapUsed\": 21947137,\n          \"external\": 1774397,\n          \"cpu\": 3.360248067465066,\n          \"lag\": 0.033353\n        }\n      },\n      \"1588093339\": {\n        \"stats\": {\n          \"requests\": 20,\n          \"responses\": 20,\n          \"errors\": 3,\n          \"info\": 0,\n          \"success\": 17,\n          \"redirect\": 0,\n          \"client_error\": 1,\n          \"server_error\": 2,\n          \"total_time\": 1007,\n          \"max_time\": 100,\n          \"avg_time\": 50.35,\n          \"total_req_clength\": 653,\n          \"max_req_clength\": 193,\n          \"avg_req_clength\": 32,\n          \"total_res_clength\": 1956,\n          \"max_res_clength\": 195,\n          \"avg_res_clength\": 97,\n          \"req_rate\": 20,\n          \"err_rate\": 3,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 5,\n          \"apdex_tolerated\": 12,\n          \"apdex_score\": 0.55\n        },\n        \"sys\": {\n          \"rss\": 73764864,\n          \"heapTotal\": 36741120,\n          \"heapUsed\": 23486915,\n          \"external\": 1914570,\n          \"cpu\": 1.847639638563157,\n          \"lag\": 0.030142\n        }\n      },\n      \"1588093340\": {\n        \"stats\": {\n          \"requests\": 28,\n          \"responses\": 28,\n          \"errors\": 6,\n          \"info\": 0,\n          \"success\": 22,\n          \"redirect\": 0,\n          \"client_error\": 2,\n          \"server_error\": 4,\n          \"total_time\": 1271,\n          \"max_time\": 98,\n          \"avg_time\": 45.392857142857146,\n          \"total_req_clength\": 1678,\n          \"max_req_clength\": 204,\n          \"avg_req_clength\": 59,\n          \"total_res_clength\": 3429,\n          \"max_res_clength\": 196,\n          \"avg_res_clength\": 122,\n          \"req_rate\": 28,\n          \"err_rate\": 6,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 7,\n          \"apdex_tolerated\": 15,\n          \"apdex_score\": 0.5178571428571429\n        },\n        \"sys\": {\n          \"rss\": 73764864,\n          \"heapTotal\": 36741120,\n          \"heapUsed\": 24682232,\n          \"external\": 2052453,\n          \"cpu\": 2.9120891618325944,\n          \"lag\": 0.074106\n        }\n      },\n      \"1588093341\": {\n        \"stats\": {\n          \"requests\": 20,\n          \"responses\": 20,\n          \"errors\": 0,\n          \"info\": 0,\n          \"success\": 20,\n          \"redirect\": 0,\n          \"client_error\": 0,\n          \"server_error\": 0,\n          \"total_time\": 1115,\n          \"max_time\": 92,\n          \"avg_time\": 55.75,\n          \"total_req_clength\": 1032,\n          \"max_req_clength\": 206,\n          \"avg_req_clength\": 51,\n          \"total_res_clength\": 2046,\n          \"max_res_clength\": 193,\n          \"avg_res_clength\": 102,\n          \"req_rate\": 20,\n          \"err_rate\": 0,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 3,\n          \"apdex_tolerated\": 17,\n          \"apdex_score\": 0.575\n        },\n        \"sys\": {\n          \"rss\": 73764864,\n          \"heapTotal\": 36741120,\n          \"heapUsed\": 25848675,\n          \"external\": 2187146,\n          \"cpu\": 1.3177733068228523,\n          \"lag\": 0.048135\n        }\n      },\n      \"1588093342\": {\n        \"stats\": {\n          \"requests\": 28,\n          \"responses\": 28,\n          \"errors\": 3,\n          \"info\": 0,\n          \"success\": 25,\n          \"redirect\": 0,\n          \"client_error\": 1,\n          \"server_error\": 2,\n          \"total_time\": 1417,\n          \"max_time\": 100,\n          \"avg_time\": 50.607142857142854,\n          \"total_req_clength\": 1269,\n          \"max_req_clength\": 192,\n          \"avg_req_clength\": 45,\n          \"total_res_clength\": 2869,\n          \"max_res_clength\": 199,\n          \"avg_res_clength\": 102,\n          \"req_rate\": 28,\n          \"err_rate\": 3,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 5,\n          \"apdex_tolerated\": 20,\n          \"apdex_score\": 0.5357142857142857\n        },\n        \"sys\": {\n          \"rss\": 73764864,\n          \"heapTotal\": 36741120,\n          \"heapUsed\": 21168345,\n          \"external\": 1736853,\n          \"cpu\": 2.7638782366151595,\n          \"lag\": 0.06344\n        }\n      },\n      \"1588093343\": {\n        \"stats\": {\n          \"requests\": 35,\n          \"responses\": 35,\n          \"errors\": 4,\n          \"info\": 0,\n          \"success\": 31,\n          \"redirect\": 0,\n          \"client_error\": 1,\n          \"server_error\": 3,\n          \"total_time\": 1872,\n          \"max_time\": 100,\n          \"avg_time\": 53.48571428571429,\n          \"total_req_clength\": 1508,\n          \"max_req_clength\": 204,\n          \"avg_req_clength\": 43,\n          \"total_res_clength\": 3637,\n          \"max_res_clength\": 200,\n          \"avg_res_clength\": 103,\n          \"req_rate\": 35,\n          \"err_rate\": 4,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 9,\n          \"apdex_tolerated\": 22,\n          \"apdex_score\": 0.5714285714285714\n        },\n        \"sys\": {\n          \"rss\": 73764864,\n          \"heapTotal\": 36741120,\n          \"heapUsed\": 20020321,\n          \"external\": 1638044,\n          \"cpu\": 3.717785955130757,\n          \"lag\": 0.038502\n        }\n      },\n      \"1588093344\": {\n        \"stats\": {\n          \"requests\": 22,\n          \"responses\": 22,\n          \"errors\": 6,\n          \"info\": 0,\n          \"success\": 16,\n          \"redirect\": 0,\n          \"client_error\": 3,\n          \"server_error\": 3,\n          \"total_time\": 1096,\n          \"max_time\": 97,\n          \"avg_time\": 49.81818181818182,\n          \"total_req_clength\": 1153,\n          \"max_req_clength\": 207,\n          \"avg_req_clength\": 52,\n          \"total_res_clength\": 2092,\n          \"max_res_clength\": 202,\n          \"avg_res_clength\": 95,\n          \"req_rate\": 22,\n          \"err_rate\": 6,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 5,\n          \"apdex_tolerated\": 11,\n          \"apdex_score\": 0.4772727272727273\n        },\n        \"sys\": {\n          \"rss\": 73764864,\n          \"heapTotal\": 36741120,\n          \"heapUsed\": 21165002,\n          \"external\": 1777152,\n          \"cpu\": 2.8889399104706057,\n          \"lag\": 0.049158\n        }\n      },\n      \"1588093345\": {\n        \"stats\": {\n          \"requests\": 21,\n          \"responses\": 21,\n          \"errors\": 1,\n          \"info\": 0,\n          \"success\": 20,\n          \"redirect\": 0,\n          \"client_error\": 1,\n          \"server_error\": 0,\n          \"total_time\": 912,\n          \"max_time\": 100,\n          \"avg_time\": 43.42857142857143,\n          \"total_req_clength\": 1590,\n          \"max_req_clength\": 171,\n          \"avg_req_clength\": 75,\n          \"total_res_clength\": 2163,\n          \"max_res_clength\": 201,\n          \"avg_res_clength\": 103,\n          \"req_rate\": 21,\n          \"err_rate\": 1,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 8,\n          \"apdex_tolerated\": 12,\n          \"apdex_score\": 0.6666666666666666\n        },\n        \"sys\": {\n          \"rss\": 73764864,\n          \"heapTotal\": 36741120,\n          \"heapUsed\": 22283473,\n          \"external\": 1915431,\n          \"cpu\": 2.341292065973116,\n          \"lag\": 0.066504\n        }\n      },\n      \"1588093346\": {\n        \"stats\": {\n          \"requests\": 34,\n          \"responses\": 34,\n          \"errors\": 5,\n          \"info\": 0,\n          \"success\": 29,\n          \"redirect\": 0,\n          \"client_error\": 2,\n          \"server_error\": 3,\n          \"total_time\": 1648,\n          \"max_time\": 98,\n          \"avg_time\": 48.470588235294116,\n          \"total_req_clength\": 1291,\n          \"max_req_clength\": 188,\n          \"avg_req_clength\": 37,\n          \"total_res_clength\": 3574,\n          \"max_res_clength\": 203,\n          \"avg_res_clength\": 105,\n          \"req_rate\": 34,\n          \"err_rate\": 5,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 8,\n          \"apdex_tolerated\": 21,\n          \"apdex_score\": 0.5441176470588235\n        },\n        \"sys\": {\n          \"rss\": 73764864,\n          \"heapTotal\": 36741120,\n          \"heapUsed\": 23554059,\n          \"external\": 2051246,\n          \"cpu\": 3.3564382028964297,\n          \"lag\": 0.059577\n        }\n      },\n      \"1588093347\": {\n        \"stats\": {\n          \"requests\": 20,\n          \"responses\": 20,\n          \"errors\": 6,\n          \"info\": 0,\n          \"success\": 14,\n          \"redirect\": 0,\n          \"client_error\": 4,\n          \"server_error\": 2,\n          \"total_time\": 981,\n          \"max_time\": 98,\n          \"avg_time\": 49.05,\n          \"total_req_clength\": 850,\n          \"max_req_clength\": 175,\n          \"avg_req_clength\": 42,\n          \"total_res_clength\": 2113,\n          \"max_res_clength\": 191,\n          \"avg_res_clength\": 105,\n          \"req_rate\": 20,\n          \"err_rate\": 6,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 4,\n          \"apdex_tolerated\": 10,\n          \"apdex_score\": 0.45\n        },\n        \"sys\": {\n          \"rss\": 73764864,\n          \"heapTotal\": 36741120,\n          \"heapUsed\": 24648693,\n          \"external\": 2185193,\n          \"cpu\": 2.1327581336197605,\n          \"lag\": 0.043375\n        }\n      },\n      \"1588093348\": {\n        \"stats\": {\n          \"requests\": 21,\n          \"responses\": 21,\n          \"errors\": 4,\n          \"info\": 0,\n          \"success\": 17,\n          \"redirect\": 0,\n          \"client_error\": 4,\n          \"server_error\": 0,\n          \"total_time\": 1026,\n          \"max_time\": 91,\n          \"avg_time\": 48.857142857142854,\n          \"total_req_clength\": 847,\n          \"max_req_clength\": 185,\n          \"avg_req_clength\": 40,\n          \"total_res_clength\": 2492,\n          \"max_res_clength\": 199,\n          \"avg_res_clength\": 118,\n          \"req_rate\": 21,\n          \"err_rate\": 4,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 5,\n          \"apdex_tolerated\": 12,\n          \"apdex_score\": 0.5238095238095238\n        },\n        \"sys\": {\n          \"rss\": 73764864,\n          \"heapTotal\": 36741120,\n          \"heapUsed\": 25608843,\n          \"external\": 2319055,\n          \"cpu\": 1.962467199874005,\n          \"lag\": 0.039406\n        }\n      },\n      \"1588093349\": {\n        \"stats\": {\n          \"requests\": 27,\n          \"responses\": 27,\n          \"errors\": 2,\n          \"info\": 0,\n          \"success\": 25,\n          \"redirect\": 0,\n          \"client_error\": 1,\n          \"server_error\": 1,\n          \"total_time\": 1294,\n          \"max_time\": 99,\n          \"avg_time\": 47.925925925925924,\n          \"total_req_clength\": 1658,\n          \"max_req_clength\": 208,\n          \"avg_req_clength\": 61,\n          \"total_res_clength\": 2576,\n          \"max_res_clength\": 198,\n          \"avg_res_clength\": 95,\n          \"req_rate\": 27,\n          \"err_rate\": 2,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 8,\n          \"apdex_tolerated\": 17,\n          \"apdex_score\": 0.6111111111111112\n        },\n        \"sys\": {\n          \"rss\": 73764864,\n          \"heapTotal\": 36741120,\n          \"heapUsed\": 23215480,\n          \"external\": 1990562,\n          \"cpu\": 2.156275637836824,\n          \"lag\": 0.038102\n        }\n      },\n      \"1588093350\": {\n        \"stats\": {\n          \"requests\": 28,\n          \"responses\": 28,\n          \"errors\": 5,\n          \"info\": 0,\n          \"success\": 23,\n          \"redirect\": 0,\n          \"client_error\": 5,\n          \"server_error\": 0,\n          \"total_time\": 1429,\n          \"max_time\": 99,\n          \"avg_time\": 51.035714285714285,\n          \"total_req_clength\": 1249,\n          \"max_req_clength\": 193,\n          \"avg_req_clength\": 44,\n          \"total_res_clength\": 3082,\n          \"max_res_clength\": 195,\n          \"avg_res_clength\": 110,\n          \"req_rate\": 28,\n          \"err_rate\": 5,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 4,\n          \"apdex_tolerated\": 19,\n          \"apdex_score\": 0.48214285714285715\n        },\n        \"sys\": {\n          \"rss\": 73764864,\n          \"heapTotal\": 36741120,\n          \"heapUsed\": 19952813,\n          \"external\": 1506251,\n          \"cpu\": 2.7071640829954027,\n          \"lag\": 0.035514\n        }\n      },\n      \"1588093351\": {\n        \"stats\": {\n          \"requests\": 28,\n          \"responses\": 28,\n          \"errors\": 2,\n          \"info\": 0,\n          \"success\": 26,\n          \"redirect\": 0,\n          \"client_error\": 1,\n          \"server_error\": 1,\n          \"total_time\": 1270,\n          \"max_time\": 93,\n          \"avg_time\": 45.357142857142854,\n          \"total_req_clength\": 1763,\n          \"max_req_clength\": 200,\n          \"avg_req_clength\": 62,\n          \"total_res_clength\": 2487,\n          \"max_res_clength\": 197,\n          \"avg_res_clength\": 88,\n          \"req_rate\": 28,\n          \"err_rate\": 2,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 9,\n          \"apdex_tolerated\": 17,\n          \"apdex_score\": 0.625\n        },\n        \"sys\": {\n          \"rss\": 73764864,\n          \"heapTotal\": 36741120,\n          \"heapUsed\": 21057538,\n          \"external\": 1641335,\n          \"cpu\": 1.4879636535971372,\n          \"lag\": 0.028411\n        }\n      },\n      \"1588093352\": {\n        \"stats\": {\n          \"requests\": 24,\n          \"responses\": 24,\n          \"errors\": 3,\n          \"info\": 0,\n          \"success\": 21,\n          \"redirect\": 0,\n          \"client_error\": 1,\n          \"server_error\": 2,\n          \"total_time\": 1199,\n          \"max_time\": 98,\n          \"avg_time\": 49.958333333333336,\n          \"total_req_clength\": 787,\n          \"max_req_clength\": 142,\n          \"avg_req_clength\": 32,\n          \"total_res_clength\": 2383,\n          \"max_res_clength\": 174,\n          \"avg_res_clength\": 99,\n          \"req_rate\": 24,\n          \"err_rate\": 3,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 6,\n          \"apdex_tolerated\": 15,\n          \"apdex_score\": 0.5625\n        },\n        \"sys\": {\n          \"rss\": 73764864,\n          \"heapTotal\": 36741120,\n          \"heapUsed\": 22227298,\n          \"external\": 1776364,\n          \"cpu\": 1.190604606663778,\n          \"lag\": 0.027186\n        }\n      },\n      \"1588093353\": {\n        \"stats\": {\n          \"requests\": 25,\n          \"responses\": 25,\n          \"errors\": 0,\n          \"info\": 0,\n          \"success\": 25,\n          \"redirect\": 0,\n          \"client_error\": 0,\n          \"server_error\": 0,\n          \"total_time\": 1259,\n          \"max_time\": 99,\n          \"avg_time\": 50.36,\n          \"total_req_clength\": 1122,\n          \"max_req_clength\": 165,\n          \"avg_req_clength\": 44,\n          \"total_res_clength\": 2204,\n          \"max_res_clength\": 186,\n          \"avg_res_clength\": 88,\n          \"req_rate\": 25,\n          \"err_rate\": 0,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 5,\n          \"apdex_tolerated\": 20,\n          \"apdex_score\": 0.6\n        },\n        \"sys\": {\n          \"rss\": 73764864,\n          \"heapTotal\": 36741120,\n          \"heapUsed\": 23332129,\n          \"external\": 1910798,\n          \"cpu\": 1.4771758064135279,\n          \"lag\": 0.252796\n        }\n      },\n      \"1588093354\": {\n        \"stats\": {\n          \"requests\": 24,\n          \"responses\": 24,\n          \"errors\": 1,\n          \"info\": 0,\n          \"success\": 23,\n          \"redirect\": 0,\n          \"client_error\": 1,\n          \"server_error\": 0,\n          \"total_time\": 1347,\n          \"max_time\": 100,\n          \"avg_time\": 56.125,\n          \"total_req_clength\": 1133,\n          \"max_req_clength\": 191,\n          \"avg_req_clength\": 47,\n          \"total_res_clength\": 2796,\n          \"max_res_clength\": 199,\n          \"avg_res_clength\": 116,\n          \"req_rate\": 24,\n          \"err_rate\": 1,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 2,\n          \"apdex_tolerated\": 21,\n          \"apdex_score\": 0.5208333333333334\n        },\n        \"sys\": {\n          \"rss\": 73764864,\n          \"heapTotal\": 36741120,\n          \"heapUsed\": 24538029,\n          \"external\": 2050120,\n          \"cpu\": 2.762364973869414,\n          \"lag\": 0.043671\n        }\n      },\n      \"1588093355\": {\n        \"stats\": {\n          \"requests\": 25,\n          \"responses\": 25,\n          \"errors\": 5,\n          \"info\": 0,\n          \"success\": 20,\n          \"redirect\": 0,\n          \"client_error\": 5,\n          \"server_error\": 0,\n          \"total_time\": 945,\n          \"max_time\": 97,\n          \"avg_time\": 37.8,\n          \"total_req_clength\": 1567,\n          \"max_req_clength\": 210,\n          \"avg_req_clength\": 62,\n          \"total_res_clength\": 2652,\n          \"max_res_clength\": 198,\n          \"avg_res_clength\": 106,\n          \"req_rate\": 25,\n          \"err_rate\": 5,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 6,\n          \"apdex_tolerated\": 14,\n          \"apdex_score\": 0.52\n        },\n        \"sys\": {\n          \"rss\": 73764864,\n          \"heapTotal\": 36741120,\n          \"heapUsed\": 25744890,\n          \"external\": 2188733,\n          \"cpu\": 2.5647772543208234,\n          \"lag\": 0.043334\n        }\n      },\n      \"1588093356\": {\n        \"stats\": {\n          \"requests\": 21,\n          \"responses\": 21,\n          \"errors\": 5,\n          \"info\": 0,\n          \"success\": 16,\n          \"redirect\": 0,\n          \"client_error\": 4,\n          \"server_error\": 1,\n          \"total_time\": 1214,\n          \"max_time\": 99,\n          \"avg_time\": 57.80952380952381,\n          \"total_req_clength\": 970,\n          \"max_req_clength\": 203,\n          \"avg_req_clength\": 46,\n          \"total_res_clength\": 1854,\n          \"max_res_clength\": 198,\n          \"avg_res_clength\": 88,\n          \"req_rate\": 21,\n          \"err_rate\": 5,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 2,\n          \"apdex_tolerated\": 14,\n          \"apdex_score\": 0.42857142857142855\n        },\n        \"sys\": {\n          \"rss\": 73886574,\n          \"heapTotal\": 36741120,\n          \"heapUsed\": 23205776,\n          \"external\": 1914977,\n          \"cpu\": 2.4633974778722925,\n          \"lag\": 0.040597\n        }\n      },\n      \"1588093357\": {\n        \"stats\": {\n          \"requests\": 15,\n          \"responses\": 15,\n          \"errors\": 4,\n          \"info\": 0,\n          \"success\": 11,\n          \"redirect\": 0,\n          \"client_error\": 3,\n          \"server_error\": 1,\n          \"total_time\": 696,\n          \"max_time\": 99,\n          \"avg_time\": 46.4,\n          \"total_req_clength\": 711,\n          \"max_req_clength\": 197,\n          \"avg_req_clength\": 47,\n          \"total_res_clength\": 1638,\n          \"max_res_clength\": 199,\n          \"avg_res_clength\": 109,\n          \"req_rate\": 15,\n          \"err_rate\": 4,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 2,\n          \"apdex_tolerated\": 9,\n          \"apdex_score\": 0.43333333333333335\n        },\n        \"sys\": {\n          \"rss\": 73977856,\n          \"heapTotal\": 36741120,\n          \"heapUsed\": 19365321,\n          \"external\": 1504178,\n          \"cpu\": 1.7119514670036935,\n          \"lag\": 0.046086\n        }\n      },\n      \"1588093358\": {\n        \"stats\": {\n          \"requests\": 21,\n          \"responses\": 21,\n          \"errors\": 0,\n          \"info\": 0,\n          \"success\": 21,\n          \"redirect\": 0,\n          \"client_error\": 0,\n          \"server_error\": 0,\n          \"total_time\": 1100,\n          \"max_time\": 97,\n          \"avg_time\": 52.38095238095238,\n          \"total_req_clength\": 724,\n          \"max_req_clength\": 134,\n          \"avg_req_clength\": 34,\n          \"total_res_clength\": 2420,\n          \"max_res_clength\": 199,\n          \"avg_res_clength\": 115,\n          \"req_rate\": 21,\n          \"err_rate\": 0,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 4,\n          \"apdex_tolerated\": 17,\n          \"apdex_score\": 0.5952380952380952\n        },\n        \"sys\": {\n          \"rss\": 73977856,\n          \"heapTotal\": 36741120,\n          \"heapUsed\": 20090911,\n          \"external\": 1637153,\n          \"cpu\": 2.532131924081231,\n          \"lag\": 0.039959\n        }\n      },\n      \"1588093359\": {\n        \"stats\": {\n          \"requests\": 19,\n          \"responses\": 19,\n          \"errors\": 2,\n          \"info\": 0,\n          \"success\": 17,\n          \"redirect\": 0,\n          \"client_error\": 1,\n          \"server_error\": 1,\n          \"total_time\": 1003,\n          \"max_time\": 100,\n          \"avg_time\": 52.78947368421053,\n          \"total_req_clength\": 1290,\n          \"max_req_clength\": 197,\n          \"avg_req_clength\": 67,\n          \"total_res_clength\": 1744,\n          \"max_res_clength\": 189,\n          \"avg_res_clength\": 91,\n          \"req_rate\": 19,\n          \"err_rate\": 2,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 4,\n          \"apdex_tolerated\": 13,\n          \"apdex_score\": 0.5526315789473685\n        },\n        \"sys\": {\n          \"rss\": 73977856,\n          \"heapTotal\": 36741120,\n          \"heapUsed\": 20966735,\n          \"external\": 1771233,\n          \"cpu\": 2.2868132815216007,\n          \"lag\": 0.651047\n        }\n      },\n      \"1588093360\": {\n        \"stats\": {\n          \"requests\": 20,\n          \"responses\": 20,\n          \"errors\": 2,\n          \"info\": 0,\n          \"success\": 18,\n          \"redirect\": 0,\n          \"client_error\": 1,\n          \"server_error\": 1,\n          \"total_time\": 864,\n          \"max_time\": 94,\n          \"avg_time\": 43.2,\n          \"total_req_clength\": 861,\n          \"max_req_clength\": 187,\n          \"avg_req_clength\": 43,\n          \"total_res_clength\": 2384,\n          \"max_res_clength\": 194,\n          \"avg_res_clength\": 119,\n          \"req_rate\": 20,\n          \"err_rate\": 2,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 7,\n          \"apdex_tolerated\": 11,\n          \"apdex_score\": 0.625\n        },\n        \"sys\": {\n          \"rss\": 73977856,\n          \"heapTotal\": 36741120,\n          \"heapUsed\": 21916603,\n          \"external\": 1909965,\n          \"cpu\": 1.9388896811232033,\n          \"lag\": 0.048814\n        }\n      },\n      \"1588093361\": {\n        \"stats\": {\n          \"requests\": 15,\n          \"responses\": 15,\n          \"errors\": 2,\n          \"info\": 0,\n          \"success\": 13,\n          \"redirect\": 0,\n          \"client_error\": 0,\n          \"server_error\": 2,\n          \"total_time\": 722,\n          \"max_time\": 88,\n          \"avg_time\": 48.13333333333333,\n          \"total_req_clength\": 657,\n          \"max_req_clength\": 206,\n          \"avg_req_clength\": 43,\n          \"total_res_clength\": 1601,\n          \"max_res_clength\": 199,\n          \"avg_res_clength\": 106,\n          \"req_rate\": 15,\n          \"err_rate\": 2,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 4,\n          \"apdex_tolerated\": 9,\n          \"apdex_score\": 0.5666666666666667\n        },\n        \"sys\": {\n          \"rss\": 73977856,\n          \"heapTotal\": 36741120,\n          \"heapUsed\": 22725769,\n          \"external\": 2047210,\n          \"cpu\": 1.6866602960941097,\n          \"lag\": 0.038996\n        }\n      },\n      \"1588093362\": {\n        \"stats\": {\n          \"requests\": 28,\n          \"responses\": 28,\n          \"errors\": 3,\n          \"info\": 0,\n          \"success\": 25,\n          \"redirect\": 0,\n          \"client_error\": 3,\n          \"server_error\": 0,\n          \"total_time\": 1460,\n          \"max_time\": 99,\n          \"avg_time\": 52.142857142857146,\n          \"total_req_clength\": 1394,\n          \"max_req_clength\": 187,\n          \"avg_req_clength\": 49,\n          \"total_res_clength\": 2936,\n          \"max_res_clength\": 199,\n          \"avg_res_clength\": 104,\n          \"req_rate\": 28,\n          \"err_rate\": 3,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 7,\n          \"apdex_tolerated\": 18,\n          \"apdex_score\": 0.5714285714285714\n        },\n        \"sys\": {\n          \"rss\": 73977856,\n          \"heapTotal\": 36741120,\n          \"heapUsed\": 23846353,\n          \"external\": 2181598,\n          \"cpu\": 2.505626343880352,\n          \"lag\": 0.052258\n        }\n      },\n      \"1588093363\": {\n        \"stats\": {\n          \"requests\": 28,\n          \"responses\": 28,\n          \"errors\": 5,\n          \"info\": 0,\n          \"success\": 23,\n          \"redirect\": 0,\n          \"client_error\": 4,\n          \"server_error\": 1,\n          \"total_time\": 1677,\n          \"max_time\": 98,\n          \"avg_time\": 59.892857142857146,\n          \"total_req_clength\": 889,\n          \"max_req_clength\": 197,\n          \"avg_req_clength\": 31,\n          \"total_res_clength\": 2623,\n          \"max_res_clength\": 201,\n          \"avg_res_clength\": 93,\n          \"req_rate\": 28,\n          \"err_rate\": 5,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 3,\n          \"apdex_tolerated\": 20,\n          \"apdex_score\": 0.4642857142857143\n        },\n        \"sys\": {\n          \"rss\": 73977856,\n          \"heapTotal\": 36741120,\n          \"heapUsed\": 24853362,\n          \"external\": 2315416,\n          \"cpu\": 2.1818431968844685,\n          \"lag\": 0.038622\n        }\n      },\n      \"1588093364\": {\n        \"stats\": {\n          \"requests\": 19,\n          \"responses\": 19,\n          \"errors\": 2,\n          \"info\": 0,\n          \"success\": 17,\n          \"redirect\": 0,\n          \"client_error\": 0,\n          \"server_error\": 2,\n          \"total_time\": 1015,\n          \"max_time\": 95,\n          \"avg_time\": 53.421052631578945,\n          \"total_req_clength\": 917,\n          \"max_req_clength\": 180,\n          \"avg_req_clength\": 48,\n          \"total_res_clength\": 2038,\n          \"max_res_clength\": 202,\n          \"avg_res_clength\": 107,\n          \"req_rate\": 19,\n          \"err_rate\": 2,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 4,\n          \"apdex_tolerated\": 13,\n          \"apdex_score\": 0.5526315789473685\n        },\n        \"sys\": {\n          \"rss\": 73977856,\n          \"heapTotal\": 36741120,\n          \"heapUsed\": 25930435,\n          \"external\": 2449100,\n          \"cpu\": 2.1057517442363727,\n          \"lag\": 0.09267\n        }\n      },\n      \"1588093365\": {\n        \"stats\": {\n          \"requests\": 31,\n          \"responses\": 31,\n          \"errors\": 6,\n          \"info\": 0,\n          \"success\": 25,\n          \"redirect\": 0,\n          \"client_error\": 4,\n          \"server_error\": 2,\n          \"total_time\": 1784,\n          \"max_time\": 98,\n          \"avg_time\": 57.54838709677419,\n          \"total_req_clength\": 1136,\n          \"max_req_clength\": 173,\n          \"avg_req_clength\": 36,\n          \"total_res_clength\": 2790,\n          \"max_res_clength\": 201,\n          \"avg_res_clength\": 90,\n          \"req_rate\": 31,\n          \"err_rate\": 5,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 5,\n          \"apdex_tolerated\": 20,\n          \"apdex_score\": 0.4838709677419355\n        },\n        \"sys\": {\n          \"rss\": 62924507,\n          \"heapTotal\": 25506377,\n          \"heapUsed\": 21132401,\n          \"external\": 1795185,\n          \"cpu\": 4.10721788855931,\n          \"lag\": 0.042131\n        }\n      },\n      \"1588093366\": {\n        \"stats\": {\n          \"requests\": 21,\n          \"responses\": 21,\n          \"errors\": 2,\n          \"info\": 0,\n          \"success\": 19,\n          \"redirect\": 0,\n          \"client_error\": 2,\n          \"server_error\": 0,\n          \"total_time\": 1155,\n          \"max_time\": 96,\n          \"avg_time\": 55,\n          \"total_req_clength\": 853,\n          \"max_req_clength\": 195,\n          \"avg_req_clength\": 40,\n          \"total_res_clength\": 1673,\n          \"max_res_clength\": 189,\n          \"avg_res_clength\": 79,\n          \"req_rate\": 21,\n          \"err_rate\": 2,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 2,\n          \"apdex_tolerated\": 17,\n          \"apdex_score\": 0.5\n        },\n        \"sys\": {\n          \"rss\": 58122825,\n          \"heapTotal\": 21012480,\n          \"heapUsed\": 18982214,\n          \"external\": 1464809,\n          \"cpu\": 2.791319096596079,\n          \"lag\": 0.044668\n        }\n      },\n      \"1588093367\": {\n        \"stats\": {\n          \"requests\": 17,\n          \"responses\": 17,\n          \"errors\": 0,\n          \"info\": 0,\n          \"success\": 17,\n          \"redirect\": 0,\n          \"client_error\": 0,\n          \"server_error\": 0,\n          \"total_time\": 998,\n          \"max_time\": 93,\n          \"avg_time\": 58.705882352941174,\n          \"total_req_clength\": 612,\n          \"max_req_clength\": 184,\n          \"avg_req_clength\": 36,\n          \"total_res_clength\": 1641,\n          \"max_res_clength\": 192,\n          \"avg_res_clength\": 96,\n          \"req_rate\": 17,\n          \"err_rate\": 0,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 3,\n          \"apdex_tolerated\": 14,\n          \"apdex_score\": 0.5882352941176471\n        },\n        \"sys\": {\n          \"rss\": 58370926,\n          \"heapTotal\": 21461870,\n          \"heapUsed\": 18886707,\n          \"external\": 1445883,\n          \"cpu\": 3.071822693677625,\n          \"lag\": 0.050659\n        }\n      },\n      \"1588093368\": {\n        \"stats\": {\n          \"requests\": 44,\n          \"responses\": 44,\n          \"errors\": 5,\n          \"info\": 0,\n          \"success\": 39,\n          \"redirect\": 0,\n          \"client_error\": 1,\n          \"server_error\": 4,\n          \"total_time\": 2392,\n          \"max_time\": 99,\n          \"avg_time\": 54.36363636363637,\n          \"total_req_clength\": 1967,\n          \"max_req_clength\": 200,\n          \"avg_req_clength\": 44,\n          \"total_res_clength\": 3985,\n          \"max_res_clength\": 203,\n          \"avg_res_clength\": 90,\n          \"req_rate\": 44,\n          \"err_rate\": 4,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 8,\n          \"apdex_tolerated\": 31,\n          \"apdex_score\": 0.5340909090909091\n        },\n        \"sys\": {\n          \"rss\": 59241033,\n          \"heapTotal\": 22061056,\n          \"heapUsed\": 19014303,\n          \"external\": 1446710,\n          \"cpu\": 5.733067540274729,\n          \"lag\": 0.051583\n        }\n      },\n      \"1588093369\": {\n        \"stats\": {\n          \"requests\": 10,\n          \"responses\": 10,\n          \"errors\": 3,\n          \"info\": 0,\n          \"success\": 7,\n          \"redirect\": 0,\n          \"client_error\": 3,\n          \"server_error\": 0,\n          \"total_time\": 469,\n          \"max_time\": 93,\n          \"avg_time\": 46.9,\n          \"total_req_clength\": 426,\n          \"max_req_clength\": 171,\n          \"avg_req_clength\": 42,\n          \"total_res_clength\": 784,\n          \"max_res_clength\": 173,\n          \"avg_res_clength\": 78,\n          \"req_rate\": 10,\n          \"err_rate\": 3,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 2,\n          \"apdex_tolerated\": 5,\n          \"apdex_score\": 0.45\n        },\n        \"sys\": {\n          \"rss\": 59539456,\n          \"heapTotal\": 22061056,\n          \"heapUsed\": 19352278,\n          \"external\": 1447656,\n          \"cpu\": 1.1848769817757712,\n          \"lag\": 0.212681\n        }\n      },\n      \"1588093370\": {\n        \"stats\": {\n          \"requests\": 30,\n          \"responses\": 30,\n          \"errors\": 3,\n          \"info\": 0,\n          \"success\": 27,\n          \"redirect\": 0,\n          \"client_error\": 2,\n          \"server_error\": 1,\n          \"total_time\": 1713,\n          \"max_time\": 97,\n          \"avg_time\": 57.1,\n          \"total_req_clength\": 1403,\n          \"max_req_clength\": 206,\n          \"avg_req_clength\": 46,\n          \"total_res_clength\": 2602,\n          \"max_res_clength\": 197,\n          \"avg_res_clength\": 86,\n          \"req_rate\": 30,\n          \"err_rate\": 3,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 5,\n          \"apdex_tolerated\": 22,\n          \"apdex_score\": 0.5333333333333333\n        },\n        \"sys\": {\n          \"rss\": 59539456,\n          \"heapTotal\": 22061056,\n          \"heapUsed\": 19298255,\n          \"external\": 1451255,\n          \"cpu\": 2.9446360784170187,\n          \"lag\": 0.437293\n        }\n      },\n      \"1588093371\": {\n        \"stats\": {\n          \"requests\": 19,\n          \"responses\": 19,\n          \"errors\": 2,\n          \"info\": 0,\n          \"success\": 17,\n          \"redirect\": 0,\n          \"client_error\": 2,\n          \"server_error\": 0,\n          \"total_time\": 916,\n          \"max_time\": 98,\n          \"avg_time\": 48.21052631578947,\n          \"total_req_clength\": 789,\n          \"max_req_clength\": 163,\n          \"avg_req_clength\": 41,\n          \"total_res_clength\": 1772,\n          \"max_res_clength\": 189,\n          \"avg_res_clength\": 93,\n          \"req_rate\": 19,\n          \"err_rate\": 2,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 6,\n          \"apdex_tolerated\": 11,\n          \"apdex_score\": 0.6052631578947368\n        },\n        \"sys\": {\n          \"rss\": 59539456,\n          \"heapTotal\": 22061056,\n          \"heapUsed\": 19279294,\n          \"external\": 1511213,\n          \"cpu\": 2.297047862743695,\n          \"lag\": 0.604641\n        }\n      },\n      \"1588093372\": {\n        \"stats\": {\n          \"requests\": 35,\n          \"responses\": 35,\n          \"errors\": 3,\n          \"info\": 0,\n          \"success\": 32,\n          \"redirect\": 0,\n          \"client_error\": 1,\n          \"server_error\": 2,\n          \"total_time\": 1630,\n          \"max_time\": 92,\n          \"avg_time\": 46.57142857142857,\n          \"total_req_clength\": 1834,\n          \"max_req_clength\": 181,\n          \"avg_req_clength\": 52,\n          \"total_res_clength\": 3309,\n          \"max_res_clength\": 199,\n          \"avg_res_clength\": 94,\n          \"req_rate\": 35,\n          \"err_rate\": 3,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 7,\n          \"apdex_tolerated\": 25,\n          \"apdex_score\": 0.5571428571428572\n        },\n        \"sys\": {\n          \"rss\": 59539456,\n          \"heapTotal\": 22061056,\n          \"heapUsed\": 19107458,\n          \"external\": 1510514,\n          \"cpu\": 3.6450055521546667,\n          \"lag\": 0.08222\n        }\n      },\n      \"1588093373\": {\n        \"stats\": {\n          \"requests\": 46,\n          \"responses\": 46,\n          \"errors\": 3,\n          \"info\": 0,\n          \"success\": 43,\n          \"redirect\": 0,\n          \"client_error\": 2,\n          \"server_error\": 1,\n          \"total_time\": 2359,\n          \"max_time\": 99,\n          \"avg_time\": 51.28260869565217,\n          \"total_req_clength\": 2416,\n          \"max_req_clength\": 199,\n          \"avg_req_clength\": 52,\n          \"total_res_clength\": 4226,\n          \"max_res_clength\": 180,\n          \"avg_res_clength\": 91,\n          \"req_rate\": 46,\n          \"err_rate\": 3,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 11,\n          \"apdex_tolerated\": 32,\n          \"apdex_score\": 0.5869565217391305\n        },\n        \"sys\": {\n          \"rss\": 59539456,\n          \"heapTotal\": 22061056,\n          \"heapUsed\": 19256590,\n          \"external\": 1454548,\n          \"cpu\": 4.428774739973542,\n          \"lag\": 0.571222\n        }\n      },\n      \"1588093374\": {\n        \"stats\": {\n          \"requests\": 20,\n          \"responses\": 20,\n          \"errors\": 1,\n          \"info\": 0,\n          \"success\": 19,\n          \"redirect\": 0,\n          \"client_error\": 0,\n          \"server_error\": 1,\n          \"total_time\": 1257,\n          \"max_time\": 97,\n          \"avg_time\": 62.85,\n          \"total_req_clength\": 578,\n          \"max_req_clength\": 169,\n          \"avg_req_clength\": 28,\n          \"total_res_clength\": 2272,\n          \"max_res_clength\": 187,\n          \"avg_res_clength\": 113,\n          \"req_rate\": 20,\n          \"err_rate\": 1,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 1,\n          \"apdex_tolerated\": 18,\n          \"apdex_score\": 0.5\n        },\n        \"sys\": {\n          \"rss\": 59539456,\n          \"heapTotal\": 22061056,\n          \"heapUsed\": 19194377,\n          \"external\": 1492750,\n          \"cpu\": 2.3213625620952487,\n          \"lag\": 0.039826\n        }\n      },\n      \"1588093375\": {\n        \"stats\": {\n          \"requests\": 20,\n          \"responses\": 20,\n          \"errors\": 1,\n          \"info\": 0,\n          \"success\": 19,\n          \"redirect\": 0,\n          \"client_error\": 1,\n          \"server_error\": 0,\n          \"total_time\": 991,\n          \"max_time\": 94,\n          \"avg_time\": 49.55,\n          \"total_req_clength\": 860,\n          \"max_req_clength\": 183,\n          \"avg_req_clength\": 43,\n          \"total_res_clength\": 2461,\n          \"max_res_clength\": 197,\n          \"avg_res_clength\": 123,\n          \"req_rate\": 20,\n          \"err_rate\": 1,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 5,\n          \"apdex_tolerated\": 14,\n          \"apdex_score\": 0.6\n        },\n        \"sys\": {\n          \"rss\": 59539456,\n          \"heapTotal\": 22959835,\n          \"heapUsed\": 19207573,\n          \"external\": 1459292,\n          \"cpu\": 2.470910080352385,\n          \"lag\": 0.053224\n        }\n      },\n      \"1588093376\": {\n        \"stats\": {\n          \"requests\": 36,\n          \"responses\": 36,\n          \"errors\": 4,\n          \"info\": 0,\n          \"success\": 32,\n          \"redirect\": 0,\n          \"client_error\": 3,\n          \"server_error\": 1,\n          \"total_time\": 1940,\n          \"max_time\": 100,\n          \"avg_time\": 53.888888888888886,\n          \"total_req_clength\": 1041,\n          \"max_req_clength\": 171,\n          \"avg_req_clength\": 28,\n          \"total_res_clength\": 4235,\n          \"max_res_clength\": 203,\n          \"avg_res_clength\": 117,\n          \"req_rate\": 36,\n          \"err_rate\": 4,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 6,\n          \"apdex_tolerated\": 26,\n          \"apdex_score\": 0.5277777777777778\n        },\n        \"sys\": {\n          \"rss\": 60039168,\n          \"heapTotal\": 24158208,\n          \"heapUsed\": 19765240,\n          \"external\": 1502164,\n          \"cpu\": 4.03756070944782,\n          \"lag\": 0.047446\n        }\n      },\n      \"1588093377\": {\n        \"stats\": {\n          \"requests\": 25,\n          \"responses\": 25,\n          \"errors\": 0,\n          \"info\": 0,\n          \"success\": 25,\n          \"redirect\": 0,\n          \"client_error\": 0,\n          \"server_error\": 0,\n          \"total_time\": 1149,\n          \"max_time\": 98,\n          \"avg_time\": 45.96,\n          \"total_req_clength\": 1285,\n          \"max_req_clength\": 203,\n          \"avg_req_clength\": 51,\n          \"total_res_clength\": 2275,\n          \"max_res_clength\": 197,\n          \"avg_res_clength\": 91,\n          \"req_rate\": 25,\n          \"err_rate\": 0,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 7,\n          \"apdex_tolerated\": 18,\n          \"apdex_score\": 0.64\n        },\n        \"sys\": {\n          \"rss\": 60616704,\n          \"heapTotal\": 24158208,\n          \"heapUsed\": 19369841,\n          \"external\": 1520494,\n          \"cpu\": 2.458837398506848,\n          \"lag\": 0.04581\n        }\n      },\n      \"1588093378\": {\n        \"stats\": {\n          \"requests\": 17,\n          \"responses\": 17,\n          \"errors\": 3,\n          \"info\": 0,\n          \"success\": 14,\n          \"redirect\": 0,\n          \"client_error\": 2,\n          \"server_error\": 1,\n          \"total_time\": 664,\n          \"max_time\": 98,\n          \"avg_time\": 39.05882352941177,\n          \"total_req_clength\": 691,\n          \"max_req_clength\": 170,\n          \"avg_req_clength\": 40,\n          \"total_res_clength\": 1843,\n          \"max_res_clength\": 203,\n          \"avg_res_clength\": 108,\n          \"req_rate\": 17,\n          \"err_rate\": 3,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 7,\n          \"apdex_tolerated\": 7,\n          \"apdex_score\": 0.6176470588235294\n        },\n        \"sys\": {\n          \"rss\": 60964279,\n          \"heapTotal\": 24158208,\n          \"heapUsed\": 20103174,\n          \"external\": 1653549,\n          \"cpu\": 1.9286868748144468,\n          \"lag\": 0.04257\n        }\n      },\n      \"1588093379\": {\n        \"stats\": {\n          \"requests\": 21,\n          \"responses\": 21,\n          \"errors\": 2,\n          \"info\": 0,\n          \"success\": 19,\n          \"redirect\": 0,\n          \"client_error\": 1,\n          \"server_error\": 1,\n          \"total_time\": 938,\n          \"max_time\": 87,\n          \"avg_time\": 44.666666666666664,\n          \"total_req_clength\": 1252,\n          \"max_req_clength\": 202,\n          \"avg_req_clength\": 59,\n          \"total_res_clength\": 2565,\n          \"max_res_clength\": 199,\n          \"avg_res_clength\": 122,\n          \"req_rate\": 21,\n          \"err_rate\": 2,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 6,\n          \"apdex_tolerated\": 13,\n          \"apdex_score\": 0.5952380952380952\n        },\n        \"sys\": {\n          \"rss\": 61582190,\n          \"heapTotal\": 24158208,\n          \"heapUsed\": 19839255,\n          \"external\": 1633434,\n          \"cpu\": 2.1236168847097656,\n          \"lag\": 0.038602\n        }\n      },\n      \"1588093380\": {\n        \"stats\": {\n          \"requests\": 0,\n          \"responses\": 0,\n          \"errors\": 0,\n          \"info\": 0,\n          \"success\": 0,\n          \"redirect\": 0,\n          \"client_error\": 0,\n          \"server_error\": 0,\n          \"total_time\": 0,\n          \"max_time\": 0,\n          \"avg_time\": 0,\n          \"total_req_clength\": 0,\n          \"max_req_clength\": 0,\n          \"avg_req_clength\": 0,\n          \"total_res_clength\": 0,\n          \"max_res_clength\": 0,\n          \"avg_res_clength\": 0,\n          \"req_rate\": 0,\n          \"err_rate\": 0,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 0,\n          \"apdex_tolerated\": 0,\n          \"apdex_score\": 0\n        },\n        \"sys\": {\n          \"rss\": 61698048,\n          \"heapTotal\": 24158208,\n          \"heapUsed\": 19610040,\n          \"external\": 1576443,\n          \"cpu\": 0.14810571223236643\n        }\n      }\n    }\n  },\n  \"errors\": {\n    \"statuscode\": {\n      \"401\": 213,\n      \"404\": 702,\n      \"500\": 224,\n      \"501\": 263\n    },\n    \"topnotfound\": {\n      \"/v2/pet\": 60,\n      \"/v2/store/inventory\": 27,\n      \"/v2/user/abcde\": 104,\n      \"/v2/pet/findByStatus\": 28,\n      \"/v2/user/logout\": 38,\n      \"/v2/user/createWithList\": 35,\n      \"/v2/pet/findByTags\": 34,\n      \"/v2/pet/12345\": 113,\n      \"/v2/pet/12345/uploadImage\": 46,\n      \"/v2/user/createWithArray\": 37,\n      \"/v2/user/login\": 40,\n      \"/v2/user\": 28,\n      \"/v2/store/order/12345\": 83,\n      \"/v2/store/order\": 29\n    },\n    \"topservererror\": {\n      \"/v2/user/createWithList\": 15,\n      \"/v2/user/abcde\": 31,\n      \"/v2/pet\": 23,\n      \"/v2/user/logout\": 17,\n      \"/v2/pet/12345\": 33,\n      \"/v2/pet/findByTags\": 13,\n      \"/v2/user\": 20,\n      \"/v2/user/createWithArray\": 11,\n      \"/v2/store/order/12345\": 18,\n      \"/v2/user/login\": 9,\n      \"/v2/pet/findByStatus\": 9,\n      \"/v2/pet/12345/uploadImage\": 7,\n      \"/v2/store/inventory\": 12,\n      \"/v2/store/order\": 6\n    }\n  }\n}\n"
  },
  {
    "path": "src/data/hitsdata.json",
    "content": "[\n  {\n    \"path\": \"/pets\",\n    \"method\": \"GET\",\n    \"query\": \"GET /pets\",\n    \"startts\": 1591661376075,\n    \"endts\": 1591661376117,\n    \"responsetime\": 42,\n    \"node\": {\n      \"name\": \"swagger-stats-fastify\",\n      \"version\": \"0.95.17\",\n      \"hostname\": \"sv5\",\n      \"ip\": \"192.168.1.71\"\n    },\n    \"http\": {\n      \"request\": {\n        \"url\": \"/pets\",\n        \"headers\": {\n          \"x-sws-res\": \"{\\\"code\\\":\\\"200\\\",\\\"message\\\":\\\"OK\\\",\\\"delay\\\":40,\\\"payloadsize\\\":110}\",\n          \"host\": \"localhost:3040\",\n          \"connection\": \"close\"\n        },\n        \"clength\": 0,\n        \"route_path\": \"/pet*\",\n        \"query\": {}\n      },\n      \"response\": {\n        \"code\": 200,\n        \"class\": \"success\",\n        \"phrase\": \"OK\",\n        \"headers\": {},\n        \"clength\": 110\n      }\n    },\n    \"ip\": \"127.0.0.1\",\n    \"real_ip\": \"127.0.0.1\",\n    \"port\": 3040,\n    \"@timestamp\": \"2020-06-09T00:09:36.075Z\",\n    \"api\": {\n      \"path\": \"/pets\",\n      \"query\": \"GET /pets\",\n      \"swagger\": true,\n      \"deprecated\": false,\n      \"operationId\": \"findPets\",\n      \"params\": {}\n    }\n  },\n  {\n    \"path\": \"/pets/abcde\",\n    \"method\": \"GET\",\n    \"query\": \"GET /pets/abcde\",\n    \"startts\": 1591661375503,\n    \"endts\": 1591661375578,\n    \"responsetime\": 75,\n    \"node\": {\n      \"name\": \"swagger-stats-fastify\",\n      \"version\": \"0.95.17\",\n      \"hostname\": \"sv5\",\n      \"ip\": \"192.168.1.71\"\n    },\n    \"http\": {\n      \"request\": {\n        \"url\": \"/pets/abcde\",\n        \"headers\": {\n          \"x-sws-res\": \"{\\\"code\\\":\\\"200\\\",\\\"message\\\":\\\"OK\\\",\\\"delay\\\":74,\\\"payloadsize\\\":53}\",\n          \"host\": \"localhost:3040\",\n          \"connection\": \"close\"\n        },\n        \"clength\": 0,\n        \"route_path\": \"/pet*\",\n        \"query\": {}\n      },\n      \"response\": {\n        \"code\": 200,\n        \"class\": \"success\",\n        \"phrase\": \"OK\",\n        \"headers\": {},\n        \"clength\": 53\n      }\n    },\n    \"ip\": \"127.0.0.1\",\n    \"real_ip\": \"127.0.0.1\",\n    \"port\": 3040,\n    \"@timestamp\": \"2020-06-09T00:09:35.503Z\",\n    \"api\": {\n      \"path\": \"/pets/{id}\",\n      \"query\": \"GET /pets/{id}\",\n      \"swagger\": true,\n      \"deprecated\": false,\n      \"operationId\": \"find pet by id\",\n      \"params\": {\n        \"id\": \"abcde\"\n      }\n    }\n  },\n  {\n    \"path\": \"/pets\",\n    \"method\": \"GET\",\n    \"query\": \"GET /pets\",\n    \"startts\": 1591661375502,\n    \"endts\": 1591661375542,\n    \"responsetime\": 40,\n    \"node\": {\n      \"name\": \"swagger-stats-fastify\",\n      \"version\": \"0.95.17\",\n      \"hostname\": \"sv5\",\n      \"ip\": \"192.168.1.71\"\n    },\n    \"http\": {\n      \"request\": {\n        \"url\": \"/pets\",\n        \"headers\": {\n          \"x-sws-res\": \"{\\\"code\\\":\\\"200\\\",\\\"message\\\":\\\"OK\\\",\\\"delay\\\":39,\\\"payloadsize\\\":109}\",\n          \"host\": \"localhost:3040\",\n          \"connection\": \"close\"\n        },\n        \"clength\": 0,\n        \"route_path\": \"/pet*\",\n        \"query\": {}\n      },\n      \"response\": {\n        \"code\": 200,\n        \"class\": \"success\",\n        \"phrase\": \"OK\",\n        \"headers\": {},\n        \"clength\": 109\n      }\n    },\n    \"ip\": \"127.0.0.1\",\n    \"real_ip\": \"127.0.0.1\",\n    \"port\": 3040,\n    \"@timestamp\": \"2020-06-09T00:09:35.502Z\",\n    \"api\": {\n      \"path\": \"/pets\",\n      \"query\": \"GET /pets\",\n      \"swagger\": true,\n      \"deprecated\": false,\n      \"operationId\": \"findPets\",\n      \"params\": {}\n    }\n  },\n  {\n    \"path\": \"/pets\",\n    \"method\": \"POST\",\n    \"query\": \"POST /pets\",\n    \"startts\": 1591661375502,\n    \"endts\": 1591661375551,\n    \"responsetime\": 49,\n    \"node\": {\n      \"name\": \"swagger-stats-fastify\",\n      \"version\": \"0.95.17\",\n      \"hostname\": \"sv5\",\n      \"ip\": \"192.168.1.71\"\n    },\n    \"http\": {\n      \"request\": {\n        \"url\": \"/pets\",\n        \"headers\": {\n          \"x-sws-res\": \"{\\\"code\\\":\\\"200\\\",\\\"message\\\":\\\"OK\\\",\\\"delay\\\":48,\\\"payloadsize\\\":77}\",\n          \"content-type\": \"application/json\",\n          \"content-length\": \"184\",\n          \"host\": \"localhost:3040\",\n          \"connection\": \"close\"\n        },\n        \"clength\": 184,\n        \"route_path\": \"/pet*\",\n        \"query\": {}\n      },\n      \"response\": {\n        \"code\": 200,\n        \"class\": \"success\",\n        \"phrase\": \"OK\",\n        \"headers\": {},\n        \"clength\": 77\n      }\n    },\n    \"ip\": \"127.0.0.1\",\n    \"real_ip\": \"127.0.0.1\",\n    \"port\": 3040,\n    \"@timestamp\": \"2020-06-09T00:09:35.502Z\",\n    \"api\": {\n      \"path\": \"/pets\",\n      \"query\": \"POST /pets\",\n      \"swagger\": true,\n      \"deprecated\": false,\n      \"operationId\": \"addPet\"\n    }\n  },\n  {\n    \"path\": \"/pets/abcde\",\n    \"method\": \"GET\",\n    \"query\": \"GET /pets/abcde\",\n    \"startts\": 1591661375059,\n    \"endts\": 1591661375070,\n    \"responsetime\": 11,\n    \"node\": {\n      \"name\": \"swagger-stats-fastify\",\n      \"version\": \"0.95.17\",\n      \"hostname\": \"sv5\",\n      \"ip\": \"192.168.1.71\"\n    },\n    \"http\": {\n      \"request\": {\n        \"url\": \"/pets/abcde\",\n        \"headers\": {\n          \"x-sws-res\": \"{\\\"code\\\":\\\"200\\\",\\\"message\\\":\\\"OK\\\",\\\"delay\\\":10,\\\"payloadsize\\\":76}\",\n          \"host\": \"localhost:3040\",\n          \"connection\": \"close\"\n        },\n        \"clength\": 0,\n        \"route_path\": \"/pet*\",\n        \"query\": {}\n      },\n      \"response\": {\n        \"code\": 200,\n        \"class\": \"success\",\n        \"phrase\": \"OK\",\n        \"headers\": {},\n        \"clength\": 76\n      }\n    },\n    \"ip\": \"127.0.0.1\",\n    \"real_ip\": \"127.0.0.1\",\n    \"port\": 3040,\n    \"@timestamp\": \"2020-06-09T00:09:35.059Z\",\n    \"api\": {\n      \"path\": \"/pets/{id}\",\n      \"query\": \"GET /pets/{id}\",\n      \"swagger\": true,\n      \"deprecated\": false,\n      \"operationId\": \"find pet by id\",\n      \"params\": {\n        \"id\": \"abcde\"\n      }\n    }\n  },\n  {\n    \"path\": \"/pets\",\n    \"method\": \"POST\",\n    \"query\": \"POST /pets\",\n    \"startts\": 1591661375058,\n    \"endts\": 1591661375125,\n    \"responsetime\": 67,\n    \"node\": {\n      \"name\": \"swagger-stats-fastify\",\n      \"version\": \"0.95.17\",\n      \"hostname\": \"sv5\",\n      \"ip\": \"192.168.1.71\"\n    },\n    \"http\": {\n      \"request\": {\n        \"url\": \"/pets\",\n        \"headers\": {\n          \"x-sws-res\": \"{\\\"code\\\":\\\"200\\\",\\\"message\\\":\\\"OK\\\",\\\"delay\\\":66,\\\"payloadsize\\\":72}\",\n          \"content-type\": \"application/json\",\n          \"content-length\": \"82\",\n          \"host\": \"localhost:3040\",\n          \"connection\": \"close\"\n        },\n        \"clength\": 82,\n        \"route_path\": \"/pet*\",\n        \"query\": {}\n      },\n      \"response\": {\n        \"code\": 200,\n        \"class\": \"success\",\n        \"phrase\": \"OK\",\n        \"headers\": {},\n        \"clength\": 72\n      }\n    },\n    \"ip\": \"127.0.0.1\",\n    \"real_ip\": \"127.0.0.1\",\n    \"port\": 3040,\n    \"@timestamp\": \"2020-06-09T00:09:35.058Z\",\n    \"api\": {\n      \"path\": \"/pets\",\n      \"query\": \"POST /pets\",\n      \"swagger\": true,\n      \"deprecated\": false,\n      \"operationId\": \"addPet\"\n    }\n  },\n  {\n    \"path\": \"/pets\",\n    \"method\": \"GET\",\n    \"query\": \"GET /pets\",\n    \"startts\": 1591661375057,\n    \"endts\": 1591661375083,\n    \"responsetime\": 26,\n    \"node\": {\n      \"name\": \"swagger-stats-fastify\",\n      \"version\": \"0.95.17\",\n      \"hostname\": \"sv5\",\n      \"ip\": \"192.168.1.71\"\n    },\n    \"http\": {\n      \"request\": {\n        \"url\": \"/pets\",\n        \"headers\": {\n          \"x-sws-res\": \"{\\\"code\\\":\\\"200\\\",\\\"message\\\":\\\"OK\\\",\\\"delay\\\":26,\\\"payloadsize\\\":158}\",\n          \"host\": \"localhost:3040\",\n          \"connection\": \"close\"\n        },\n        \"clength\": 0,\n        \"route_path\": \"/pet*\",\n        \"query\": {}\n      },\n      \"response\": {\n        \"code\": 200,\n        \"class\": \"success\",\n        \"phrase\": \"OK\",\n        \"headers\": {},\n        \"clength\": 158\n      }\n    },\n    \"ip\": \"127.0.0.1\",\n    \"real_ip\": \"127.0.0.1\",\n    \"port\": 3040,\n    \"@timestamp\": \"2020-06-09T00:09:35.057Z\",\n    \"api\": {\n      \"path\": \"/pets\",\n      \"query\": \"GET /pets\",\n      \"swagger\": true,\n      \"deprecated\": false,\n      \"operationId\": \"findPets\",\n      \"params\": {}\n    }\n  },\n  {\n    \"path\": \"/pets\",\n    \"method\": \"POST\",\n    \"query\": \"POST /pets\",\n    \"startts\": 1591661374819,\n    \"endts\": 1591661374867,\n    \"responsetime\": 48,\n    \"node\": {\n      \"name\": \"swagger-stats-fastify\",\n      \"version\": \"0.95.17\",\n      \"hostname\": \"sv5\",\n      \"ip\": \"192.168.1.71\"\n    },\n    \"http\": {\n      \"request\": {\n        \"url\": \"/pets\",\n        \"headers\": {\n          \"x-sws-res\": \"{\\\"code\\\":\\\"200\\\",\\\"message\\\":\\\"OK\\\",\\\"delay\\\":47,\\\"payloadsize\\\":81}\",\n          \"content-type\": \"application/json\",\n          \"content-length\": \"37\",\n          \"host\": \"localhost:3040\",\n          \"connection\": \"close\"\n        },\n        \"clength\": 37,\n        \"route_path\": \"/pet*\",\n        \"query\": {}\n      },\n      \"response\": {\n        \"code\": 200,\n        \"class\": \"success\",\n        \"phrase\": \"OK\",\n        \"headers\": {},\n        \"clength\": 81\n      }\n    },\n    \"ip\": \"127.0.0.1\",\n    \"real_ip\": \"127.0.0.1\",\n    \"port\": 3040,\n    \"@timestamp\": \"2020-06-09T00:09:34.819Z\",\n    \"api\": {\n      \"path\": \"/pets\",\n      \"query\": \"POST /pets\",\n      \"swagger\": true,\n      \"deprecated\": false,\n      \"operationId\": \"addPet\"\n    }\n  },\n  {\n    \"path\": \"/pets/abcde\",\n    \"method\": \"GET\",\n    \"query\": \"GET /pets/abcde\",\n    \"startts\": 1591661374819,\n    \"endts\": 1591661374895,\n    \"responsetime\": 76,\n    \"node\": {\n      \"name\": \"swagger-stats-fastify\",\n      \"version\": \"0.95.17\",\n      \"hostname\": \"sv5\",\n      \"ip\": \"192.168.1.71\"\n    },\n    \"http\": {\n      \"request\": {\n        \"url\": \"/pets/abcde\",\n        \"headers\": {\n          \"x-sws-res\": \"{\\\"code\\\":\\\"200\\\",\\\"message\\\":\\\"OK\\\",\\\"delay\\\":76,\\\"payloadsize\\\":126}\",\n          \"host\": \"localhost:3040\",\n          \"connection\": \"close\"\n        },\n        \"clength\": 0,\n        \"route_path\": \"/pet*\",\n        \"query\": {}\n      },\n      \"response\": {\n        \"code\": 200,\n        \"class\": \"success\",\n        \"phrase\": \"OK\",\n        \"headers\": {},\n        \"clength\": 126\n      }\n    },\n    \"ip\": \"127.0.0.1\",\n    \"real_ip\": \"127.0.0.1\",\n    \"port\": 3040,\n    \"@timestamp\": \"2020-06-09T00:09:34.819Z\",\n    \"api\": {\n      \"path\": \"/pets/{id}\",\n      \"query\": \"GET /pets/{id}\",\n      \"swagger\": true,\n      \"deprecated\": false,\n      \"operationId\": \"find pet by id\",\n      \"params\": {\n        \"id\": \"abcde\"\n      }\n    }\n  },\n  {\n    \"path\": \"/pets\",\n    \"method\": \"GET\",\n    \"query\": \"GET /pets\",\n    \"startts\": 1591661374818,\n    \"endts\": 1591661374894,\n    \"responsetime\": 76,\n    \"node\": {\n      \"name\": \"swagger-stats-fastify\",\n      \"version\": \"0.95.17\",\n      \"hostname\": \"sv5\",\n      \"ip\": \"192.168.1.71\"\n    },\n    \"http\": {\n      \"request\": {\n        \"url\": \"/pets\",\n        \"headers\": {\n          \"x-sws-res\": \"{\\\"code\\\":\\\"200\\\",\\\"message\\\":\\\"OK\\\",\\\"delay\\\":76,\\\"payloadsize\\\":5}\",\n          \"host\": \"localhost:3040\",\n          \"connection\": \"close\"\n        },\n        \"clength\": 0,\n        \"route_path\": \"/pet*\",\n        \"query\": {}\n      },\n      \"response\": {\n        \"code\": 200,\n        \"class\": \"success\",\n        \"phrase\": \"OK\",\n        \"headers\": {},\n        \"clength\": 5\n      }\n    },\n    \"ip\": \"127.0.0.1\",\n    \"real_ip\": \"127.0.0.1\",\n    \"port\": 3040,\n    \"@timestamp\": \"2020-06-09T00:09:34.818Z\",\n    \"api\": {\n      \"path\": \"/pets\",\n      \"query\": \"GET /pets\",\n      \"swagger\": true,\n      \"deprecated\": false,\n      \"operationId\": \"findPets\",\n      \"params\": {}\n    }\n  },\n  {\n    \"path\": \"/pets/abcde\",\n    \"method\": \"GET\",\n    \"query\": \"GET /pets/abcde\",\n    \"startts\": 1591661374337,\n    \"endts\": 1591661374343,\n    \"responsetime\": 6,\n    \"node\": {\n      \"name\": \"swagger-stats-fastify\",\n      \"version\": \"0.95.17\",\n      \"hostname\": \"sv5\",\n      \"ip\": \"192.168.1.71\"\n    },\n    \"http\": {\n      \"request\": {\n        \"url\": \"/pets/abcde\",\n        \"headers\": {\n          \"x-sws-res\": \"{\\\"code\\\":\\\"200\\\",\\\"message\\\":\\\"OK\\\",\\\"delay\\\":5,\\\"payloadsize\\\":66}\",\n          \"host\": \"localhost:3040\",\n          \"connection\": \"close\"\n        },\n        \"clength\": 0,\n        \"route_path\": \"/pet*\",\n        \"query\": {}\n      },\n      \"response\": {\n        \"code\": 200,\n        \"class\": \"success\",\n        \"phrase\": \"OK\",\n        \"headers\": {},\n        \"clength\": 66\n      }\n    },\n    \"ip\": \"127.0.0.1\",\n    \"real_ip\": \"127.0.0.1\",\n    \"port\": 3040,\n    \"@timestamp\": \"2020-06-09T00:09:34.337Z\",\n    \"api\": {\n      \"path\": \"/pets/{id}\",\n      \"query\": \"GET /pets/{id}\",\n      \"swagger\": true,\n      \"deprecated\": false,\n      \"operationId\": \"find pet by id\",\n      \"params\": {\n        \"id\": \"abcde\"\n      }\n    }\n  },\n  {\n    \"path\": \"/pets/abcde\",\n    \"method\": \"DELETE\",\n    \"query\": \"DELETE /pets/abcde\",\n    \"startts\": 1591661374337,\n    \"endts\": 1591661374432,\n    \"responsetime\": 95,\n    \"node\": {\n      \"name\": \"swagger-stats-fastify\",\n      \"version\": \"0.95.17\",\n      \"hostname\": \"sv5\",\n      \"ip\": \"192.168.1.71\"\n    },\n    \"http\": {\n      \"request\": {\n        \"url\": \"/pets/abcde\",\n        \"headers\": {\n          \"x-sws-res\": \"{\\\"code\\\":\\\"200\\\",\\\"message\\\":\\\"OK\\\",\\\"delay\\\":95,\\\"payloadsize\\\":154}\",\n          \"host\": \"localhost:3040\",\n          \"connection\": \"close\"\n        },\n        \"clength\": 0,\n        \"route_path\": \"/pet*\",\n        \"query\": {}\n      },\n      \"response\": {\n        \"code\": 200,\n        \"class\": \"success\",\n        \"phrase\": \"OK\",\n        \"headers\": {},\n        \"clength\": 154\n      }\n    },\n    \"ip\": \"127.0.0.1\",\n    \"real_ip\": \"127.0.0.1\",\n    \"port\": 3040,\n    \"@timestamp\": \"2020-06-09T00:09:34.337Z\",\n    \"api\": {\n      \"path\": \"/pets/{id}\",\n      \"query\": \"DELETE /pets/{id}\",\n      \"swagger\": true,\n      \"deprecated\": false,\n      \"operationId\": \"deletePet\",\n      \"params\": {\n        \"id\": \"abcde\"\n      }\n    }\n  },\n  {\n    \"path\": \"/pets\",\n    \"method\": \"POST\",\n    \"query\": \"POST /pets\",\n    \"startts\": 1591661374336,\n    \"endts\": 1591661374434,\n    \"responsetime\": 98,\n    \"node\": {\n      \"name\": \"swagger-stats-fastify\",\n      \"version\": \"0.95.17\",\n      \"hostname\": \"sv5\",\n      \"ip\": \"192.168.1.71\"\n    },\n    \"http\": {\n      \"request\": {\n        \"url\": \"/pets\",\n        \"headers\": {\n          \"x-sws-res\": \"{\\\"code\\\":\\\"200\\\",\\\"message\\\":\\\"OK\\\",\\\"delay\\\":97,\\\"payloadsize\\\":54}\",\n          \"content-type\": \"application/json\",\n          \"content-length\": \"24\",\n          \"host\": \"localhost:3040\",\n          \"connection\": \"close\"\n        },\n        \"clength\": 24,\n        \"route_path\": \"/pet*\",\n        \"query\": {}\n      },\n      \"response\": {\n        \"code\": 200,\n        \"class\": \"success\",\n        \"phrase\": \"OK\",\n        \"headers\": {},\n        \"clength\": 54\n      }\n    },\n    \"ip\": \"127.0.0.1\",\n    \"real_ip\": \"127.0.0.1\",\n    \"port\": 3040,\n    \"@timestamp\": \"2020-06-09T00:09:34.336Z\",\n    \"api\": {\n      \"path\": \"/pets\",\n      \"query\": \"POST /pets\",\n      \"swagger\": true,\n      \"deprecated\": false,\n      \"operationId\": \"addPet\"\n    }\n  },\n  {\n    \"path\": \"/pets/abcde\",\n    \"method\": \"DELETE\",\n    \"query\": \"DELETE /pets/abcde\",\n    \"startts\": 1591661373862,\n    \"endts\": 1591661373892,\n    \"responsetime\": 30,\n    \"node\": {\n      \"name\": \"swagger-stats-fastify\",\n      \"version\": \"0.95.17\",\n      \"hostname\": \"sv5\",\n      \"ip\": \"192.168.1.71\"\n    },\n    \"http\": {\n      \"request\": {\n        \"url\": \"/pets/abcde\",\n        \"headers\": {\n          \"x-sws-res\": \"{\\\"code\\\":\\\"200\\\",\\\"message\\\":\\\"OK\\\",\\\"delay\\\":30,\\\"payloadsize\\\":175}\",\n          \"host\": \"localhost:3040\",\n          \"connection\": \"close\"\n        },\n        \"clength\": 0,\n        \"route_path\": \"/pet*\",\n        \"query\": {}\n      },\n      \"response\": {\n        \"code\": 200,\n        \"class\": \"success\",\n        \"phrase\": \"OK\",\n        \"headers\": {},\n        \"clength\": 175\n      }\n    },\n    \"ip\": \"127.0.0.1\",\n    \"real_ip\": \"127.0.0.1\",\n    \"port\": 3040,\n    \"@timestamp\": \"2020-06-09T00:09:33.862Z\",\n    \"api\": {\n      \"path\": \"/pets/{id}\",\n      \"query\": \"DELETE /pets/{id}\",\n      \"swagger\": true,\n      \"deprecated\": false,\n      \"operationId\": \"deletePet\",\n      \"params\": {\n        \"id\": \"abcde\"\n      }\n    }\n  },\n  {\n    \"path\": \"/pets\",\n    \"method\": \"POST\",\n    \"query\": \"POST /pets\",\n    \"startts\": 1591661373861,\n    \"endts\": 1591661373905,\n    \"responsetime\": 44,\n    \"node\": {\n      \"name\": \"swagger-stats-fastify\",\n      \"version\": \"0.95.17\",\n      \"hostname\": \"sv5\",\n      \"ip\": \"192.168.1.71\"\n    },\n    \"http\": {\n      \"request\": {\n        \"url\": \"/pets\",\n        \"headers\": {\n          \"x-sws-res\": \"{\\\"code\\\":404,\\\"message\\\":\\\"Not Found\\\",\\\"delay\\\":43,\\\"payloadsize\\\":40}\",\n          \"content-type\": \"application/json\",\n          \"content-length\": \"93\",\n          \"host\": \"localhost:3040\",\n          \"connection\": \"close\"\n        },\n        \"clength\": 93,\n        \"route_path\": \"/pet*\",\n        \"query\": {}\n      },\n      \"response\": {\n        \"code\": 404,\n        \"class\": \"client_error\",\n        \"phrase\": \"Not Found\",\n        \"headers\": {},\n        \"clength\": 40\n      }\n    },\n    \"ip\": \"127.0.0.1\",\n    \"real_ip\": \"127.0.0.1\",\n    \"port\": 3040,\n    \"@timestamp\": \"2020-06-09T00:09:33.861Z\",\n    \"api\": {\n      \"path\": \"/pets\",\n      \"query\": \"POST /pets\",\n      \"swagger\": true,\n      \"deprecated\": false,\n      \"operationId\": \"addPet\"\n    }\n  },\n  {\n    \"path\": \"/pets\",\n    \"method\": \"GET\",\n    \"query\": \"GET /pets\",\n    \"startts\": 1591661373860,\n    \"endts\": 1591661373898,\n    \"responsetime\": 38,\n    \"node\": {\n      \"name\": \"swagger-stats-fastify\",\n      \"version\": \"0.95.17\",\n      \"hostname\": \"sv5\",\n      \"ip\": \"192.168.1.71\"\n    },\n    \"http\": {\n      \"request\": {\n        \"url\": \"/pets\",\n        \"headers\": {\n          \"x-sws-res\": \"{\\\"code\\\":\\\"200\\\",\\\"message\\\":\\\"OK\\\",\\\"delay\\\":36,\\\"payloadsize\\\":161}\",\n          \"host\": \"localhost:3040\",\n          \"connection\": \"close\"\n        },\n        \"clength\": 0,\n        \"route_path\": \"/pet*\",\n        \"query\": {}\n      },\n      \"response\": {\n        \"code\": 200,\n        \"class\": \"success\",\n        \"phrase\": \"OK\",\n        \"headers\": {},\n        \"clength\": 161\n      }\n    },\n    \"ip\": \"127.0.0.1\",\n    \"real_ip\": \"127.0.0.1\",\n    \"port\": 3040,\n    \"@timestamp\": \"2020-06-09T00:09:33.860Z\",\n    \"api\": {\n      \"path\": \"/pets\",\n      \"query\": \"GET /pets\",\n      \"swagger\": true,\n      \"deprecated\": false,\n      \"operationId\": \"findPets\",\n      \"params\": {}\n    }\n  },\n  {\n    \"path\": \"/pets/abcde\",\n    \"method\": \"DELETE\",\n    \"query\": \"DELETE /pets/abcde\",\n    \"startts\": 1591661373713,\n    \"endts\": 1591661373723,\n    \"responsetime\": 10,\n    \"node\": {\n      \"name\": \"swagger-stats-fastify\",\n      \"version\": \"0.95.17\",\n      \"hostname\": \"sv5\",\n      \"ip\": \"192.168.1.71\"\n    },\n    \"http\": {\n      \"request\": {\n        \"url\": \"/pets/abcde\",\n        \"headers\": {\n          \"x-sws-res\": \"{\\\"code\\\":404,\\\"message\\\":\\\"Not Found\\\",\\\"delay\\\":9,\\\"payloadsize\\\":107}\",\n          \"host\": \"localhost:3040\",\n          \"connection\": \"close\"\n        },\n        \"clength\": 0,\n        \"route_path\": \"/pet*\",\n        \"query\": {}\n      },\n      \"response\": {\n        \"code\": 404,\n        \"class\": \"client_error\",\n        \"phrase\": \"Not Found\",\n        \"headers\": {},\n        \"clength\": 107\n      }\n    },\n    \"ip\": \"127.0.0.1\",\n    \"real_ip\": \"127.0.0.1\",\n    \"port\": 3040,\n    \"@timestamp\": \"2020-06-09T00:09:33.713Z\",\n    \"api\": {\n      \"path\": \"/pets/{id}\",\n      \"query\": \"DELETE /pets/{id}\",\n      \"swagger\": true,\n      \"deprecated\": false,\n      \"operationId\": \"deletePet\",\n      \"params\": {\n        \"id\": \"abcde\"\n      }\n    }\n  },\n  {\n    \"path\": \"/pets\",\n    \"method\": \"POST\",\n    \"query\": \"POST /pets\",\n    \"startts\": 1591661373712,\n    \"endts\": 1591661373718,\n    \"responsetime\": 6,\n    \"node\": {\n      \"name\": \"swagger-stats-fastify\",\n      \"version\": \"0.95.17\",\n      \"hostname\": \"sv5\",\n      \"ip\": \"192.168.1.71\"\n    },\n    \"http\": {\n      \"request\": {\n        \"url\": \"/pets\",\n        \"headers\": {\n          \"x-sws-res\": \"{\\\"code\\\":\\\"200\\\",\\\"message\\\":\\\"OK\\\",\\\"delay\\\":4,\\\"payloadsize\\\":104}\",\n          \"content-type\": \"application/json\",\n          \"content-length\": \"87\",\n          \"host\": \"localhost:3040\",\n          \"connection\": \"close\"\n        },\n        \"clength\": 87,\n        \"route_path\": \"/pet*\",\n        \"query\": {}\n      },\n      \"response\": {\n        \"code\": 200,\n        \"class\": \"success\",\n        \"phrase\": \"OK\",\n        \"headers\": {},\n        \"clength\": 104\n      }\n    },\n    \"ip\": \"127.0.0.1\",\n    \"real_ip\": \"127.0.0.1\",\n    \"port\": 3040,\n    \"@timestamp\": \"2020-06-09T00:09:33.712Z\",\n    \"api\": {\n      \"path\": \"/pets\",\n      \"query\": \"POST /pets\",\n      \"swagger\": true,\n      \"deprecated\": false,\n      \"operationId\": \"addPet\"\n    }\n  },\n  {\n    \"path\": \"/pets\",\n    \"method\": \"GET\",\n    \"query\": \"GET /pets\",\n    \"startts\": 1591661373712,\n    \"endts\": 1591661373722,\n    \"responsetime\": 10,\n    \"node\": {\n      \"name\": \"swagger-stats-fastify\",\n      \"version\": \"0.95.17\",\n      \"hostname\": \"sv5\",\n      \"ip\": \"192.168.1.71\"\n    },\n    \"http\": {\n      \"request\": {\n        \"url\": \"/pets\",\n        \"headers\": {\n          \"x-sws-res\": \"{\\\"code\\\":\\\"200\\\",\\\"message\\\":\\\"OK\\\",\\\"delay\\\":9,\\\"payloadsize\\\":120}\",\n          \"host\": \"localhost:3040\",\n          \"connection\": \"close\"\n        },\n        \"clength\": 0,\n        \"route_path\": \"/pet*\",\n        \"query\": {}\n      },\n      \"response\": {\n        \"code\": 200,\n        \"class\": \"success\",\n        \"phrase\": \"OK\",\n        \"headers\": {},\n        \"clength\": 120\n      }\n    },\n    \"ip\": \"127.0.0.1\",\n    \"real_ip\": \"127.0.0.1\",\n    \"port\": 3040,\n    \"@timestamp\": \"2020-06-09T00:09:33.712Z\",\n    \"api\": {\n      \"path\": \"/pets\",\n      \"query\": \"GET /pets\",\n      \"swagger\": true,\n      \"deprecated\": false,\n      \"operationId\": \"findPets\",\n      \"params\": {}\n    }\n  },\n  {\n    \"path\": \"/pets/abcde\",\n    \"method\": \"DELETE\",\n    \"query\": \"DELETE /pets/abcde\",\n    \"startts\": 1591661373264,\n    \"endts\": 1591661373268,\n    \"responsetime\": 4,\n    \"node\": {\n      \"name\": \"swagger-stats-fastify\",\n      \"version\": \"0.95.17\",\n      \"hostname\": \"sv5\",\n      \"ip\": \"192.168.1.71\"\n    },\n    \"http\": {\n      \"request\": {\n        \"url\": \"/pets/abcde\",\n        \"headers\": {\n          \"x-sws-res\": \"{\\\"code\\\":\\\"200\\\",\\\"message\\\":\\\"OK\\\",\\\"delay\\\":3,\\\"payloadsize\\\":137}\",\n          \"host\": \"localhost:3040\",\n          \"connection\": \"close\"\n        },\n        \"clength\": 0,\n        \"route_path\": \"/pet*\",\n        \"query\": {}\n      },\n      \"response\": {\n        \"code\": 200,\n        \"class\": \"success\",\n        \"phrase\": \"OK\",\n        \"headers\": {},\n        \"clength\": 137\n      }\n    },\n    \"ip\": \"127.0.0.1\",\n    \"real_ip\": \"127.0.0.1\",\n    \"port\": 3040,\n    \"@timestamp\": \"2020-06-09T00:09:33.264Z\",\n    \"api\": {\n      \"path\": \"/pets/{id}\",\n      \"query\": \"DELETE /pets/{id}\",\n      \"swagger\": true,\n      \"deprecated\": false,\n      \"operationId\": \"deletePet\",\n      \"params\": {\n        \"id\": \"abcde\"\n      }\n    }\n  },\n  {\n    \"path\": \"/pets\",\n    \"method\": \"GET\",\n    \"query\": \"GET /pets\",\n    \"startts\": 1591661373263,\n    \"endts\": 1591661373264,\n    \"responsetime\": 1,\n    \"node\": {\n      \"name\": \"swagger-stats-fastify\",\n      \"version\": \"0.95.17\",\n      \"hostname\": \"sv5\",\n      \"ip\": \"192.168.1.71\"\n    },\n    \"http\": {\n      \"request\": {\n        \"url\": \"/pets\",\n        \"headers\": {\n          \"x-sws-res\": \"{\\\"code\\\":500,\\\"message\\\":\\\"Internal Server Error\\\",\\\"delay\\\":1,\\\"payloadsize\\\":56}\",\n          \"host\": \"localhost:3040\",\n          \"connection\": \"close\"\n        },\n        \"clength\": 0,\n        \"route_path\": \"/pet*\",\n        \"query\": {}\n      },\n      \"response\": {\n        \"code\": 500,\n        \"class\": \"server_error\",\n        \"phrase\": \"Internal Server Error\",\n        \"headers\": {},\n        \"clength\": 56\n      }\n    },\n    \"ip\": \"127.0.0.1\",\n    \"real_ip\": \"127.0.0.1\",\n    \"port\": 3040,\n    \"@timestamp\": \"2020-06-09T00:09:33.263Z\",\n    \"api\": {\n      \"path\": \"/pets\",\n      \"query\": \"GET /pets\",\n      \"swagger\": true,\n      \"deprecated\": false,\n      \"operationId\": \"findPets\",\n      \"params\": {}\n    }\n  },\n  {\n    \"path\": \"/pets\",\n    \"method\": \"POST\",\n    \"query\": \"POST /pets\",\n    \"startts\": 1591661373263,\n    \"endts\": 1591661373328,\n    \"responsetime\": 65,\n    \"node\": {\n      \"name\": \"swagger-stats-fastify\",\n      \"version\": \"0.95.17\",\n      \"hostname\": \"sv5\",\n      \"ip\": \"192.168.1.71\"\n    },\n    \"http\": {\n      \"request\": {\n        \"url\": \"/pets\",\n        \"headers\": {\n          \"x-sws-res\": \"{\\\"code\\\":\\\"200\\\",\\\"message\\\":\\\"OK\\\",\\\"delay\\\":63,\\\"payloadsize\\\":173}\",\n          \"content-type\": \"application/json\",\n          \"content-length\": \"206\",\n          \"host\": \"localhost:3040\",\n          \"connection\": \"close\"\n        },\n        \"clength\": 206,\n        \"route_path\": \"/pet*\",\n        \"query\": {}\n      },\n      \"response\": {\n        \"code\": 200,\n        \"class\": \"success\",\n        \"phrase\": \"OK\",\n        \"headers\": {},\n        \"clength\": 173\n      }\n    },\n    \"ip\": \"127.0.0.1\",\n    \"real_ip\": \"127.0.0.1\",\n    \"port\": 3040,\n    \"@timestamp\": \"2020-06-09T00:09:33.263Z\",\n    \"api\": {\n      \"path\": \"/pets\",\n      \"query\": \"POST /pets\",\n      \"swagger\": true,\n      \"deprecated\": false,\n      \"operationId\": \"addPet\"\n    }\n  },\n  {\n    \"path\": \"/pets/abcde\",\n    \"method\": \"GET\",\n    \"query\": \"GET /pets/abcde\",\n    \"startts\": 1591661372772,\n    \"endts\": 1591661372847,\n    \"responsetime\": 75,\n    \"node\": {\n      \"name\": \"swagger-stats-fastify\",\n      \"version\": \"0.95.17\",\n      \"hostname\": \"sv5\",\n      \"ip\": \"192.168.1.71\"\n    },\n    \"http\": {\n      \"request\": {\n        \"url\": \"/pets/abcde\",\n        \"headers\": {\n          \"x-sws-res\": \"{\\\"code\\\":501,\\\"message\\\":\\\"Not Implemented\\\",\\\"delay\\\":75,\\\"payloadsize\\\":79}\",\n          \"host\": \"localhost:3040\",\n          \"connection\": \"close\"\n        },\n        \"clength\": 0,\n        \"route_path\": \"/pet*\",\n        \"query\": {}\n      },\n      \"response\": {\n        \"code\": 501,\n        \"class\": \"server_error\",\n        \"phrase\": \"Not Implemented\",\n        \"headers\": {},\n        \"clength\": 79\n      }\n    },\n    \"ip\": \"127.0.0.1\",\n    \"real_ip\": \"127.0.0.1\",\n    \"port\": 3040,\n    \"@timestamp\": \"2020-06-09T00:09:32.772Z\",\n    \"api\": {\n      \"path\": \"/pets/{id}\",\n      \"query\": \"GET /pets/{id}\",\n      \"swagger\": true,\n      \"deprecated\": false,\n      \"operationId\": \"find pet by id\",\n      \"params\": {\n        \"id\": \"abcde\"\n      }\n    }\n  },\n  {\n    \"path\": \"/pets\",\n    \"method\": \"POST\",\n    \"query\": \"POST /pets\",\n    \"startts\": 1591661372771,\n    \"endts\": 1591661372817,\n    \"responsetime\": 46,\n    \"node\": {\n      \"name\": \"swagger-stats-fastify\",\n      \"version\": \"0.95.17\",\n      \"hostname\": \"sv5\",\n      \"ip\": \"192.168.1.71\"\n    },\n    \"http\": {\n      \"request\": {\n        \"url\": \"/pets\",\n        \"headers\": {\n          \"x-sws-res\": \"{\\\"code\\\":\\\"200\\\",\\\"message\\\":\\\"OK\\\",\\\"delay\\\":45,\\\"payloadsize\\\":176}\",\n          \"content-type\": \"application/json\",\n          \"content-length\": \"138\",\n          \"host\": \"localhost:3040\",\n          \"connection\": \"close\"\n        },\n        \"clength\": 138,\n        \"route_path\": \"/pet*\",\n        \"query\": {}\n      },\n      \"response\": {\n        \"code\": 200,\n        \"class\": \"success\",\n        \"phrase\": \"OK\",\n        \"headers\": {},\n        \"clength\": 176\n      }\n    },\n    \"ip\": \"127.0.0.1\",\n    \"real_ip\": \"127.0.0.1\",\n    \"port\": 3040,\n    \"@timestamp\": \"2020-06-09T00:09:32.771Z\",\n    \"api\": {\n      \"path\": \"/pets\",\n      \"query\": \"POST /pets\",\n      \"swagger\": true,\n      \"deprecated\": false,\n      \"operationId\": \"addPet\"\n    }\n  },\n  {\n    \"path\": \"/pets\",\n    \"method\": \"GET\",\n    \"query\": \"GET /pets\",\n    \"startts\": 1591661372771,\n    \"endts\": 1591661372832,\n    \"responsetime\": 61,\n    \"node\": {\n      \"name\": \"swagger-stats-fastify\",\n      \"version\": \"0.95.17\",\n      \"hostname\": \"sv5\",\n      \"ip\": \"192.168.1.71\"\n    },\n    \"http\": {\n      \"request\": {\n        \"url\": \"/pets\",\n        \"headers\": {\n          \"x-sws-res\": \"{\\\"code\\\":\\\"200\\\",\\\"message\\\":\\\"OK\\\",\\\"delay\\\":61,\\\"payloadsize\\\":141}\",\n          \"host\": \"localhost:3040\",\n          \"connection\": \"close\"\n        },\n        \"clength\": 0,\n        \"route_path\": \"/pet*\",\n        \"query\": {}\n      },\n      \"response\": {\n        \"code\": 200,\n        \"class\": \"success\",\n        \"phrase\": \"OK\",\n        \"headers\": {},\n        \"clength\": 141\n      }\n    },\n    \"ip\": \"127.0.0.1\",\n    \"real_ip\": \"127.0.0.1\",\n    \"port\": 3040,\n    \"@timestamp\": \"2020-06-09T00:09:32.771Z\",\n    \"api\": {\n      \"path\": \"/pets\",\n      \"query\": \"GET /pets\",\n      \"swagger\": true,\n      \"deprecated\": false,\n      \"operationId\": \"findPets\",\n      \"params\": {}\n    }\n  },\n  {\n    \"path\": \"/pets/abcde\",\n    \"method\": \"DELETE\",\n    \"query\": \"DELETE /pets/abcde\",\n    \"startts\": 1591661372177,\n    \"endts\": 1591661372240,\n    \"responsetime\": 63,\n    \"node\": {\n      \"name\": \"swagger-stats-fastify\",\n      \"version\": \"0.95.17\",\n      \"hostname\": \"sv5\",\n      \"ip\": \"192.168.1.71\"\n    },\n    \"http\": {\n      \"request\": {\n        \"url\": \"/pets/abcde\",\n        \"headers\": {\n          \"x-sws-res\": \"{\\\"code\\\":\\\"200\\\",\\\"message\\\":\\\"OK\\\",\\\"delay\\\":62,\\\"payloadsize\\\":81}\",\n          \"host\": \"localhost:3040\",\n          \"connection\": \"close\"\n        },\n        \"clength\": 0,\n        \"route_path\": \"/pet*\",\n        \"query\": {}\n      },\n      \"response\": {\n        \"code\": 200,\n        \"class\": \"success\",\n        \"phrase\": \"OK\",\n        \"headers\": {},\n        \"clength\": 81\n      }\n    },\n    \"ip\": \"127.0.0.1\",\n    \"real_ip\": \"127.0.0.1\",\n    \"port\": 3040,\n    \"@timestamp\": \"2020-06-09T00:09:32.177Z\",\n    \"api\": {\n      \"path\": \"/pets/{id}\",\n      \"query\": \"DELETE /pets/{id}\",\n      \"swagger\": true,\n      \"deprecated\": false,\n      \"operationId\": \"deletePet\",\n      \"params\": {\n        \"id\": \"abcde\"\n      }\n    }\n  },\n  {\n    \"path\": \"/pets/abcde\",\n    \"method\": \"GET\",\n    \"query\": \"GET /pets/abcde\",\n    \"startts\": 1591661372176,\n    \"endts\": 1591661372251,\n    \"responsetime\": 75,\n    \"node\": {\n      \"name\": \"swagger-stats-fastify\",\n      \"version\": \"0.95.17\",\n      \"hostname\": \"sv5\",\n      \"ip\": \"192.168.1.71\"\n    },\n    \"http\": {\n      \"request\": {\n        \"url\": \"/pets/abcde\",\n        \"headers\": {\n          \"x-sws-res\": \"{\\\"code\\\":\\\"200\\\",\\\"message\\\":\\\"OK\\\",\\\"delay\\\":73,\\\"payloadsize\\\":30}\",\n          \"host\": \"localhost:3040\",\n          \"connection\": \"close\"\n        },\n        \"clength\": 0,\n        \"route_path\": \"/pet*\",\n        \"query\": {}\n      },\n      \"response\": {\n        \"code\": 200,\n        \"class\": \"success\",\n        \"phrase\": \"OK\",\n        \"headers\": {},\n        \"clength\": 30\n      }\n    },\n    \"ip\": \"127.0.0.1\",\n    \"real_ip\": \"127.0.0.1\",\n    \"port\": 3040,\n    \"@timestamp\": \"2020-06-09T00:09:32.176Z\",\n    \"api\": {\n      \"path\": \"/pets/{id}\",\n      \"query\": \"GET /pets/{id}\",\n      \"swagger\": true,\n      \"deprecated\": false,\n      \"operationId\": \"find pet by id\",\n      \"params\": {\n        \"id\": \"abcde\"\n      }\n    }\n  },\n  {\n    \"path\": \"/pets/abcde\",\n    \"method\": \"DELETE\",\n    \"query\": \"DELETE /pets/abcde\",\n    \"startts\": 1591661371771,\n    \"endts\": 1591661371773,\n    \"responsetime\": 2,\n    \"node\": {\n      \"name\": \"swagger-stats-fastify\",\n      \"version\": \"0.95.17\",\n      \"hostname\": \"sv5\",\n      \"ip\": \"192.168.1.71\"\n    },\n    \"http\": {\n      \"request\": {\n        \"url\": \"/pets/abcde\",\n        \"headers\": {\n          \"x-sws-res\": \"{\\\"code\\\":\\\"200\\\",\\\"message\\\":\\\"OK\\\",\\\"delay\\\":2,\\\"payloadsize\\\":113}\",\n          \"host\": \"localhost:3040\",\n          \"connection\": \"close\"\n        },\n        \"clength\": 0,\n        \"route_path\": \"/pet*\",\n        \"query\": {}\n      },\n      \"response\": {\n        \"code\": 200,\n        \"class\": \"success\",\n        \"phrase\": \"OK\",\n        \"headers\": {},\n        \"clength\": 113\n      }\n    },\n    \"ip\": \"127.0.0.1\",\n    \"real_ip\": \"127.0.0.1\",\n    \"port\": 3040,\n    \"@timestamp\": \"2020-06-09T00:09:31.771Z\",\n    \"api\": {\n      \"path\": \"/pets/{id}\",\n      \"query\": \"DELETE /pets/{id}\",\n      \"swagger\": true,\n      \"deprecated\": false,\n      \"operationId\": \"deletePet\",\n      \"params\": {\n        \"id\": \"abcde\"\n      }\n    }\n  },\n  {\n    \"path\": \"/pets/abcde\",\n    \"method\": \"GET\",\n    \"query\": \"GET /pets/abcde\",\n    \"startts\": 1591661371771,\n    \"endts\": 1591661371809,\n    \"responsetime\": 38,\n    \"node\": {\n      \"name\": \"swagger-stats-fastify\",\n      \"version\": \"0.95.17\",\n      \"hostname\": \"sv5\",\n      \"ip\": \"192.168.1.71\"\n    },\n    \"http\": {\n      \"request\": {\n        \"url\": \"/pets/abcde\",\n        \"headers\": {\n          \"x-sws-res\": \"{\\\"code\\\":404,\\\"message\\\":\\\"Not Found\\\",\\\"delay\\\":38,\\\"payloadsize\\\":66}\",\n          \"host\": \"localhost:3040\",\n          \"connection\": \"close\"\n        },\n        \"clength\": 0,\n        \"route_path\": \"/pet*\",\n        \"query\": {}\n      },\n      \"response\": {\n        \"code\": 404,\n        \"class\": \"client_error\",\n        \"phrase\": \"Not Found\",\n        \"headers\": {},\n        \"clength\": 66\n      }\n    },\n    \"ip\": \"127.0.0.1\",\n    \"real_ip\": \"127.0.0.1\",\n    \"port\": 3040,\n    \"@timestamp\": \"2020-06-09T00:09:31.771Z\",\n    \"api\": {\n      \"path\": \"/pets/{id}\",\n      \"query\": \"GET /pets/{id}\",\n      \"swagger\": true,\n      \"deprecated\": false,\n      \"operationId\": \"find pet by id\",\n      \"params\": {\n        \"id\": \"abcde\"\n      }\n    }\n  },\n  {\n    \"path\": \"/pets\",\n    \"method\": \"POST\",\n    \"query\": \"POST /pets\",\n    \"startts\": 1591661371770,\n    \"endts\": 1591661371816,\n    \"responsetime\": 46,\n    \"node\": {\n      \"name\": \"swagger-stats-fastify\",\n      \"version\": \"0.95.17\",\n      \"hostname\": \"sv5\",\n      \"ip\": \"192.168.1.71\"\n    },\n    \"http\": {\n      \"request\": {\n        \"url\": \"/pets\",\n        \"headers\": {\n          \"x-sws-res\": \"{\\\"code\\\":501,\\\"message\\\":\\\"Not Implemented\\\",\\\"delay\\\":46,\\\"payloadsize\\\":162}\",\n          \"content-type\": \"application/json\",\n          \"content-length\": \"41\",\n          \"host\": \"localhost:3040\",\n          \"connection\": \"close\"\n        },\n        \"clength\": 41,\n        \"route_path\": \"/pet*\",\n        \"query\": {}\n      },\n      \"response\": {\n        \"code\": 501,\n        \"class\": \"server_error\",\n        \"phrase\": \"Not Implemented\",\n        \"headers\": {},\n        \"clength\": 162\n      }\n    },\n    \"ip\": \"127.0.0.1\",\n    \"real_ip\": \"127.0.0.1\",\n    \"port\": 3040,\n    \"@timestamp\": \"2020-06-09T00:09:31.770Z\",\n    \"api\": {\n      \"path\": \"/pets\",\n      \"query\": \"POST /pets\",\n      \"swagger\": true,\n      \"deprecated\": false,\n      \"operationId\": \"addPet\"\n    }\n  },\n  {\n    \"path\": \"/pets/abcde\",\n    \"method\": \"GET\",\n    \"query\": \"GET /pets/abcde\",\n    \"startts\": 1591661371312,\n    \"endts\": 1591661371337,\n    \"responsetime\": 25,\n    \"node\": {\n      \"name\": \"swagger-stats-fastify\",\n      \"version\": \"0.95.17\",\n      \"hostname\": \"sv5\",\n      \"ip\": \"192.168.1.71\"\n    },\n    \"http\": {\n      \"request\": {\n        \"url\": \"/pets/abcde\",\n        \"headers\": {\n          \"x-sws-res\": \"{\\\"code\\\":401,\\\"message\\\":\\\"Unauthorized\\\",\\\"delay\\\":24,\\\"payloadsize\\\":67}\",\n          \"host\": \"localhost:3040\",\n          \"connection\": \"close\"\n        },\n        \"clength\": 0,\n        \"route_path\": \"/pet*\",\n        \"query\": {}\n      },\n      \"response\": {\n        \"code\": 401,\n        \"class\": \"client_error\",\n        \"phrase\": \"Unauthorized\",\n        \"headers\": {},\n        \"clength\": 67\n      }\n    },\n    \"ip\": \"127.0.0.1\",\n    \"real_ip\": \"127.0.0.1\",\n    \"port\": 3040,\n    \"@timestamp\": \"2020-06-09T00:09:31.312Z\",\n    \"api\": {\n      \"path\": \"/pets/{id}\",\n      \"query\": \"GET /pets/{id}\",\n      \"swagger\": true,\n      \"deprecated\": false,\n      \"operationId\": \"find pet by id\",\n      \"params\": {\n        \"id\": \"abcde\"\n      }\n    }\n  },\n  {\n    \"path\": \"/pets/abcde\",\n    \"method\": \"DELETE\",\n    \"query\": \"DELETE /pets/abcde\",\n    \"startts\": 1591661370927,\n    \"endts\": 1591661370952,\n    \"responsetime\": 25,\n    \"node\": {\n      \"name\": \"swagger-stats-fastify\",\n      \"version\": \"0.95.17\",\n      \"hostname\": \"sv5\",\n      \"ip\": \"192.168.1.71\"\n    },\n    \"http\": {\n      \"request\": {\n        \"url\": \"/pets/abcde\",\n        \"headers\": {\n          \"x-sws-res\": \"{\\\"code\\\":\\\"200\\\",\\\"message\\\":\\\"OK\\\",\\\"delay\\\":25,\\\"payloadsize\\\":195}\",\n          \"host\": \"localhost:3040\",\n          \"connection\": \"close\"\n        },\n        \"clength\": 0,\n        \"route_path\": \"/pet*\",\n        \"query\": {}\n      },\n      \"response\": {\n        \"code\": 200,\n        \"class\": \"success\",\n        \"phrase\": \"OK\",\n        \"headers\": {},\n        \"clength\": 195\n      }\n    },\n    \"ip\": \"127.0.0.1\",\n    \"real_ip\": \"127.0.0.1\",\n    \"port\": 3040,\n    \"@timestamp\": \"2020-06-09T00:09:30.927Z\",\n    \"api\": {\n      \"path\": \"/pets/{id}\",\n      \"query\": \"DELETE /pets/{id}\",\n      \"swagger\": true,\n      \"deprecated\": false,\n      \"operationId\": \"deletePet\",\n      \"params\": {\n        \"id\": \"abcde\"\n      }\n    }\n  },\n  {\n    \"path\": \"/pets/abcde\",\n    \"method\": \"GET\",\n    \"query\": \"GET /pets/abcde\",\n    \"startts\": 1591661370926,\n    \"endts\": 1591661370936,\n    \"responsetime\": 10,\n    \"node\": {\n      \"name\": \"swagger-stats-fastify\",\n      \"version\": \"0.95.17\",\n      \"hostname\": \"sv5\",\n      \"ip\": \"192.168.1.71\"\n    },\n    \"http\": {\n      \"request\": {\n        \"url\": \"/pets/abcde\",\n        \"headers\": {\n          \"x-sws-res\": \"{\\\"code\\\":\\\"200\\\",\\\"message\\\":\\\"OK\\\",\\\"delay\\\":10,\\\"payloadsize\\\":42}\",\n          \"host\": \"localhost:3040\",\n          \"connection\": \"close\"\n        },\n        \"clength\": 0,\n        \"route_path\": \"/pet*\",\n        \"query\": {}\n      },\n      \"response\": {\n        \"code\": 200,\n        \"class\": \"success\",\n        \"phrase\": \"OK\",\n        \"headers\": {},\n        \"clength\": 42\n      }\n    },\n    \"ip\": \"127.0.0.1\",\n    \"real_ip\": \"127.0.0.1\",\n    \"port\": 3040,\n    \"@timestamp\": \"2020-06-09T00:09:30.926Z\",\n    \"api\": {\n      \"path\": \"/pets/{id}\",\n      \"query\": \"GET /pets/{id}\",\n      \"swagger\": true,\n      \"deprecated\": false,\n      \"operationId\": \"find pet by id\",\n      \"params\": {\n        \"id\": \"abcde\"\n      }\n    }\n  },\n  {\n    \"path\": \"/pets\",\n    \"method\": \"POST\",\n    \"query\": \"POST /pets\",\n    \"startts\": 1591661370926,\n    \"endts\": 1591661371024,\n    \"responsetime\": 98,\n    \"node\": {\n      \"name\": \"swagger-stats-fastify\",\n      \"version\": \"0.95.17\",\n      \"hostname\": \"sv5\",\n      \"ip\": \"192.168.1.71\"\n    },\n    \"http\": {\n      \"request\": {\n        \"url\": \"/pets\",\n        \"headers\": {\n          \"x-sws-res\": \"{\\\"code\\\":501,\\\"message\\\":\\\"Not Implemented\\\",\\\"delay\\\":97,\\\"payloadsize\\\":167}\",\n          \"content-type\": \"application/json\",\n          \"content-length\": \"55\",\n          \"host\": \"localhost:3040\",\n          \"connection\": \"close\"\n        },\n        \"clength\": 55,\n        \"route_path\": \"/pet*\",\n        \"query\": {}\n      },\n      \"response\": {\n        \"code\": 501,\n        \"class\": \"server_error\",\n        \"phrase\": \"Not Implemented\",\n        \"headers\": {},\n        \"clength\": 167\n      }\n    },\n    \"ip\": \"127.0.0.1\",\n    \"real_ip\": \"127.0.0.1\",\n    \"port\": 3040,\n    \"@timestamp\": \"2020-06-09T00:09:30.926Z\",\n    \"api\": {\n      \"path\": \"/pets\",\n      \"query\": \"POST /pets\",\n      \"swagger\": true,\n      \"deprecated\": false,\n      \"operationId\": \"addPet\"\n    }\n  },\n  {\n    \"path\": \"/pets\",\n    \"method\": \"GET\",\n    \"query\": \"GET /pets\",\n    \"startts\": 1591661370925,\n    \"endts\": 1591661370954,\n    \"responsetime\": 29,\n    \"node\": {\n      \"name\": \"swagger-stats-fastify\",\n      \"version\": \"0.95.17\",\n      \"hostname\": \"sv5\",\n      \"ip\": \"192.168.1.71\"\n    },\n    \"http\": {\n      \"request\": {\n        \"url\": \"/pets\",\n        \"headers\": {\n          \"x-sws-res\": \"{\\\"code\\\":401,\\\"message\\\":\\\"Unauthorized\\\",\\\"delay\\\":29,\\\"payloadsize\\\":198}\",\n          \"host\": \"localhost:3040\",\n          \"connection\": \"close\"\n        },\n        \"clength\": 0,\n        \"route_path\": \"/pet*\",\n        \"query\": {}\n      },\n      \"response\": {\n        \"code\": 401,\n        \"class\": \"client_error\",\n        \"phrase\": \"Unauthorized\",\n        \"headers\": {},\n        \"clength\": 198\n      }\n    },\n    \"ip\": \"127.0.0.1\",\n    \"real_ip\": \"127.0.0.1\",\n    \"port\": 3040,\n    \"@timestamp\": \"2020-06-09T00:09:30.925Z\",\n    \"api\": {\n      \"path\": \"/pets\",\n      \"query\": \"GET /pets\",\n      \"swagger\": true,\n      \"deprecated\": false,\n      \"operationId\": \"findPets\",\n      \"params\": {}\n    }\n  },\n  {\n    \"path\": \"/pets/abcde\",\n    \"method\": \"GET\",\n    \"query\": \"GET /pets/abcde\",\n    \"startts\": 1591661370607,\n    \"endts\": 1591661370700,\n    \"responsetime\": 93,\n    \"node\": {\n      \"name\": \"swagger-stats-fastify\",\n      \"version\": \"0.95.17\",\n      \"hostname\": \"sv5\",\n      \"ip\": \"192.168.1.71\"\n    },\n    \"http\": {\n      \"request\": {\n        \"url\": \"/pets/abcde\",\n        \"headers\": {\n          \"x-sws-res\": \"{\\\"code\\\":\\\"200\\\",\\\"message\\\":\\\"OK\\\",\\\"delay\\\":92,\\\"payloadsize\\\":28}\",\n          \"host\": \"localhost:3040\",\n          \"connection\": \"close\"\n        },\n        \"clength\": 0,\n        \"route_path\": \"/pet*\",\n        \"query\": {}\n      },\n      \"response\": {\n        \"code\": 200,\n        \"class\": \"success\",\n        \"phrase\": \"OK\",\n        \"headers\": {},\n        \"clength\": 28\n      }\n    },\n    \"ip\": \"127.0.0.1\",\n    \"real_ip\": \"127.0.0.1\",\n    \"port\": 3040,\n    \"@timestamp\": \"2020-06-09T00:09:30.607Z\",\n    \"api\": {\n      \"path\": \"/pets/{id}\",\n      \"query\": \"GET /pets/{id}\",\n      \"swagger\": true,\n      \"deprecated\": false,\n      \"operationId\": \"find pet by id\",\n      \"params\": {\n        \"id\": \"abcde\"\n      }\n    }\n  },\n  {\n    \"path\": \"/pets\",\n    \"method\": \"POST\",\n    \"query\": \"POST /pets\",\n    \"startts\": 1591661370606,\n    \"endts\": 1591661370640,\n    \"responsetime\": 34,\n    \"node\": {\n      \"name\": \"swagger-stats-fastify\",\n      \"version\": \"0.95.17\",\n      \"hostname\": \"sv5\",\n      \"ip\": \"192.168.1.71\"\n    },\n    \"http\": {\n      \"request\": {\n        \"url\": \"/pets\",\n        \"headers\": {\n          \"x-sws-res\": \"{\\\"code\\\":\\\"200\\\",\\\"message\\\":\\\"OK\\\",\\\"delay\\\":34,\\\"payloadsize\\\":145}\",\n          \"content-type\": \"application/json\",\n          \"content-length\": \"15\",\n          \"host\": \"localhost:3040\",\n          \"connection\": \"close\"\n        },\n        \"clength\": 15,\n        \"route_path\": \"/pet*\",\n        \"query\": {}\n      },\n      \"response\": {\n        \"code\": 200,\n        \"class\": \"success\",\n        \"phrase\": \"OK\",\n        \"headers\": {},\n        \"clength\": 145\n      }\n    },\n    \"ip\": \"127.0.0.1\",\n    \"real_ip\": \"127.0.0.1\",\n    \"port\": 3040,\n    \"@timestamp\": \"2020-06-09T00:09:30.606Z\",\n    \"api\": {\n      \"path\": \"/pets\",\n      \"query\": \"POST /pets\",\n      \"swagger\": true,\n      \"deprecated\": false,\n      \"operationId\": \"addPet\"\n    }\n  },\n  {\n    \"path\": \"/pets\",\n    \"method\": \"GET\",\n    \"query\": \"GET /pets\",\n    \"startts\": 1591661370606,\n    \"endts\": 1591661370675,\n    \"responsetime\": 69,\n    \"node\": {\n      \"name\": \"swagger-stats-fastify\",\n      \"version\": \"0.95.17\",\n      \"hostname\": \"sv5\",\n      \"ip\": \"192.168.1.71\"\n    },\n    \"http\": {\n      \"request\": {\n        \"url\": \"/pets\",\n        \"headers\": {\n          \"x-sws-res\": \"{\\\"code\\\":\\\"200\\\",\\\"message\\\":\\\"OK\\\",\\\"delay\\\":68,\\\"payloadsize\\\":96}\",\n          \"host\": \"localhost:3040\",\n          \"connection\": \"close\"\n        },\n        \"clength\": 0,\n        \"route_path\": \"/pet*\",\n        \"query\": {}\n      },\n      \"response\": {\n        \"code\": 200,\n        \"class\": \"success\",\n        \"phrase\": \"OK\",\n        \"headers\": {},\n        \"clength\": 96\n      }\n    },\n    \"ip\": \"127.0.0.1\",\n    \"real_ip\": \"127.0.0.1\",\n    \"port\": 3040,\n    \"@timestamp\": \"2020-06-09T00:09:30.606Z\",\n    \"api\": {\n      \"path\": \"/pets\",\n      \"query\": \"GET /pets\",\n      \"swagger\": true,\n      \"deprecated\": false,\n      \"operationId\": \"findPets\",\n      \"params\": {}\n    }\n  },\n  {\n    \"path\": \"/pets\",\n    \"method\": \"GET\",\n    \"query\": \"GET /pets\",\n    \"startts\": 1591661370238,\n    \"endts\": 1591661370296,\n    \"responsetime\": 58,\n    \"node\": {\n      \"name\": \"swagger-stats-fastify\",\n      \"version\": \"0.95.17\",\n      \"hostname\": \"sv5\",\n      \"ip\": \"192.168.1.71\"\n    },\n    \"http\": {\n      \"request\": {\n        \"url\": \"/pets\",\n        \"headers\": {\n          \"x-sws-res\": \"{\\\"code\\\":\\\"200\\\",\\\"message\\\":\\\"OK\\\",\\\"delay\\\":57,\\\"payloadsize\\\":198}\",\n          \"host\": \"localhost:3040\",\n          \"connection\": \"close\"\n        },\n        \"clength\": 0,\n        \"route_path\": \"/pet*\",\n        \"query\": {}\n      },\n      \"response\": {\n        \"code\": 200,\n        \"class\": \"success\",\n        \"phrase\": \"OK\",\n        \"headers\": {},\n        \"clength\": 198\n      }\n    },\n    \"ip\": \"127.0.0.1\",\n    \"real_ip\": \"127.0.0.1\",\n    \"port\": 3040,\n    \"@timestamp\": \"2020-06-09T00:09:30.238Z\",\n    \"api\": {\n      \"path\": \"/pets\",\n      \"query\": \"GET /pets\",\n      \"swagger\": true,\n      \"deprecated\": false,\n      \"operationId\": \"findPets\",\n      \"params\": {}\n    }\n  },\n  {\n    \"path\": \"/pets/abcde\",\n    \"method\": \"DELETE\",\n    \"query\": \"DELETE /pets/abcde\",\n    \"startts\": 1591661369939,\n    \"endts\": 1591661369961,\n    \"responsetime\": 22,\n    \"node\": {\n      \"name\": \"swagger-stats-fastify\",\n      \"version\": \"0.95.17\",\n      \"hostname\": \"sv5\",\n      \"ip\": \"192.168.1.71\"\n    },\n    \"http\": {\n      \"request\": {\n        \"url\": \"/pets/abcde\",\n        \"headers\": {\n          \"x-sws-res\": \"{\\\"code\\\":\\\"200\\\",\\\"message\\\":\\\"OK\\\",\\\"delay\\\":21,\\\"payloadsize\\\":21}\",\n          \"host\": \"localhost:3040\",\n          \"connection\": \"close\"\n        },\n        \"clength\": 0,\n        \"route_path\": \"/pet*\",\n        \"query\": {}\n      },\n      \"response\": {\n        \"code\": 200,\n        \"class\": \"success\",\n        \"phrase\": \"OK\",\n        \"headers\": {},\n        \"clength\": 21\n      }\n    },\n    \"ip\": \"127.0.0.1\",\n    \"real_ip\": \"127.0.0.1\",\n    \"port\": 3040,\n    \"@timestamp\": \"2020-06-09T00:09:29.939Z\",\n    \"api\": {\n      \"path\": \"/pets/{id}\",\n      \"query\": \"DELETE /pets/{id}\",\n      \"swagger\": true,\n      \"deprecated\": false,\n      \"operationId\": \"deletePet\",\n      \"params\": {\n        \"id\": \"abcde\"\n      }\n    }\n  },\n  {\n    \"path\": \"/pets\",\n    \"method\": \"GET\",\n    \"query\": \"GET /pets\",\n    \"startts\": 1591661369939,\n    \"endts\": 1591661370021,\n    \"responsetime\": 82,\n    \"node\": {\n      \"name\": \"swagger-stats-fastify\",\n      \"version\": \"0.95.17\",\n      \"hostname\": \"sv5\",\n      \"ip\": \"192.168.1.71\"\n    },\n    \"http\": {\n      \"request\": {\n        \"url\": \"/pets\",\n        \"headers\": {\n          \"x-sws-res\": \"{\\\"code\\\":\\\"200\\\",\\\"message\\\":\\\"OK\\\",\\\"delay\\\":82,\\\"payloadsize\\\":17}\",\n          \"host\": \"localhost:3040\",\n          \"connection\": \"close\"\n        },\n        \"clength\": 0,\n        \"route_path\": \"/pet*\",\n        \"query\": {}\n      },\n      \"response\": {\n        \"code\": 200,\n        \"class\": \"success\",\n        \"phrase\": \"OK\",\n        \"headers\": {},\n        \"clength\": 17\n      }\n    },\n    \"ip\": \"127.0.0.1\",\n    \"real_ip\": \"127.0.0.1\",\n    \"port\": 3040,\n    \"@timestamp\": \"2020-06-09T00:09:29.939Z\",\n    \"api\": {\n      \"path\": \"/pets\",\n      \"query\": \"GET /pets\",\n      \"swagger\": true,\n      \"deprecated\": false,\n      \"operationId\": \"findPets\",\n      \"params\": {}\n    }\n  },\n  {\n    \"path\": \"/pets/abcde\",\n    \"method\": \"DELETE\",\n    \"query\": \"DELETE /pets/abcde\",\n    \"startts\": 1591661369508,\n    \"endts\": 1591661369602,\n    \"responsetime\": 94,\n    \"node\": {\n      \"name\": \"swagger-stats-fastify\",\n      \"version\": \"0.95.17\",\n      \"hostname\": \"sv5\",\n      \"ip\": \"192.168.1.71\"\n    },\n    \"http\": {\n      \"request\": {\n        \"url\": \"/pets/abcde\",\n        \"headers\": {\n          \"x-sws-res\": \"{\\\"code\\\":\\\"200\\\",\\\"message\\\":\\\"OK\\\",\\\"delay\\\":94,\\\"payloadsize\\\":153}\",\n          \"host\": \"localhost:3040\",\n          \"connection\": \"close\"\n        },\n        \"clength\": 0,\n        \"route_path\": \"/pet*\",\n        \"query\": {}\n      },\n      \"response\": {\n        \"code\": 200,\n        \"class\": \"success\",\n        \"phrase\": \"OK\",\n        \"headers\": {},\n        \"clength\": 153\n      }\n    },\n    \"ip\": \"127.0.0.1\",\n    \"real_ip\": \"127.0.0.1\",\n    \"port\": 3040,\n    \"@timestamp\": \"2020-06-09T00:09:29.508Z\",\n    \"api\": {\n      \"path\": \"/pets/{id}\",\n      \"query\": \"DELETE /pets/{id}\",\n      \"swagger\": true,\n      \"deprecated\": false,\n      \"operationId\": \"deletePet\",\n      \"params\": {\n        \"id\": \"abcde\"\n      }\n    }\n  },\n  {\n    \"path\": \"/pets/abcde\",\n    \"method\": \"GET\",\n    \"query\": \"GET /pets/abcde\",\n    \"startts\": 1591661369507,\n    \"endts\": 1591661369517,\n    \"responsetime\": 10,\n    \"node\": {\n      \"name\": \"swagger-stats-fastify\",\n      \"version\": \"0.95.17\",\n      \"hostname\": \"sv5\",\n      \"ip\": \"192.168.1.71\"\n    },\n    \"http\": {\n      \"request\": {\n        \"url\": \"/pets/abcde\",\n        \"headers\": {\n          \"x-sws-res\": \"{\\\"code\\\":\\\"200\\\",\\\"message\\\":\\\"OK\\\",\\\"delay\\\":8,\\\"payloadsize\\\":148}\",\n          \"host\": \"localhost:3040\",\n          \"connection\": \"close\"\n        },\n        \"clength\": 0,\n        \"route_path\": \"/pet*\",\n        \"query\": {}\n      },\n      \"response\": {\n        \"code\": 200,\n        \"class\": \"success\",\n        \"phrase\": \"OK\",\n        \"headers\": {},\n        \"clength\": 148\n      }\n    },\n    \"ip\": \"127.0.0.1\",\n    \"real_ip\": \"127.0.0.1\",\n    \"port\": 3040,\n    \"@timestamp\": \"2020-06-09T00:09:29.507Z\",\n    \"api\": {\n      \"path\": \"/pets/{id}\",\n      \"query\": \"GET /pets/{id}\",\n      \"swagger\": true,\n      \"deprecated\": false,\n      \"operationId\": \"find pet by id\",\n      \"params\": {\n        \"id\": \"abcde\"\n      }\n    }\n  },\n  {\n    \"path\": \"/pets\",\n    \"method\": \"POST\",\n    \"query\": \"POST /pets\",\n    \"startts\": 1591661369507,\n    \"endts\": 1591661369596,\n    \"responsetime\": 89,\n    \"node\": {\n      \"name\": \"swagger-stats-fastify\",\n      \"version\": \"0.95.17\",\n      \"hostname\": \"sv5\",\n      \"ip\": \"192.168.1.71\"\n    },\n    \"http\": {\n      \"request\": {\n        \"url\": \"/pets\",\n        \"headers\": {\n          \"x-sws-res\": \"{\\\"code\\\":\\\"200\\\",\\\"message\\\":\\\"OK\\\",\\\"delay\\\":89,\\\"payloadsize\\\":175}\",\n          \"content-type\": \"application/json\",\n          \"content-length\": \"192\",\n          \"host\": \"localhost:3040\",\n          \"connection\": \"close\"\n        },\n        \"clength\": 192,\n        \"route_path\": \"/pet*\",\n        \"query\": {}\n      },\n      \"response\": {\n        \"code\": 200,\n        \"class\": \"success\",\n        \"phrase\": \"OK\",\n        \"headers\": {},\n        \"clength\": 175\n      }\n    },\n    \"ip\": \"127.0.0.1\",\n    \"real_ip\": \"127.0.0.1\",\n    \"port\": 3040,\n    \"@timestamp\": \"2020-06-09T00:09:29.507Z\",\n    \"api\": {\n      \"path\": \"/pets\",\n      \"query\": \"POST /pets\",\n      \"swagger\": true,\n      \"deprecated\": false,\n      \"operationId\": \"addPet\"\n    }\n  },\n  {\n    \"path\": \"/pets\",\n    \"method\": \"POST\",\n    \"query\": \"POST /pets\",\n    \"startts\": 1591661368985,\n    \"endts\": 1591661368993,\n    \"responsetime\": 8,\n    \"node\": {\n      \"name\": \"swagger-stats-fastify\",\n      \"version\": \"0.95.17\",\n      \"hostname\": \"sv5\",\n      \"ip\": \"192.168.1.71\"\n    },\n    \"http\": {\n      \"request\": {\n        \"url\": \"/pets\",\n        \"headers\": {\n          \"x-sws-res\": \"{\\\"code\\\":\\\"200\\\",\\\"message\\\":\\\"OK\\\",\\\"delay\\\":7,\\\"payloadsize\\\":116}\",\n          \"content-type\": \"application/json\",\n          \"content-length\": \"60\",\n          \"host\": \"localhost:3040\",\n          \"connection\": \"close\"\n        },\n        \"clength\": 60,\n        \"route_path\": \"/pet*\",\n        \"query\": {}\n      },\n      \"response\": {\n        \"code\": 200,\n        \"class\": \"success\",\n        \"phrase\": \"OK\",\n        \"headers\": {},\n        \"clength\": 116\n      }\n    },\n    \"ip\": \"127.0.0.1\",\n    \"real_ip\": \"127.0.0.1\",\n    \"port\": 3040,\n    \"@timestamp\": \"2020-06-09T00:09:28.985Z\",\n    \"api\": {\n      \"path\": \"/pets\",\n      \"query\": \"POST /pets\",\n      \"swagger\": true,\n      \"deprecated\": false,\n      \"operationId\": \"addPet\"\n    }\n  },\n  {\n    \"path\": \"/pets/abcde\",\n    \"method\": \"GET\",\n    \"query\": \"GET /pets/abcde\",\n    \"startts\": 1591661368985,\n    \"endts\": 1591661369033,\n    \"responsetime\": 48,\n    \"node\": {\n      \"name\": \"swagger-stats-fastify\",\n      \"version\": \"0.95.17\",\n      \"hostname\": \"sv5\",\n      \"ip\": \"192.168.1.71\"\n    },\n    \"http\": {\n      \"request\": {\n        \"url\": \"/pets/abcde\",\n        \"headers\": {\n          \"x-sws-res\": \"{\\\"code\\\":\\\"200\\\",\\\"message\\\":\\\"OK\\\",\\\"delay\\\":47,\\\"payloadsize\\\":134}\",\n          \"host\": \"localhost:3040\",\n          \"connection\": \"close\"\n        },\n        \"clength\": 0,\n        \"route_path\": \"/pet*\",\n        \"query\": {}\n      },\n      \"response\": {\n        \"code\": 200,\n        \"class\": \"success\",\n        \"phrase\": \"OK\",\n        \"headers\": {},\n        \"clength\": 134\n      }\n    },\n    \"ip\": \"127.0.0.1\",\n    \"real_ip\": \"127.0.0.1\",\n    \"port\": 3040,\n    \"@timestamp\": \"2020-06-09T00:09:28.985Z\",\n    \"api\": {\n      \"path\": \"/pets/{id}\",\n      \"query\": \"GET /pets/{id}\",\n      \"swagger\": true,\n      \"deprecated\": false,\n      \"operationId\": \"find pet by id\",\n      \"params\": {\n        \"id\": \"abcde\"\n      }\n    }\n  },\n  {\n    \"path\": \"/pets\",\n    \"method\": \"GET\",\n    \"query\": \"GET /pets\",\n    \"startts\": 1591661368671,\n    \"endts\": 1591661368682,\n    \"responsetime\": 11,\n    \"node\": {\n      \"name\": \"swagger-stats-fastify\",\n      \"version\": \"0.95.17\",\n      \"hostname\": \"sv5\",\n      \"ip\": \"192.168.1.71\"\n    },\n    \"http\": {\n      \"request\": {\n        \"url\": \"/pets\",\n        \"headers\": {\n          \"x-sws-res\": \"{\\\"code\\\":\\\"200\\\",\\\"message\\\":\\\"OK\\\",\\\"delay\\\":11,\\\"payloadsize\\\":69}\",\n          \"host\": \"localhost:3040\",\n          \"connection\": \"close\"\n        },\n        \"clength\": 0,\n        \"route_path\": \"/pet*\",\n        \"query\": {}\n      },\n      \"response\": {\n        \"code\": 200,\n        \"class\": \"success\",\n        \"phrase\": \"OK\",\n        \"headers\": {},\n        \"clength\": 69\n      }\n    },\n    \"ip\": \"127.0.0.1\",\n    \"real_ip\": \"127.0.0.1\",\n    \"port\": 3040,\n    \"@timestamp\": \"2020-06-09T00:09:28.671Z\",\n    \"api\": {\n      \"path\": \"/pets\",\n      \"query\": \"GET /pets\",\n      \"swagger\": true,\n      \"deprecated\": false,\n      \"operationId\": \"findPets\",\n      \"params\": {}\n    }\n  },\n  {\n    \"path\": \"/pets\",\n    \"method\": \"POST\",\n    \"query\": \"POST /pets\",\n    \"startts\": 1591661368671,\n    \"endts\": 1591661368693,\n    \"responsetime\": 22,\n    \"node\": {\n      \"name\": \"swagger-stats-fastify\",\n      \"version\": \"0.95.17\",\n      \"hostname\": \"sv5\",\n      \"ip\": \"192.168.1.71\"\n    },\n    \"http\": {\n      \"request\": {\n        \"url\": \"/pets\",\n        \"headers\": {\n          \"x-sws-res\": \"{\\\"code\\\":404,\\\"message\\\":\\\"Not Found\\\",\\\"delay\\\":21,\\\"payloadsize\\\":39}\",\n          \"content-type\": \"application/json\",\n          \"content-length\": \"25\",\n          \"host\": \"localhost:3040\",\n          \"connection\": \"close\"\n        },\n        \"clength\": 25,\n        \"route_path\": \"/pet*\",\n        \"query\": {}\n      },\n      \"response\": {\n        \"code\": 404,\n        \"class\": \"client_error\",\n        \"phrase\": \"Not Found\",\n        \"headers\": {},\n        \"clength\": 39\n      }\n    },\n    \"ip\": \"127.0.0.1\",\n    \"real_ip\": \"127.0.0.1\",\n    \"port\": 3040,\n    \"@timestamp\": \"2020-06-09T00:09:28.671Z\",\n    \"api\": {\n      \"path\": \"/pets\",\n      \"query\": \"POST /pets\",\n      \"swagger\": true,\n      \"deprecated\": false,\n      \"operationId\": \"addPet\"\n    }\n  },\n  {\n    \"path\": \"/pets/abcde\",\n    \"method\": \"GET\",\n    \"query\": \"GET /pets/abcde\",\n    \"startts\": 1591661368324,\n    \"endts\": 1591661368376,\n    \"responsetime\": 52,\n    \"node\": {\n      \"name\": \"swagger-stats-fastify\",\n      \"version\": \"0.95.17\",\n      \"hostname\": \"sv5\",\n      \"ip\": \"192.168.1.71\"\n    },\n    \"http\": {\n      \"request\": {\n        \"url\": \"/pets/abcde\",\n        \"headers\": {\n          \"x-sws-res\": \"{\\\"code\\\":\\\"200\\\",\\\"message\\\":\\\"OK\\\",\\\"delay\\\":52,\\\"payloadsize\\\":2}\",\n          \"host\": \"localhost:3040\",\n          \"connection\": \"close\"\n        },\n        \"clength\": 0,\n        \"route_path\": \"/pet*\",\n        \"query\": {}\n      },\n      \"response\": {\n        \"code\": 200,\n        \"class\": \"success\",\n        \"phrase\": \"OK\",\n        \"headers\": {},\n        \"clength\": 5\n      }\n    },\n    \"ip\": \"127.0.0.1\",\n    \"real_ip\": \"127.0.0.1\",\n    \"port\": 3040,\n    \"@timestamp\": \"2020-06-09T00:09:28.324Z\",\n    \"api\": {\n      \"path\": \"/pets/{id}\",\n      \"query\": \"GET /pets/{id}\",\n      \"swagger\": true,\n      \"deprecated\": false,\n      \"operationId\": \"find pet by id\",\n      \"params\": {\n        \"id\": \"abcde\"\n      }\n    }\n  },\n  {\n    \"path\": \"/pets\",\n    \"method\": \"POST\",\n    \"query\": \"POST /pets\",\n    \"startts\": 1591661368323,\n    \"endts\": 1591661368367,\n    \"responsetime\": 44,\n    \"node\": {\n      \"name\": \"swagger-stats-fastify\",\n      \"version\": \"0.95.17\",\n      \"hostname\": \"sv5\",\n      \"ip\": \"192.168.1.71\"\n    },\n    \"http\": {\n      \"request\": {\n        \"url\": \"/pets\",\n        \"headers\": {\n          \"x-sws-res\": \"{\\\"code\\\":\\\"200\\\",\\\"message\\\":\\\"OK\\\",\\\"delay\\\":42,\\\"payloadsize\\\":25}\",\n          \"content-type\": \"application/json\",\n          \"content-length\": \"139\",\n          \"host\": \"localhost:3040\",\n          \"connection\": \"close\"\n        },\n        \"clength\": 139,\n        \"route_path\": \"/pet*\",\n        \"query\": {}\n      },\n      \"response\": {\n        \"code\": 200,\n        \"class\": \"success\",\n        \"phrase\": \"OK\",\n        \"headers\": {},\n        \"clength\": 25\n      }\n    },\n    \"ip\": \"127.0.0.1\",\n    \"real_ip\": \"127.0.0.1\",\n    \"port\": 3040,\n    \"@timestamp\": \"2020-06-09T00:09:28.323Z\",\n    \"api\": {\n      \"path\": \"/pets\",\n      \"query\": \"POST /pets\",\n      \"swagger\": true,\n      \"deprecated\": false,\n      \"operationId\": \"addPet\"\n    }\n  },\n  {\n    \"path\": \"/pets\",\n    \"method\": \"GET\",\n    \"query\": \"GET /pets\",\n    \"startts\": 1591661368323,\n    \"endts\": 1591661368379,\n    \"responsetime\": 56,\n    \"node\": {\n      \"name\": \"swagger-stats-fastify\",\n      \"version\": \"0.95.17\",\n      \"hostname\": \"sv5\",\n      \"ip\": \"192.168.1.71\"\n    },\n    \"http\": {\n      \"request\": {\n        \"url\": \"/pets\",\n        \"headers\": {\n          \"x-sws-res\": \"{\\\"code\\\":\\\"200\\\",\\\"message\\\":\\\"OK\\\",\\\"delay\\\":54,\\\"payloadsize\\\":126}\",\n          \"host\": \"localhost:3040\",\n          \"connection\": \"close\"\n        },\n        \"clength\": 0,\n        \"route_path\": \"/pet*\",\n        \"query\": {}\n      },\n      \"response\": {\n        \"code\": 200,\n        \"class\": \"success\",\n        \"phrase\": \"OK\",\n        \"headers\": {},\n        \"clength\": 126\n      }\n    },\n    \"ip\": \"127.0.0.1\",\n    \"real_ip\": \"127.0.0.1\",\n    \"port\": 3040,\n    \"@timestamp\": \"2020-06-09T00:09:28.323Z\",\n    \"api\": {\n      \"path\": \"/pets\",\n      \"query\": \"GET /pets\",\n      \"swagger\": true,\n      \"deprecated\": false,\n      \"operationId\": \"findPets\",\n      \"params\": {}\n    }\n  },\n  {\n    \"path\": \"/pets/abcde\",\n    \"method\": \"GET\",\n    \"query\": \"GET /pets/abcde\",\n    \"startts\": 1591661368174,\n    \"endts\": 1591661368182,\n    \"responsetime\": 8,\n    \"node\": {\n      \"name\": \"swagger-stats-fastify\",\n      \"version\": \"0.95.17\",\n      \"hostname\": \"sv5\",\n      \"ip\": \"192.168.1.71\"\n    },\n    \"http\": {\n      \"request\": {\n        \"url\": \"/pets/abcde\",\n        \"headers\": {\n          \"x-sws-res\": \"{\\\"code\\\":\\\"200\\\",\\\"message\\\":\\\"OK\\\",\\\"delay\\\":8,\\\"payloadsize\\\":82}\",\n          \"host\": \"localhost:3040\",\n          \"connection\": \"close\"\n        },\n        \"clength\": 0,\n        \"route_path\": \"/pet*\",\n        \"query\": {}\n      },\n      \"response\": {\n        \"code\": 200,\n        \"class\": \"success\",\n        \"phrase\": \"OK\",\n        \"headers\": {},\n        \"clength\": 82\n      }\n    },\n    \"ip\": \"127.0.0.1\",\n    \"real_ip\": \"127.0.0.1\",\n    \"port\": 3040,\n    \"@timestamp\": \"2020-06-09T00:09:28.174Z\",\n    \"api\": {\n      \"path\": \"/pets/{id}\",\n      \"query\": \"GET /pets/{id}\",\n      \"swagger\": true,\n      \"deprecated\": false,\n      \"operationId\": \"find pet by id\",\n      \"params\": {\n        \"id\": \"abcde\"\n      }\n    }\n  },\n  {\n    \"path\": \"/pets/abcde\",\n    \"method\": \"DELETE\",\n    \"query\": \"DELETE /pets/abcde\",\n    \"startts\": 1591661368174,\n    \"endts\": 1591661368218,\n    \"responsetime\": 44,\n    \"node\": {\n      \"name\": \"swagger-stats-fastify\",\n      \"version\": \"0.95.17\",\n      \"hostname\": \"sv5\",\n      \"ip\": \"192.168.1.71\"\n    },\n    \"http\": {\n      \"request\": {\n        \"url\": \"/pets/abcde\",\n        \"headers\": {\n          \"x-sws-res\": \"{\\\"code\\\":\\\"200\\\",\\\"message\\\":\\\"OK\\\",\\\"delay\\\":43,\\\"payloadsize\\\":157}\",\n          \"host\": \"localhost:3040\",\n          \"connection\": \"close\"\n        },\n        \"clength\": 0,\n        \"route_path\": \"/pet*\",\n        \"query\": {}\n      },\n      \"response\": {\n        \"code\": 200,\n        \"class\": \"success\",\n        \"phrase\": \"OK\",\n        \"headers\": {},\n        \"clength\": 157\n      }\n    },\n    \"ip\": \"127.0.0.1\",\n    \"real_ip\": \"127.0.0.1\",\n    \"port\": 3040,\n    \"@timestamp\": \"2020-06-09T00:09:28.174Z\",\n    \"api\": {\n      \"path\": \"/pets/{id}\",\n      \"query\": \"DELETE /pets/{id}\",\n      \"swagger\": true,\n      \"deprecated\": false,\n      \"operationId\": \"deletePet\",\n      \"params\": {\n        \"id\": \"abcde\"\n      }\n    }\n  },\n  {\n    \"path\": \"/pets\",\n    \"method\": \"POST\",\n    \"query\": \"POST /pets\",\n    \"startts\": 1591661368173,\n    \"endts\": 1591661368210,\n    \"responsetime\": 37,\n    \"node\": {\n      \"name\": \"swagger-stats-fastify\",\n      \"version\": \"0.95.17\",\n      \"hostname\": \"sv5\",\n      \"ip\": \"192.168.1.71\"\n    },\n    \"http\": {\n      \"request\": {\n        \"url\": \"/pets\",\n        \"headers\": {\n          \"x-sws-res\": \"{\\\"code\\\":\\\"200\\\",\\\"message\\\":\\\"OK\\\",\\\"delay\\\":35,\\\"payloadsize\\\":198}\",\n          \"content-type\": \"application/json\",\n          \"content-length\": \"139\",\n          \"host\": \"localhost:3040\",\n          \"connection\": \"close\"\n        },\n        \"clength\": 139,\n        \"route_path\": \"/pet*\",\n        \"query\": {}\n      },\n      \"response\": {\n        \"code\": 200,\n        \"class\": \"success\",\n        \"phrase\": \"OK\",\n        \"headers\": {},\n        \"clength\": 198\n      }\n    },\n    \"ip\": \"127.0.0.1\",\n    \"real_ip\": \"127.0.0.1\",\n    \"port\": 3040,\n    \"@timestamp\": \"2020-06-09T00:09:28.173Z\",\n    \"api\": {\n      \"path\": \"/pets\",\n      \"query\": \"POST /pets\",\n      \"swagger\": true,\n      \"deprecated\": false,\n      \"operationId\": \"addPet\"\n    }\n  },\n  {\n    \"path\": \"/pets/abcde\",\n    \"method\": \"GET\",\n    \"query\": \"GET /pets/abcde\",\n    \"startts\": 1591661367707,\n    \"endts\": 1591661367792,\n    \"responsetime\": 85,\n    \"node\": {\n      \"name\": \"swagger-stats-fastify\",\n      \"version\": \"0.95.17\",\n      \"hostname\": \"sv5\",\n      \"ip\": \"192.168.1.71\"\n    },\n    \"http\": {\n      \"request\": {\n        \"url\": \"/pets/abcde\",\n        \"headers\": {\n          \"x-sws-res\": \"{\\\"code\\\":\\\"200\\\",\\\"message\\\":\\\"OK\\\",\\\"delay\\\":85,\\\"payloadsize\\\":129}\",\n          \"host\": \"localhost:3040\",\n          \"connection\": \"close\"\n        },\n        \"clength\": 0,\n        \"route_path\": \"/pet*\",\n        \"query\": {}\n      },\n      \"response\": {\n        \"code\": 200,\n        \"class\": \"success\",\n        \"phrase\": \"OK\",\n        \"headers\": {},\n        \"clength\": 129\n      }\n    },\n    \"ip\": \"127.0.0.1\",\n    \"real_ip\": \"127.0.0.1\",\n    \"port\": 3040,\n    \"@timestamp\": \"2020-06-09T00:09:27.707Z\",\n    \"api\": {\n      \"path\": \"/pets/{id}\",\n      \"query\": \"GET /pets/{id}\",\n      \"swagger\": true,\n      \"deprecated\": false,\n      \"operationId\": \"find pet by id\",\n      \"params\": {\n        \"id\": \"abcde\"\n      }\n    }\n  },\n  {\n    \"path\": \"/pets\",\n    \"method\": \"POST\",\n    \"query\": \"POST /pets\",\n    \"startts\": 1591661367706,\n    \"endts\": 1591661367722,\n    \"responsetime\": 16,\n    \"node\": {\n      \"name\": \"swagger-stats-fastify\",\n      \"version\": \"0.95.17\",\n      \"hostname\": \"sv5\",\n      \"ip\": \"192.168.1.71\"\n    },\n    \"http\": {\n      \"request\": {\n        \"url\": \"/pets\",\n        \"headers\": {\n          \"x-sws-res\": \"{\\\"code\\\":500,\\\"message\\\":\\\"Internal Server Error\\\",\\\"delay\\\":16,\\\"payloadsize\\\":138}\",\n          \"content-type\": \"application/json\",\n          \"content-length\": \"156\",\n          \"host\": \"localhost:3040\",\n          \"connection\": \"close\"\n        },\n        \"clength\": 156,\n        \"route_path\": \"/pet*\",\n        \"query\": {}\n      },\n      \"response\": {\n        \"code\": 500,\n        \"class\": \"server_error\",\n        \"phrase\": \"Internal Server Error\",\n        \"headers\": {},\n        \"clength\": 138\n      }\n    },\n    \"ip\": \"127.0.0.1\",\n    \"real_ip\": \"127.0.0.1\",\n    \"port\": 3040,\n    \"@timestamp\": \"2020-06-09T00:09:27.706Z\",\n    \"api\": {\n      \"path\": \"/pets\",\n      \"query\": \"POST /pets\",\n      \"swagger\": true,\n      \"deprecated\": false,\n      \"operationId\": \"addPet\"\n    }\n  },\n  {\n    \"path\": \"/pets/abcde\",\n    \"method\": \"GET\",\n    \"query\": \"GET /pets/abcde\",\n    \"startts\": 1591661367365,\n    \"endts\": 1591661367396,\n    \"responsetime\": 31,\n    \"node\": {\n      \"name\": \"swagger-stats-fastify\",\n      \"version\": \"0.95.17\",\n      \"hostname\": \"sv5\",\n      \"ip\": \"192.168.1.71\"\n    },\n    \"http\": {\n      \"request\": {\n        \"url\": \"/pets/abcde\",\n        \"headers\": {\n          \"x-sws-res\": \"{\\\"code\\\":\\\"200\\\",\\\"message\\\":\\\"OK\\\",\\\"delay\\\":30,\\\"payloadsize\\\":146}\",\n          \"host\": \"localhost:3040\",\n          \"connection\": \"close\"\n        },\n        \"clength\": 0,\n        \"route_path\": \"/pet*\",\n        \"query\": {}\n      },\n      \"response\": {\n        \"code\": 200,\n        \"class\": \"success\",\n        \"phrase\": \"OK\",\n        \"headers\": {},\n        \"clength\": 146\n      }\n    },\n    \"ip\": \"127.0.0.1\",\n    \"real_ip\": \"127.0.0.1\",\n    \"port\": 3040,\n    \"@timestamp\": \"2020-06-09T00:09:27.365Z\",\n    \"api\": {\n      \"path\": \"/pets/{id}\",\n      \"query\": \"GET /pets/{id}\",\n      \"swagger\": true,\n      \"deprecated\": false,\n      \"operationId\": \"find pet by id\",\n      \"params\": {\n        \"id\": \"abcde\"\n      }\n    }\n  },\n  {\n    \"path\": \"/pets/abcde\",\n    \"method\": \"DELETE\",\n    \"query\": \"DELETE /pets/abcde\",\n    \"startts\": 1591661367066,\n    \"endts\": 1591661367082,\n    \"responsetime\": 16,\n    \"node\": {\n      \"name\": \"swagger-stats-fastify\",\n      \"version\": \"0.95.17\",\n      \"hostname\": \"sv5\",\n      \"ip\": \"192.168.1.71\"\n    },\n    \"http\": {\n      \"request\": {\n        \"url\": \"/pets/abcde\",\n        \"headers\": {\n          \"x-sws-res\": \"{\\\"code\\\":\\\"200\\\",\\\"message\\\":\\\"OK\\\",\\\"delay\\\":15,\\\"payloadsize\\\":145}\",\n          \"host\": \"localhost:3040\",\n          \"connection\": \"close\"\n        },\n        \"clength\": 0,\n        \"route_path\": \"/pet*\",\n        \"query\": {}\n      },\n      \"response\": {\n        \"code\": 200,\n        \"class\": \"success\",\n        \"phrase\": \"OK\",\n        \"headers\": {},\n        \"clength\": 145\n      }\n    },\n    \"ip\": \"127.0.0.1\",\n    \"real_ip\": \"127.0.0.1\",\n    \"port\": 3040,\n    \"@timestamp\": \"2020-06-09T00:09:27.066Z\",\n    \"api\": {\n      \"path\": \"/pets/{id}\",\n      \"query\": \"DELETE /pets/{id}\",\n      \"swagger\": true,\n      \"deprecated\": false,\n      \"operationId\": \"deletePet\",\n      \"params\": {\n        \"id\": \"abcde\"\n      }\n    }\n  },\n  {\n    \"path\": \"/pets\",\n    \"method\": \"GET\",\n    \"query\": \"GET /pets\",\n    \"startts\": 1591661367064,\n    \"endts\": 1591661367099,\n    \"responsetime\": 35,\n    \"node\": {\n      \"name\": \"swagger-stats-fastify\",\n      \"version\": \"0.95.17\",\n      \"hostname\": \"sv5\",\n      \"ip\": \"192.168.1.71\"\n    },\n    \"http\": {\n      \"request\": {\n        \"url\": \"/pets\",\n        \"headers\": {\n          \"x-sws-res\": \"{\\\"code\\\":\\\"200\\\",\\\"message\\\":\\\"OK\\\",\\\"delay\\\":33,\\\"payloadsize\\\":79}\",\n          \"host\": \"localhost:3040\",\n          \"connection\": \"close\"\n        },\n        \"clength\": 0,\n        \"route_path\": \"/pet*\",\n        \"query\": {}\n      },\n      \"response\": {\n        \"code\": 200,\n        \"class\": \"success\",\n        \"phrase\": \"OK\",\n        \"headers\": {},\n        \"clength\": 79\n      }\n    },\n    \"ip\": \"127.0.0.1\",\n    \"real_ip\": \"127.0.0.1\",\n    \"port\": 3040,\n    \"@timestamp\": \"2020-06-09T00:09:27.064Z\",\n    \"api\": {\n      \"path\": \"/pets\",\n      \"query\": \"GET /pets\",\n      \"swagger\": true,\n      \"deprecated\": false,\n      \"operationId\": \"findPets\",\n      \"params\": {}\n    }\n  },\n  {\n    \"path\": \"/pets/abcde\",\n    \"method\": \"GET\",\n    \"query\": \"GET /pets/abcde\",\n    \"startts\": 1591661366483,\n    \"endts\": 1591661366499,\n    \"responsetime\": 16,\n    \"node\": {\n      \"name\": \"swagger-stats-fastify\",\n      \"version\": \"0.95.17\",\n      \"hostname\": \"sv5\",\n      \"ip\": \"192.168.1.71\"\n    },\n    \"http\": {\n      \"request\": {\n        \"url\": \"/pets/abcde\",\n        \"headers\": {\n          \"x-sws-res\": \"{\\\"code\\\":\\\"200\\\",\\\"message\\\":\\\"OK\\\",\\\"delay\\\":16,\\\"payloadsize\\\":36}\",\n          \"host\": \"localhost:3040\",\n          \"connection\": \"close\"\n        },\n        \"clength\": 0,\n        \"route_path\": \"/pet*\",\n        \"query\": {}\n      },\n      \"response\": {\n        \"code\": 200,\n        \"class\": \"success\",\n        \"phrase\": \"OK\",\n        \"headers\": {},\n        \"clength\": 36\n      }\n    },\n    \"ip\": \"127.0.0.1\",\n    \"real_ip\": \"127.0.0.1\",\n    \"port\": 3040,\n    \"@timestamp\": \"2020-06-09T00:09:26.483Z\",\n    \"api\": {\n      \"path\": \"/pets/{id}\",\n      \"query\": \"GET /pets/{id}\",\n      \"swagger\": true,\n      \"deprecated\": false,\n      \"operationId\": \"find pet by id\",\n      \"params\": {\n        \"id\": \"abcde\"\n      }\n    }\n  },\n  {\n    \"path\": \"/pets/abcde\",\n    \"method\": \"DELETE\",\n    \"query\": \"DELETE /pets/abcde\",\n    \"startts\": 1591661366483,\n    \"endts\": 1591661366540,\n    \"responsetime\": 57,\n    \"node\": {\n      \"name\": \"swagger-stats-fastify\",\n      \"version\": \"0.95.17\",\n      \"hostname\": \"sv5\",\n      \"ip\": \"192.168.1.71\"\n    },\n    \"http\": {\n      \"request\": {\n        \"url\": \"/pets/abcde\",\n        \"headers\": {\n          \"x-sws-res\": \"{\\\"code\\\":\\\"200\\\",\\\"message\\\":\\\"OK\\\",\\\"delay\\\":56,\\\"payloadsize\\\":199}\",\n          \"host\": \"localhost:3040\",\n          \"connection\": \"close\"\n        },\n        \"clength\": 0,\n        \"route_path\": \"/pet*\",\n        \"query\": {}\n      },\n      \"response\": {\n        \"code\": 200,\n        \"class\": \"success\",\n        \"phrase\": \"OK\",\n        \"headers\": {},\n        \"clength\": 199\n      }\n    },\n    \"ip\": \"127.0.0.1\",\n    \"real_ip\": \"127.0.0.1\",\n    \"port\": 3040,\n    \"@timestamp\": \"2020-06-09T00:09:26.483Z\",\n    \"api\": {\n      \"path\": \"/pets/{id}\",\n      \"query\": \"DELETE /pets/{id}\",\n      \"swagger\": true,\n      \"deprecated\": false,\n      \"operationId\": \"deletePet\",\n      \"params\": {\n        \"id\": \"abcde\"\n      }\n    }\n  },\n  {\n    \"path\": \"/pets\",\n    \"method\": \"GET\",\n    \"query\": \"GET /pets\",\n    \"startts\": 1591661366482,\n    \"endts\": 1591661366497,\n    \"responsetime\": 15,\n    \"node\": {\n      \"name\": \"swagger-stats-fastify\",\n      \"version\": \"0.95.17\",\n      \"hostname\": \"sv5\",\n      \"ip\": \"192.168.1.71\"\n    },\n    \"http\": {\n      \"request\": {\n        \"url\": \"/pets\",\n        \"headers\": {\n          \"x-sws-res\": \"{\\\"code\\\":\\\"200\\\",\\\"message\\\":\\\"OK\\\",\\\"delay\\\":15,\\\"payloadsize\\\":136}\",\n          \"host\": \"localhost:3040\",\n          \"connection\": \"close\"\n        },\n        \"clength\": 0,\n        \"route_path\": \"/pet*\",\n        \"query\": {}\n      },\n      \"response\": {\n        \"code\": 200,\n        \"class\": \"success\",\n        \"phrase\": \"OK\",\n        \"headers\": {},\n        \"clength\": 136\n      }\n    },\n    \"ip\": \"127.0.0.1\",\n    \"real_ip\": \"127.0.0.1\",\n    \"port\": 3040,\n    \"@timestamp\": \"2020-06-09T00:09:26.482Z\",\n    \"api\": {\n      \"path\": \"/pets\",\n      \"query\": \"GET /pets\",\n      \"swagger\": true,\n      \"deprecated\": false,\n      \"operationId\": \"findPets\",\n      \"params\": {}\n    }\n  },\n  {\n    \"path\": \"/pets\",\n    \"method\": \"POST\",\n    \"query\": \"POST /pets\",\n    \"startts\": 1591661366482,\n    \"endts\": 1591661366569,\n    \"responsetime\": 87,\n    \"node\": {\n      \"name\": \"swagger-stats-fastify\",\n      \"version\": \"0.95.17\",\n      \"hostname\": \"sv5\",\n      \"ip\": \"192.168.1.71\"\n    },\n    \"http\": {\n      \"request\": {\n        \"url\": \"/pets\",\n        \"headers\": {\n          \"x-sws-res\": \"{\\\"code\\\":\\\"200\\\",\\\"message\\\":\\\"OK\\\",\\\"delay\\\":85,\\\"payloadsize\\\":74}\",\n          \"content-type\": \"application/json\",\n          \"content-length\": \"128\",\n          \"host\": \"localhost:3040\",\n          \"connection\": \"close\"\n        },\n        \"clength\": 128,\n        \"route_path\": \"/pet*\",\n        \"query\": {}\n      },\n      \"response\": {\n        \"code\": 200,\n        \"class\": \"success\",\n        \"phrase\": \"OK\",\n        \"headers\": {},\n        \"clength\": 74\n      }\n    },\n    \"ip\": \"127.0.0.1\",\n    \"real_ip\": \"127.0.0.1\",\n    \"port\": 3040,\n    \"@timestamp\": \"2020-06-09T00:09:26.482Z\",\n    \"api\": {\n      \"path\": \"/pets\",\n      \"query\": \"POST /pets\",\n      \"swagger\": true,\n      \"deprecated\": false,\n      \"operationId\": \"addPet\"\n    }\n  },\n  {\n    \"path\": \"/pets/abcde\",\n    \"method\": \"DELETE\",\n    \"query\": \"DELETE /pets/abcde\",\n    \"startts\": 1591661366031,\n    \"endts\": 1591661366070,\n    \"responsetime\": 39,\n    \"node\": {\n      \"name\": \"swagger-stats-fastify\",\n      \"version\": \"0.95.17\",\n      \"hostname\": \"sv5\",\n      \"ip\": \"192.168.1.71\"\n    },\n    \"http\": {\n      \"request\": {\n        \"url\": \"/pets/abcde\",\n        \"headers\": {\n          \"x-sws-res\": \"{\\\"code\\\":\\\"200\\\",\\\"message\\\":\\\"OK\\\",\\\"delay\\\":38,\\\"payloadsize\\\":41}\",\n          \"host\": \"localhost:3040\",\n          \"connection\": \"close\"\n        },\n        \"clength\": 0,\n        \"route_path\": \"/pet*\",\n        \"query\": {}\n      },\n      \"response\": {\n        \"code\": 200,\n        \"class\": \"success\",\n        \"phrase\": \"OK\",\n        \"headers\": {},\n        \"clength\": 41\n      }\n    },\n    \"ip\": \"127.0.0.1\",\n    \"real_ip\": \"127.0.0.1\",\n    \"port\": 3040,\n    \"@timestamp\": \"2020-06-09T00:09:26.031Z\",\n    \"api\": {\n      \"path\": \"/pets/{id}\",\n      \"query\": \"DELETE /pets/{id}\",\n      \"swagger\": true,\n      \"deprecated\": false,\n      \"operationId\": \"deletePet\",\n      \"params\": {\n        \"id\": \"abcde\"\n      }\n    }\n  },\n  {\n    \"path\": \"/pets/abcde\",\n    \"method\": \"GET\",\n    \"query\": \"GET /pets/abcde\",\n    \"startts\": 1591661366030,\n    \"endts\": 1591661366042,\n    \"responsetime\": 12,\n    \"node\": {\n      \"name\": \"swagger-stats-fastify\",\n      \"version\": \"0.95.17\",\n      \"hostname\": \"sv5\",\n      \"ip\": \"192.168.1.71\"\n    },\n    \"http\": {\n      \"request\": {\n        \"url\": \"/pets/abcde\",\n        \"headers\": {\n          \"x-sws-res\": \"{\\\"code\\\":\\\"200\\\",\\\"message\\\":\\\"OK\\\",\\\"delay\\\":11,\\\"payloadsize\\\":138}\",\n          \"host\": \"localhost:3040\",\n          \"connection\": \"close\"\n        },\n        \"clength\": 0,\n        \"route_path\": \"/pet*\",\n        \"query\": {}\n      },\n      \"response\": {\n        \"code\": 200,\n        \"class\": \"success\",\n        \"phrase\": \"OK\",\n        \"headers\": {},\n        \"clength\": 138\n      }\n    },\n    \"ip\": \"127.0.0.1\",\n    \"real_ip\": \"127.0.0.1\",\n    \"port\": 3040,\n    \"@timestamp\": \"2020-06-09T00:09:26.030Z\",\n    \"api\": {\n      \"path\": \"/pets/{id}\",\n      \"query\": \"GET /pets/{id}\",\n      \"swagger\": true,\n      \"deprecated\": false,\n      \"operationId\": \"find pet by id\",\n      \"params\": {\n        \"id\": \"abcde\"\n      }\n    }\n  },\n  {\n    \"path\": \"/pets/abcde\",\n    \"method\": \"DELETE\",\n    \"query\": \"DELETE /pets/abcde\",\n    \"startts\": 1591661365646,\n    \"endts\": 1591661365716,\n    \"responsetime\": 70,\n    \"node\": {\n      \"name\": \"swagger-stats-fastify\",\n      \"version\": \"0.95.17\",\n      \"hostname\": \"sv5\",\n      \"ip\": \"192.168.1.71\"\n    },\n    \"http\": {\n      \"request\": {\n        \"url\": \"/pets/abcde\",\n        \"headers\": {\n          \"x-sws-res\": \"{\\\"code\\\":\\\"200\\\",\\\"message\\\":\\\"OK\\\",\\\"delay\\\":69,\\\"payloadsize\\\":187}\",\n          \"host\": \"localhost:3040\",\n          \"connection\": \"close\"\n        },\n        \"clength\": 0,\n        \"route_path\": \"/pet*\",\n        \"query\": {}\n      },\n      \"response\": {\n        \"code\": 200,\n        \"class\": \"success\",\n        \"phrase\": \"OK\",\n        \"headers\": {},\n        \"clength\": 187\n      }\n    },\n    \"ip\": \"127.0.0.1\",\n    \"real_ip\": \"127.0.0.1\",\n    \"port\": 3040,\n    \"@timestamp\": \"2020-06-09T00:09:25.646Z\",\n    \"api\": {\n      \"path\": \"/pets/{id}\",\n      \"query\": \"DELETE /pets/{id}\",\n      \"swagger\": true,\n      \"deprecated\": false,\n      \"operationId\": \"deletePet\",\n      \"params\": {\n        \"id\": \"abcde\"\n      }\n    }\n  },\n  {\n    \"path\": \"/pets/abcde\",\n    \"method\": \"GET\",\n    \"query\": \"GET /pets/abcde\",\n    \"startts\": 1591661365099,\n    \"endts\": 1591661365198,\n    \"responsetime\": 99,\n    \"node\": {\n      \"name\": \"swagger-stats-fastify\",\n      \"version\": \"0.95.17\",\n      \"hostname\": \"sv5\",\n      \"ip\": \"192.168.1.71\"\n    },\n    \"http\": {\n      \"request\": {\n        \"url\": \"/pets/abcde\",\n        \"headers\": {\n          \"x-sws-res\": \"{\\\"code\\\":\\\"200\\\",\\\"message\\\":\\\"OK\\\",\\\"delay\\\":98,\\\"payloadsize\\\":186}\",\n          \"host\": \"localhost:3040\",\n          \"connection\": \"close\"\n        },\n        \"clength\": 0,\n        \"route_path\": \"/pet*\",\n        \"query\": {}\n      },\n      \"response\": {\n        \"code\": 200,\n        \"class\": \"success\",\n        \"phrase\": \"OK\",\n        \"headers\": {},\n        \"clength\": 186\n      }\n    },\n    \"ip\": \"127.0.0.1\",\n    \"real_ip\": \"127.0.0.1\",\n    \"port\": 3040,\n    \"@timestamp\": \"2020-06-09T00:09:25.099Z\",\n    \"api\": {\n      \"path\": \"/pets/{id}\",\n      \"query\": \"GET /pets/{id}\",\n      \"swagger\": true,\n      \"deprecated\": false,\n      \"operationId\": \"find pet by id\",\n      \"params\": {\n        \"id\": \"abcde\"\n      }\n    }\n  },\n  {\n    \"path\": \"/pets/abcde\",\n    \"method\": \"GET\",\n    \"query\": \"GET /pets/abcde\",\n    \"startts\": 1591661364685,\n    \"endts\": 1591661364737,\n    \"responsetime\": 52,\n    \"node\": {\n      \"name\": \"swagger-stats-fastify\",\n      \"version\": \"0.95.17\",\n      \"hostname\": \"sv5\",\n      \"ip\": \"192.168.1.71\"\n    },\n    \"http\": {\n      \"request\": {\n        \"url\": \"/pets/abcde\",\n        \"headers\": {\n          \"x-sws-res\": \"{\\\"code\\\":\\\"200\\\",\\\"message\\\":\\\"OK\\\",\\\"delay\\\":51,\\\"payloadsize\\\":161}\",\n          \"host\": \"localhost:3040\",\n          \"connection\": \"close\"\n        },\n        \"clength\": 0,\n        \"route_path\": \"/pet*\",\n        \"query\": {}\n      },\n      \"response\": {\n        \"code\": 200,\n        \"class\": \"success\",\n        \"phrase\": \"OK\",\n        \"headers\": {},\n        \"clength\": 161\n      }\n    },\n    \"ip\": \"127.0.0.1\",\n    \"real_ip\": \"127.0.0.1\",\n    \"port\": 3040,\n    \"@timestamp\": \"2020-06-09T00:09:24.685Z\",\n    \"api\": {\n      \"path\": \"/pets/{id}\",\n      \"query\": \"GET /pets/{id}\",\n      \"swagger\": true,\n      \"deprecated\": false,\n      \"operationId\": \"find pet by id\",\n      \"params\": {\n        \"id\": \"abcde\"\n      }\n    }\n  },\n  {\n    \"path\": \"/pets\",\n    \"method\": \"POST\",\n    \"query\": \"POST /pets\",\n    \"startts\": 1591661364224,\n    \"endts\": 1591661364301,\n    \"responsetime\": 77,\n    \"node\": {\n      \"name\": \"swagger-stats-fastify\",\n      \"version\": \"0.95.17\",\n      \"hostname\": \"sv5\",\n      \"ip\": \"192.168.1.71\"\n    },\n    \"http\": {\n      \"request\": {\n        \"url\": \"/pets\",\n        \"headers\": {\n          \"x-sws-res\": \"{\\\"code\\\":\\\"200\\\",\\\"message\\\":\\\"OK\\\",\\\"delay\\\":77,\\\"payloadsize\\\":105}\",\n          \"content-type\": \"application/json\",\n          \"content-length\": \"188\",\n          \"host\": \"localhost:3040\",\n          \"connection\": \"close\"\n        },\n        \"clength\": 188,\n        \"route_path\": \"/pet*\",\n        \"query\": {}\n      },\n      \"response\": {\n        \"code\": 200,\n        \"class\": \"success\",\n        \"phrase\": \"OK\",\n        \"headers\": {},\n        \"clength\": 105\n      }\n    },\n    \"ip\": \"127.0.0.1\",\n    \"real_ip\": \"127.0.0.1\",\n    \"port\": 3040,\n    \"@timestamp\": \"2020-06-09T00:09:24.224Z\",\n    \"api\": {\n      \"path\": \"/pets\",\n      \"query\": \"POST /pets\",\n      \"swagger\": true,\n      \"deprecated\": false,\n      \"operationId\": \"addPet\"\n    }\n  },\n  {\n    \"path\": \"/pets/abcde\",\n    \"method\": \"DELETE\",\n    \"query\": \"DELETE /pets/abcde\",\n    \"startts\": 1591661364224,\n    \"endts\": 1591661364317,\n    \"responsetime\": 93,\n    \"node\": {\n      \"name\": \"swagger-stats-fastify\",\n      \"version\": \"0.95.17\",\n      \"hostname\": \"sv5\",\n      \"ip\": \"192.168.1.71\"\n    },\n    \"http\": {\n      \"request\": {\n        \"url\": \"/pets/abcde\",\n        \"headers\": {\n          \"x-sws-res\": \"{\\\"code\\\":\\\"200\\\",\\\"message\\\":\\\"OK\\\",\\\"delay\\\":92,\\\"payloadsize\\\":75}\",\n          \"host\": \"localhost:3040\",\n          \"connection\": \"close\"\n        },\n        \"clength\": 0,\n        \"route_path\": \"/pet*\",\n        \"query\": {}\n      },\n      \"response\": {\n        \"code\": 200,\n        \"class\": \"success\",\n        \"phrase\": \"OK\",\n        \"headers\": {},\n        \"clength\": 75\n      }\n    },\n    \"ip\": \"127.0.0.1\",\n    \"real_ip\": \"127.0.0.1\",\n    \"port\": 3040,\n    \"@timestamp\": \"2020-06-09T00:09:24.224Z\",\n    \"api\": {\n      \"path\": \"/pets/{id}\",\n      \"query\": \"DELETE /pets/{id}\",\n      \"swagger\": true,\n      \"deprecated\": false,\n      \"operationId\": \"deletePet\",\n      \"params\": {\n        \"id\": \"abcde\"\n      }\n    }\n  },\n  {\n    \"path\": \"/pets/abcde\",\n    \"method\": \"DELETE\",\n    \"query\": \"DELETE /pets/abcde\",\n    \"startts\": 1591661363985,\n    \"endts\": 1591661363997,\n    \"responsetime\": 12,\n    \"node\": {\n      \"name\": \"swagger-stats-fastify\",\n      \"version\": \"0.95.17\",\n      \"hostname\": \"sv5\",\n      \"ip\": \"192.168.1.71\"\n    },\n    \"http\": {\n      \"request\": {\n        \"url\": \"/pets/abcde\",\n        \"headers\": {\n          \"x-sws-res\": \"{\\\"code\\\":\\\"200\\\",\\\"message\\\":\\\"OK\\\",\\\"delay\\\":9,\\\"payloadsize\\\":136}\",\n          \"host\": \"localhost:3040\",\n          \"connection\": \"close\"\n        },\n        \"clength\": 0,\n        \"route_path\": \"/pet*\",\n        \"query\": {}\n      },\n      \"response\": {\n        \"code\": 200,\n        \"class\": \"success\",\n        \"phrase\": \"OK\",\n        \"headers\": {},\n        \"clength\": 136\n      }\n    },\n    \"ip\": \"127.0.0.1\",\n    \"real_ip\": \"127.0.0.1\",\n    \"port\": 3040,\n    \"@timestamp\": \"2020-06-09T00:09:23.985Z\",\n    \"api\": {\n      \"path\": \"/pets/{id}\",\n      \"query\": \"DELETE /pets/{id}\",\n      \"swagger\": true,\n      \"deprecated\": false,\n      \"operationId\": \"deletePet\",\n      \"params\": {\n        \"id\": \"abcde\"\n      }\n    }\n  },\n  {\n    \"path\": \"/pets\",\n    \"method\": \"POST\",\n    \"query\": \"POST /pets\",\n    \"startts\": 1591661363984,\n    \"endts\": 1591661363996,\n    \"responsetime\": 12,\n    \"node\": {\n      \"name\": \"swagger-stats-fastify\",\n      \"version\": \"0.95.17\",\n      \"hostname\": \"sv5\",\n      \"ip\": \"192.168.1.71\"\n    },\n    \"http\": {\n      \"request\": {\n        \"url\": \"/pets\",\n        \"headers\": {\n          \"x-sws-res\": \"{\\\"code\\\":\\\"200\\\",\\\"message\\\":\\\"OK\\\",\\\"delay\\\":10,\\\"payloadsize\\\":63}\",\n          \"content-type\": \"application/json\",\n          \"content-length\": \"91\",\n          \"host\": \"localhost:3040\",\n          \"connection\": \"close\"\n        },\n        \"clength\": 91,\n        \"route_path\": \"/pet*\",\n        \"query\": {}\n      },\n      \"response\": {\n        \"code\": 200,\n        \"class\": \"success\",\n        \"phrase\": \"OK\",\n        \"headers\": {},\n        \"clength\": 63\n      }\n    },\n    \"ip\": \"127.0.0.1\",\n    \"real_ip\": \"127.0.0.1\",\n    \"port\": 3040,\n    \"@timestamp\": \"2020-06-09T00:09:23.984Z\",\n    \"api\": {\n      \"path\": \"/pets\",\n      \"query\": \"POST /pets\",\n      \"swagger\": true,\n      \"deprecated\": false,\n      \"operationId\": \"addPet\"\n    }\n  },\n  {\n    \"path\": \"/pets/abcde\",\n    \"method\": \"GET\",\n    \"query\": \"GET /pets/abcde\",\n    \"startts\": 1591661363984,\n    \"endts\": 1591661364015,\n    \"responsetime\": 31,\n    \"node\": {\n      \"name\": \"swagger-stats-fastify\",\n      \"version\": \"0.95.17\",\n      \"hostname\": \"sv5\",\n      \"ip\": \"192.168.1.71\"\n    },\n    \"http\": {\n      \"request\": {\n        \"url\": \"/pets/abcde\",\n        \"headers\": {\n          \"x-sws-res\": \"{\\\"code\\\":\\\"200\\\",\\\"message\\\":\\\"OK\\\",\\\"delay\\\":31,\\\"payloadsize\\\":138}\",\n          \"host\": \"localhost:3040\",\n          \"connection\": \"close\"\n        },\n        \"clength\": 0,\n        \"route_path\": \"/pet*\",\n        \"query\": {}\n      },\n      \"response\": {\n        \"code\": 200,\n        \"class\": \"success\",\n        \"phrase\": \"OK\",\n        \"headers\": {},\n        \"clength\": 138\n      }\n    },\n    \"ip\": \"127.0.0.1\",\n    \"real_ip\": \"127.0.0.1\",\n    \"port\": 3040,\n    \"@timestamp\": \"2020-06-09T00:09:23.984Z\",\n    \"api\": {\n      \"path\": \"/pets/{id}\",\n      \"query\": \"GET /pets/{id}\",\n      \"swagger\": true,\n      \"deprecated\": false,\n      \"operationId\": \"find pet by id\",\n      \"params\": {\n        \"id\": \"abcde\"\n      }\n    }\n  },\n  {\n    \"path\": \"/pets\",\n    \"method\": \"GET\",\n    \"query\": \"GET /pets\",\n    \"startts\": 1591661363983,\n    \"endts\": 1591661364083,\n    \"responsetime\": 100,\n    \"node\": {\n      \"name\": \"swagger-stats-fastify\",\n      \"version\": \"0.95.17\",\n      \"hostname\": \"sv5\",\n      \"ip\": \"192.168.1.71\"\n    },\n    \"http\": {\n      \"request\": {\n        \"url\": \"/pets\",\n        \"headers\": {\n          \"x-sws-res\": \"{\\\"code\\\":\\\"200\\\",\\\"message\\\":\\\"OK\\\",\\\"delay\\\":99,\\\"payloadsize\\\":40}\",\n          \"host\": \"localhost:3040\",\n          \"connection\": \"close\"\n        },\n        \"clength\": 0,\n        \"route_path\": \"/pet*\",\n        \"query\": {}\n      },\n      \"response\": {\n        \"code\": 200,\n        \"class\": \"success\",\n        \"phrase\": \"OK\",\n        \"headers\": {},\n        \"clength\": 40\n      }\n    },\n    \"ip\": \"127.0.0.1\",\n    \"real_ip\": \"127.0.0.1\",\n    \"port\": 3040,\n    \"@timestamp\": \"2020-06-09T00:09:23.983Z\",\n    \"api\": {\n      \"path\": \"/pets\",\n      \"query\": \"GET /pets\",\n      \"swagger\": true,\n      \"deprecated\": false,\n      \"operationId\": \"findPets\",\n      \"params\": {}\n    }\n  },\n  {\n    \"path\": \"/pets\",\n    \"method\": \"GET\",\n    \"query\": \"GET /pets\",\n    \"startts\": 1591661363782,\n    \"endts\": 1591661363871,\n    \"responsetime\": 89,\n    \"node\": {\n      \"name\": \"swagger-stats-fastify\",\n      \"version\": \"0.95.17\",\n      \"hostname\": \"sv5\",\n      \"ip\": \"192.168.1.71\"\n    },\n    \"http\": {\n      \"request\": {\n        \"url\": \"/pets\",\n        \"headers\": {\n          \"x-sws-res\": \"{\\\"code\\\":\\\"200\\\",\\\"message\\\":\\\"OK\\\",\\\"delay\\\":88,\\\"payloadsize\\\":193}\",\n          \"host\": \"localhost:3040\",\n          \"connection\": \"close\"\n        },\n        \"clength\": 0,\n        \"route_path\": \"/pet*\",\n        \"query\": {}\n      },\n      \"response\": {\n        \"code\": 200,\n        \"class\": \"success\",\n        \"phrase\": \"OK\",\n        \"headers\": {},\n        \"clength\": 193\n      }\n    },\n    \"ip\": \"127.0.0.1\",\n    \"real_ip\": \"127.0.0.1\",\n    \"port\": 3040,\n    \"@timestamp\": \"2020-06-09T00:09:23.782Z\",\n    \"api\": {\n      \"path\": \"/pets\",\n      \"query\": \"GET /pets\",\n      \"swagger\": true,\n      \"deprecated\": false,\n      \"operationId\": \"findPets\",\n      \"params\": {}\n    }\n  },\n  {\n    \"path\": \"/pets/abcde\",\n    \"method\": \"GET\",\n    \"query\": \"GET /pets/abcde\",\n    \"startts\": 1591661363241,\n    \"endts\": 1591661363254,\n    \"responsetime\": 13,\n    \"node\": {\n      \"name\": \"swagger-stats-fastify\",\n      \"version\": \"0.95.17\",\n      \"hostname\": \"sv5\",\n      \"ip\": \"192.168.1.71\"\n    },\n    \"http\": {\n      \"request\": {\n        \"url\": \"/pets/abcde\",\n        \"headers\": {\n          \"x-sws-res\": \"{\\\"code\\\":\\\"200\\\",\\\"message\\\":\\\"OK\\\",\\\"delay\\\":13,\\\"payloadsize\\\":127}\",\n          \"host\": \"localhost:3040\",\n          \"connection\": \"close\"\n        },\n        \"clength\": 0,\n        \"route_path\": \"/pet*\",\n        \"query\": {}\n      },\n      \"response\": {\n        \"code\": 200,\n        \"class\": \"success\",\n        \"phrase\": \"OK\",\n        \"headers\": {},\n        \"clength\": 127\n      }\n    },\n    \"ip\": \"127.0.0.1\",\n    \"real_ip\": \"127.0.0.1\",\n    \"port\": 3040,\n    \"@timestamp\": \"2020-06-09T00:09:23.241Z\",\n    \"api\": {\n      \"path\": \"/pets/{id}\",\n      \"query\": \"GET /pets/{id}\",\n      \"swagger\": true,\n      \"deprecated\": false,\n      \"operationId\": \"find pet by id\",\n      \"params\": {\n        \"id\": \"abcde\"\n      }\n    }\n  },\n  {\n    \"path\": \"/pets/abcde\",\n    \"method\": \"DELETE\",\n    \"query\": \"DELETE /pets/abcde\",\n    \"startts\": 1591661363241,\n    \"endts\": 1591661363324,\n    \"responsetime\": 83,\n    \"node\": {\n      \"name\": \"swagger-stats-fastify\",\n      \"version\": \"0.95.17\",\n      \"hostname\": \"sv5\",\n      \"ip\": \"192.168.1.71\"\n    },\n    \"http\": {\n      \"request\": {\n        \"url\": \"/pets/abcde\",\n        \"headers\": {\n          \"x-sws-res\": \"{\\\"code\\\":404,\\\"message\\\":\\\"Not Found\\\",\\\"delay\\\":82,\\\"payloadsize\\\":147}\",\n          \"host\": \"localhost:3040\",\n          \"connection\": \"close\"\n        },\n        \"clength\": 0,\n        \"route_path\": \"/pet*\",\n        \"query\": {}\n      },\n      \"response\": {\n        \"code\": 404,\n        \"class\": \"client_error\",\n        \"phrase\": \"Not Found\",\n        \"headers\": {},\n        \"clength\": 147\n      }\n    },\n    \"ip\": \"127.0.0.1\",\n    \"real_ip\": \"127.0.0.1\",\n    \"port\": 3040,\n    \"@timestamp\": \"2020-06-09T00:09:23.241Z\",\n    \"api\": {\n      \"path\": \"/pets/{id}\",\n      \"query\": \"DELETE /pets/{id}\",\n      \"swagger\": true,\n      \"deprecated\": false,\n      \"operationId\": \"deletePet\",\n      \"params\": {\n        \"id\": \"abcde\"\n      }\n    }\n  },\n  {\n    \"path\": \"/pets\",\n    \"method\": \"GET\",\n    \"query\": \"GET /pets\",\n    \"startts\": 1591661363240,\n    \"endts\": 1591661363309,\n    \"responsetime\": 69,\n    \"node\": {\n      \"name\": \"swagger-stats-fastify\",\n      \"version\": \"0.95.17\",\n      \"hostname\": \"sv5\",\n      \"ip\": \"192.168.1.71\"\n    },\n    \"http\": {\n      \"request\": {\n        \"url\": \"/pets\",\n        \"headers\": {\n          \"x-sws-res\": \"{\\\"code\\\":\\\"200\\\",\\\"message\\\":\\\"OK\\\",\\\"delay\\\":68,\\\"payloadsize\\\":39}\",\n          \"host\": \"localhost:3040\",\n          \"connection\": \"close\"\n        },\n        \"clength\": 0,\n        \"route_path\": \"/pet*\",\n        \"query\": {}\n      },\n      \"response\": {\n        \"code\": 200,\n        \"class\": \"success\",\n        \"phrase\": \"OK\",\n        \"headers\": {},\n        \"clength\": 39\n      }\n    },\n    \"ip\": \"127.0.0.1\",\n    \"real_ip\": \"127.0.0.1\",\n    \"port\": 3040,\n    \"@timestamp\": \"2020-06-09T00:09:23.240Z\",\n    \"api\": {\n      \"path\": \"/pets\",\n      \"query\": \"GET /pets\",\n      \"swagger\": true,\n      \"deprecated\": false,\n      \"operationId\": \"findPets\",\n      \"params\": {}\n    }\n  },\n  {\n    \"path\": \"/pets\",\n    \"method\": \"POST\",\n    \"query\": \"POST /pets\",\n    \"startts\": 1591661362943,\n    \"endts\": 1591661363019,\n    \"responsetime\": 76,\n    \"node\": {\n      \"name\": \"swagger-stats-fastify\",\n      \"version\": \"0.95.17\",\n      \"hostname\": \"sv5\",\n      \"ip\": \"192.168.1.71\"\n    },\n    \"http\": {\n      \"request\": {\n        \"url\": \"/pets\",\n        \"headers\": {\n          \"x-sws-res\": \"{\\\"code\\\":\\\"200\\\",\\\"message\\\":\\\"OK\\\",\\\"delay\\\":75,\\\"payloadsize\\\":158}\",\n          \"content-type\": \"application/json\",\n          \"content-length\": \"63\",\n          \"host\": \"localhost:3040\",\n          \"connection\": \"close\"\n        },\n        \"clength\": 63,\n        \"route_path\": \"/pet*\",\n        \"query\": {}\n      },\n      \"response\": {\n        \"code\": 200,\n        \"class\": \"success\",\n        \"phrase\": \"OK\",\n        \"headers\": {},\n        \"clength\": 158\n      }\n    },\n    \"ip\": \"127.0.0.1\",\n    \"real_ip\": \"127.0.0.1\",\n    \"port\": 3040,\n    \"@timestamp\": \"2020-06-09T00:09:22.943Z\",\n    \"api\": {\n      \"path\": \"/pets\",\n      \"query\": \"POST /pets\",\n      \"swagger\": true,\n      \"deprecated\": false,\n      \"operationId\": \"addPet\"\n    }\n  },\n  {\n    \"path\": \"/pets\",\n    \"method\": \"GET\",\n    \"query\": \"GET /pets\",\n    \"startts\": 1591661362942,\n    \"endts\": 1591661362967,\n    \"responsetime\": 25,\n    \"node\": {\n      \"name\": \"swagger-stats-fastify\",\n      \"version\": \"0.95.17\",\n      \"hostname\": \"sv5\",\n      \"ip\": \"192.168.1.71\"\n    },\n    \"http\": {\n      \"request\": {\n        \"url\": \"/pets\",\n        \"headers\": {\n          \"x-sws-res\": \"{\\\"code\\\":\\\"200\\\",\\\"message\\\":\\\"OK\\\",\\\"delay\\\":25,\\\"payloadsize\\\":164}\",\n          \"host\": \"localhost:3040\",\n          \"connection\": \"close\"\n        },\n        \"clength\": 0,\n        \"route_path\": \"/pet*\",\n        \"query\": {}\n      },\n      \"response\": {\n        \"code\": 200,\n        \"class\": \"success\",\n        \"phrase\": \"OK\",\n        \"headers\": {},\n        \"clength\": 164\n      }\n    },\n    \"ip\": \"127.0.0.1\",\n    \"real_ip\": \"127.0.0.1\",\n    \"port\": 3040,\n    \"@timestamp\": \"2020-06-09T00:09:22.942Z\",\n    \"api\": {\n      \"path\": \"/pets\",\n      \"query\": \"GET /pets\",\n      \"swagger\": true,\n      \"deprecated\": false,\n      \"operationId\": \"findPets\",\n      \"params\": {}\n    }\n  },\n  {\n    \"path\": \"/pets/abcde\",\n    \"method\": \"GET\",\n    \"query\": \"GET /pets/abcde\",\n    \"startts\": 1591661362600,\n    \"endts\": 1591661362605,\n    \"responsetime\": 5,\n    \"node\": {\n      \"name\": \"swagger-stats-fastify\",\n      \"version\": \"0.95.17\",\n      \"hostname\": \"sv5\",\n      \"ip\": \"192.168.1.71\"\n    },\n    \"http\": {\n      \"request\": {\n        \"url\": \"/pets/abcde\",\n        \"headers\": {\n          \"x-sws-res\": \"{\\\"code\\\":401,\\\"message\\\":\\\"Unauthorized\\\",\\\"delay\\\":5,\\\"payloadsize\\\":166}\",\n          \"host\": \"localhost:3040\",\n          \"connection\": \"close\"\n        },\n        \"clength\": 0,\n        \"route_path\": \"/pet*\",\n        \"query\": {}\n      },\n      \"response\": {\n        \"code\": 401,\n        \"class\": \"client_error\",\n        \"phrase\": \"Unauthorized\",\n        \"headers\": {},\n        \"clength\": 166\n      }\n    },\n    \"ip\": \"127.0.0.1\",\n    \"real_ip\": \"127.0.0.1\",\n    \"port\": 3040,\n    \"@timestamp\": \"2020-06-09T00:09:22.600Z\",\n    \"api\": {\n      \"path\": \"/pets/{id}\",\n      \"query\": \"GET /pets/{id}\",\n      \"swagger\": true,\n      \"deprecated\": false,\n      \"operationId\": \"find pet by id\",\n      \"params\": {\n        \"id\": \"abcde\"\n      }\n    }\n  },\n  {\n    \"path\": \"/pets\",\n    \"method\": \"POST\",\n    \"query\": \"POST /pets\",\n    \"startts\": 1591661362273,\n    \"endts\": 1591661362353,\n    \"responsetime\": 80,\n    \"node\": {\n      \"name\": \"swagger-stats-fastify\",\n      \"version\": \"0.95.17\",\n      \"hostname\": \"sv5\",\n      \"ip\": \"192.168.1.71\"\n    },\n    \"http\": {\n      \"request\": {\n        \"url\": \"/pets\",\n        \"headers\": {\n          \"x-sws-res\": \"{\\\"code\\\":\\\"200\\\",\\\"message\\\":\\\"OK\\\",\\\"delay\\\":79,\\\"payloadsize\\\":151}\",\n          \"content-type\": \"application/json\",\n          \"content-length\": \"158\",\n          \"host\": \"localhost:3040\",\n          \"connection\": \"close\"\n        },\n        \"clength\": 158,\n        \"route_path\": \"/pet*\",\n        \"query\": {}\n      },\n      \"response\": {\n        \"code\": 200,\n        \"class\": \"success\",\n        \"phrase\": \"OK\",\n        \"headers\": {},\n        \"clength\": 151\n      }\n    },\n    \"ip\": \"127.0.0.1\",\n    \"real_ip\": \"127.0.0.1\",\n    \"port\": 3040,\n    \"@timestamp\": \"2020-06-09T00:09:22.273Z\",\n    \"api\": {\n      \"path\": \"/pets\",\n      \"query\": \"POST /pets\",\n      \"swagger\": true,\n      \"deprecated\": false,\n      \"operationId\": \"addPet\"\n    }\n  },\n  {\n    \"path\": \"/pets/abcde\",\n    \"method\": \"DELETE\",\n    \"query\": \"DELETE /pets/abcde\",\n    \"startts\": 1591661361720,\n    \"endts\": 1591661361742,\n    \"responsetime\": 22,\n    \"node\": {\n      \"name\": \"swagger-stats-fastify\",\n      \"version\": \"0.95.17\",\n      \"hostname\": \"sv5\",\n      \"ip\": \"192.168.1.71\"\n    },\n    \"http\": {\n      \"request\": {\n        \"url\": \"/pets/abcde\",\n        \"headers\": {\n          \"x-sws-res\": \"{\\\"code\\\":\\\"200\\\",\\\"message\\\":\\\"OK\\\",\\\"delay\\\":21,\\\"payloadsize\\\":161}\",\n          \"host\": \"localhost:3040\",\n          \"connection\": \"close\"\n        },\n        \"clength\": 0,\n        \"route_path\": \"/pet*\",\n        \"query\": {}\n      },\n      \"response\": {\n        \"code\": 200,\n        \"class\": \"success\",\n        \"phrase\": \"OK\",\n        \"headers\": {},\n        \"clength\": 161\n      }\n    },\n    \"ip\": \"127.0.0.1\",\n    \"real_ip\": \"127.0.0.1\",\n    \"port\": 3040,\n    \"@timestamp\": \"2020-06-09T00:09:21.720Z\",\n    \"api\": {\n      \"path\": \"/pets/{id}\",\n      \"query\": \"DELETE /pets/{id}\",\n      \"swagger\": true,\n      \"deprecated\": false,\n      \"operationId\": \"deletePet\",\n      \"params\": {\n        \"id\": \"abcde\"\n      }\n    }\n  },\n  {\n    \"path\": \"/pets/abcde\",\n    \"method\": \"GET\",\n    \"query\": \"GET /pets/abcde\",\n    \"startts\": 1591661361720,\n    \"endts\": 1591661361783,\n    \"responsetime\": 63,\n    \"node\": {\n      \"name\": \"swagger-stats-fastify\",\n      \"version\": \"0.95.17\",\n      \"hostname\": \"sv5\",\n      \"ip\": \"192.168.1.71\"\n    },\n    \"http\": {\n      \"request\": {\n        \"url\": \"/pets/abcde\",\n        \"headers\": {\n          \"x-sws-res\": \"{\\\"code\\\":401,\\\"message\\\":\\\"Unauthorized\\\",\\\"delay\\\":63,\\\"payloadsize\\\":121}\",\n          \"host\": \"localhost:3040\",\n          \"connection\": \"close\"\n        },\n        \"clength\": 0,\n        \"route_path\": \"/pet*\",\n        \"query\": {}\n      },\n      \"response\": {\n        \"code\": 401,\n        \"class\": \"client_error\",\n        \"phrase\": \"Unauthorized\",\n        \"headers\": {},\n        \"clength\": 121\n      }\n    },\n    \"ip\": \"127.0.0.1\",\n    \"real_ip\": \"127.0.0.1\",\n    \"port\": 3040,\n    \"@timestamp\": \"2020-06-09T00:09:21.720Z\",\n    \"api\": {\n      \"path\": \"/pets/{id}\",\n      \"query\": \"GET /pets/{id}\",\n      \"swagger\": true,\n      \"deprecated\": false,\n      \"operationId\": \"find pet by id\",\n      \"params\": {\n        \"id\": \"abcde\"\n      }\n    }\n  },\n  {\n    \"path\": \"/pets\",\n    \"method\": \"POST\",\n    \"query\": \"POST /pets\",\n    \"startts\": 1591661361720,\n    \"endts\": 1591661361784,\n    \"responsetime\": 64,\n    \"node\": {\n      \"name\": \"swagger-stats-fastify\",\n      \"version\": \"0.95.17\",\n      \"hostname\": \"sv5\",\n      \"ip\": \"192.168.1.71\"\n    },\n    \"http\": {\n      \"request\": {\n        \"url\": \"/pets\",\n        \"headers\": {\n          \"x-sws-res\": \"{\\\"code\\\":\\\"200\\\",\\\"message\\\":\\\"OK\\\",\\\"delay\\\":64,\\\"payloadsize\\\":173}\",\n          \"content-type\": \"application/json\",\n          \"content-length\": \"105\",\n          \"host\": \"localhost:3040\",\n          \"connection\": \"close\"\n        },\n        \"clength\": 105,\n        \"route_path\": \"/pet*\",\n        \"query\": {}\n      },\n      \"response\": {\n        \"code\": 200,\n        \"class\": \"success\",\n        \"phrase\": \"OK\",\n        \"headers\": {},\n        \"clength\": 173\n      }\n    },\n    \"ip\": \"127.0.0.1\",\n    \"real_ip\": \"127.0.0.1\",\n    \"port\": 3040,\n    \"@timestamp\": \"2020-06-09T00:09:21.720Z\",\n    \"api\": {\n      \"path\": \"/pets\",\n      \"query\": \"POST /pets\",\n      \"swagger\": true,\n      \"deprecated\": false,\n      \"operationId\": \"addPet\"\n    }\n  },\n  {\n    \"path\": \"/pets\",\n    \"method\": \"GET\",\n    \"query\": \"GET /pets\",\n    \"startts\": 1591661361719,\n    \"endts\": 1591661361818,\n    \"responsetime\": 99,\n    \"node\": {\n      \"name\": \"swagger-stats-fastify\",\n      \"version\": \"0.95.17\",\n      \"hostname\": \"sv5\",\n      \"ip\": \"192.168.1.71\"\n    },\n    \"http\": {\n      \"request\": {\n        \"url\": \"/pets\",\n        \"headers\": {\n          \"x-sws-res\": \"{\\\"code\\\":\\\"200\\\",\\\"message\\\":\\\"OK\\\",\\\"delay\\\":97,\\\"payloadsize\\\":80}\",\n          \"host\": \"localhost:3040\",\n          \"connection\": \"close\"\n        },\n        \"clength\": 0,\n        \"route_path\": \"/pet*\",\n        \"query\": {}\n      },\n      \"response\": {\n        \"code\": 200,\n        \"class\": \"success\",\n        \"phrase\": \"OK\",\n        \"headers\": {},\n        \"clength\": 80\n      }\n    },\n    \"ip\": \"127.0.0.1\",\n    \"real_ip\": \"127.0.0.1\",\n    \"port\": 3040,\n    \"@timestamp\": \"2020-06-09T00:09:21.719Z\",\n    \"api\": {\n      \"path\": \"/pets\",\n      \"query\": \"GET /pets\",\n      \"swagger\": true,\n      \"deprecated\": false,\n      \"operationId\": \"findPets\",\n      \"params\": {}\n    }\n  },\n  {\n    \"path\": \"/pets\",\n    \"method\": \"POST\",\n    \"query\": \"POST /pets\",\n    \"startts\": 1591661361120,\n    \"endts\": 1591661361199,\n    \"responsetime\": 79,\n    \"node\": {\n      \"name\": \"swagger-stats-fastify\",\n      \"version\": \"0.95.17\",\n      \"hostname\": \"sv5\",\n      \"ip\": \"192.168.1.71\"\n    },\n    \"http\": {\n      \"request\": {\n        \"url\": \"/pets\",\n        \"headers\": {\n          \"x-sws-res\": \"{\\\"code\\\":\\\"200\\\",\\\"message\\\":\\\"OK\\\",\\\"delay\\\":78,\\\"payloadsize\\\":44}\",\n          \"content-type\": \"application/json\",\n          \"content-length\": \"54\",\n          \"host\": \"localhost:3040\",\n          \"connection\": \"close\"\n        },\n        \"clength\": 54,\n        \"route_path\": \"/pet*\",\n        \"query\": {}\n      },\n      \"response\": {\n        \"code\": 200,\n        \"class\": \"success\",\n        \"phrase\": \"OK\",\n        \"headers\": {},\n        \"clength\": 44\n      }\n    },\n    \"ip\": \"127.0.0.1\",\n    \"real_ip\": \"127.0.0.1\",\n    \"port\": 3040,\n    \"@timestamp\": \"2020-06-09T00:09:21.120Z\",\n    \"api\": {\n      \"path\": \"/pets\",\n      \"query\": \"POST /pets\",\n      \"swagger\": true,\n      \"deprecated\": false,\n      \"operationId\": \"addPet\"\n    }\n  },\n  {\n    \"path\": \"/pets/abcde\",\n    \"method\": \"DELETE\",\n    \"query\": \"DELETE /pets/abcde\",\n    \"startts\": 1591661361120,\n    \"endts\": 1591661361220,\n    \"responsetime\": 100,\n    \"node\": {\n      \"name\": \"swagger-stats-fastify\",\n      \"version\": \"0.95.17\",\n      \"hostname\": \"sv5\",\n      \"ip\": \"192.168.1.71\"\n    },\n    \"http\": {\n      \"request\": {\n        \"url\": \"/pets/abcde\",\n        \"headers\": {\n          \"x-sws-res\": \"{\\\"code\\\":\\\"200\\\",\\\"message\\\":\\\"OK\\\",\\\"delay\\\":98,\\\"payloadsize\\\":116}\",\n          \"host\": \"localhost:3040\",\n          \"connection\": \"close\"\n        },\n        \"clength\": 0,\n        \"route_path\": \"/pet*\",\n        \"query\": {}\n      },\n      \"response\": {\n        \"code\": 200,\n        \"class\": \"success\",\n        \"phrase\": \"OK\",\n        \"headers\": {},\n        \"clength\": 116\n      }\n    },\n    \"ip\": \"127.0.0.1\",\n    \"real_ip\": \"127.0.0.1\",\n    \"port\": 3040,\n    \"@timestamp\": \"2020-06-09T00:09:21.120Z\",\n    \"api\": {\n      \"path\": \"/pets/{id}\",\n      \"query\": \"DELETE /pets/{id}\",\n      \"swagger\": true,\n      \"deprecated\": false,\n      \"operationId\": \"deletePet\",\n      \"params\": {\n        \"id\": \"abcde\"\n      }\n    }\n  },\n  {\n    \"path\": \"/pets\",\n    \"method\": \"GET\",\n    \"query\": \"GET /pets\",\n    \"startts\": 1591661361119,\n    \"endts\": 1591661361213,\n    \"responsetime\": 94,\n    \"node\": {\n      \"name\": \"swagger-stats-fastify\",\n      \"version\": \"0.95.17\",\n      \"hostname\": \"sv5\",\n      \"ip\": \"192.168.1.71\"\n    },\n    \"http\": {\n      \"request\": {\n        \"url\": \"/pets\",\n        \"headers\": {\n          \"x-sws-res\": \"{\\\"code\\\":\\\"200\\\",\\\"message\\\":\\\"OK\\\",\\\"delay\\\":93,\\\"payloadsize\\\":151}\",\n          \"host\": \"localhost:3040\",\n          \"connection\": \"close\"\n        },\n        \"clength\": 0,\n        \"route_path\": \"/pet*\",\n        \"query\": {}\n      },\n      \"response\": {\n        \"code\": 200,\n        \"class\": \"success\",\n        \"phrase\": \"OK\",\n        \"headers\": {},\n        \"clength\": 151\n      }\n    },\n    \"ip\": \"127.0.0.1\",\n    \"real_ip\": \"127.0.0.1\",\n    \"port\": 3040,\n    \"@timestamp\": \"2020-06-09T00:09:21.119Z\",\n    \"api\": {\n      \"path\": \"/pets\",\n      \"query\": \"GET /pets\",\n      \"swagger\": true,\n      \"deprecated\": false,\n      \"operationId\": \"findPets\",\n      \"params\": {}\n    }\n  },\n  {\n    \"path\": \"/pets/abcde\",\n    \"method\": \"DELETE\",\n    \"query\": \"DELETE /pets/abcde\",\n    \"startts\": 1591661360540,\n    \"endts\": 1591661360632,\n    \"responsetime\": 92,\n    \"node\": {\n      \"name\": \"swagger-stats-fastify\",\n      \"version\": \"0.95.17\",\n      \"hostname\": \"sv5\",\n      \"ip\": \"192.168.1.71\"\n    },\n    \"http\": {\n      \"request\": {\n        \"url\": \"/pets/abcde\",\n        \"headers\": {\n          \"x-sws-res\": \"{\\\"code\\\":\\\"200\\\",\\\"message\\\":\\\"OK\\\",\\\"delay\\\":92,\\\"payloadsize\\\":126}\",\n          \"host\": \"localhost:3040\",\n          \"connection\": \"close\"\n        },\n        \"clength\": 0,\n        \"route_path\": \"/pet*\",\n        \"query\": {}\n      },\n      \"response\": {\n        \"code\": 200,\n        \"class\": \"success\",\n        \"phrase\": \"OK\",\n        \"headers\": {},\n        \"clength\": 126\n      }\n    },\n    \"ip\": \"127.0.0.1\",\n    \"real_ip\": \"127.0.0.1\",\n    \"port\": 3040,\n    \"@timestamp\": \"2020-06-09T00:09:20.540Z\",\n    \"api\": {\n      \"path\": \"/pets/{id}\",\n      \"query\": \"DELETE /pets/{id}\",\n      \"swagger\": true,\n      \"deprecated\": false,\n      \"operationId\": \"deletePet\",\n      \"params\": {\n        \"id\": \"abcde\"\n      }\n    }\n  },\n  {\n    \"path\": \"/pets\",\n    \"method\": \"GET\",\n    \"query\": \"GET /pets\",\n    \"startts\": 1591661360539,\n    \"endts\": 1591661360618,\n    \"responsetime\": 79,\n    \"node\": {\n      \"name\": \"swagger-stats-fastify\",\n      \"version\": \"0.95.17\",\n      \"hostname\": \"sv5\",\n      \"ip\": \"192.168.1.71\"\n    },\n    \"http\": {\n      \"request\": {\n        \"url\": \"/pets\",\n        \"headers\": {\n          \"x-sws-res\": \"{\\\"code\\\":\\\"200\\\",\\\"message\\\":\\\"OK\\\",\\\"delay\\\":78,\\\"payloadsize\\\":76}\",\n          \"host\": \"localhost:3040\",\n          \"connection\": \"close\"\n        },\n        \"clength\": 0,\n        \"route_path\": \"/pet*\",\n        \"query\": {}\n      },\n      \"response\": {\n        \"code\": 200,\n        \"class\": \"success\",\n        \"phrase\": \"OK\",\n        \"headers\": {},\n        \"clength\": 76\n      }\n    },\n    \"ip\": \"127.0.0.1\",\n    \"real_ip\": \"127.0.0.1\",\n    \"port\": 3040,\n    \"@timestamp\": \"2020-06-09T00:09:20.539Z\",\n    \"api\": {\n      \"path\": \"/pets\",\n      \"query\": \"GET /pets\",\n      \"swagger\": true,\n      \"deprecated\": false,\n      \"operationId\": \"findPets\",\n      \"params\": {}\n    }\n  },\n  {\n    \"path\": \"/pets/abcde\",\n    \"method\": \"GET\",\n    \"query\": \"GET /pets/abcde\",\n    \"startts\": 1591661360539,\n    \"endts\": 1591661360621,\n    \"responsetime\": 82,\n    \"node\": {\n      \"name\": \"swagger-stats-fastify\",\n      \"version\": \"0.95.17\",\n      \"hostname\": \"sv5\",\n      \"ip\": \"192.168.1.71\"\n    },\n    \"http\": {\n      \"request\": {\n        \"url\": \"/pets/abcde\",\n        \"headers\": {\n          \"x-sws-res\": \"{\\\"code\\\":\\\"200\\\",\\\"message\\\":\\\"OK\\\",\\\"delay\\\":81,\\\"payloadsize\\\":86}\",\n          \"host\": \"localhost:3040\",\n          \"connection\": \"close\"\n        },\n        \"clength\": 0,\n        \"route_path\": \"/pet*\",\n        \"query\": {}\n      },\n      \"response\": {\n        \"code\": 200,\n        \"class\": \"success\",\n        \"phrase\": \"OK\",\n        \"headers\": {},\n        \"clength\": 86\n      }\n    },\n    \"ip\": \"127.0.0.1\",\n    \"real_ip\": \"127.0.0.1\",\n    \"port\": 3040,\n    \"@timestamp\": \"2020-06-09T00:09:20.539Z\",\n    \"api\": {\n      \"path\": \"/pets/{id}\",\n      \"query\": \"GET /pets/{id}\",\n      \"swagger\": true,\n      \"deprecated\": false,\n      \"operationId\": \"find pet by id\",\n      \"params\": {\n        \"id\": \"abcde\"\n      }\n    }\n  },\n  {\n    \"path\": \"/pets/abcde\",\n    \"method\": \"GET\",\n    \"query\": \"GET /pets/abcde\",\n    \"startts\": 1591661360049,\n    \"endts\": 1591661360117,\n    \"responsetime\": 68,\n    \"node\": {\n      \"name\": \"swagger-stats-fastify\",\n      \"version\": \"0.95.17\",\n      \"hostname\": \"sv5\",\n      \"ip\": \"192.168.1.71\"\n    },\n    \"http\": {\n      \"request\": {\n        \"url\": \"/pets/abcde\",\n        \"headers\": {\n          \"x-sws-res\": \"{\\\"code\\\":\\\"200\\\",\\\"message\\\":\\\"OK\\\",\\\"delay\\\":67,\\\"payloadsize\\\":166}\",\n          \"host\": \"localhost:3040\",\n          \"connection\": \"close\"\n        },\n        \"clength\": 0,\n        \"route_path\": \"/pet*\",\n        \"query\": {}\n      },\n      \"response\": {\n        \"code\": 200,\n        \"class\": \"success\",\n        \"phrase\": \"OK\",\n        \"headers\": {},\n        \"clength\": 166\n      }\n    },\n    \"ip\": \"127.0.0.1\",\n    \"real_ip\": \"127.0.0.1\",\n    \"port\": 3040,\n    \"@timestamp\": \"2020-06-09T00:09:20.049Z\",\n    \"api\": {\n      \"path\": \"/pets/{id}\",\n      \"query\": \"GET /pets/{id}\",\n      \"swagger\": true,\n      \"deprecated\": false,\n      \"operationId\": \"find pet by id\",\n      \"params\": {\n        \"id\": \"abcde\"\n      }\n    }\n  },\n  {\n    \"path\": \"/pets\",\n    \"method\": \"POST\",\n    \"query\": \"POST /pets\",\n    \"startts\": 1591661360048,\n    \"endts\": 1591661360138,\n    \"responsetime\": 90,\n    \"node\": {\n      \"name\": \"swagger-stats-fastify\",\n      \"version\": \"0.95.17\",\n      \"hostname\": \"sv5\",\n      \"ip\": \"192.168.1.71\"\n    },\n    \"http\": {\n      \"request\": {\n        \"url\": \"/pets\",\n        \"headers\": {\n          \"x-sws-res\": \"{\\\"code\\\":\\\"200\\\",\\\"message\\\":\\\"OK\\\",\\\"delay\\\":89,\\\"payloadsize\\\":199}\",\n          \"content-type\": \"application/json\",\n          \"content-length\": \"72\",\n          \"host\": \"localhost:3040\",\n          \"connection\": \"close\"\n        },\n        \"clength\": 72,\n        \"route_path\": \"/pet*\",\n        \"query\": {}\n      },\n      \"response\": {\n        \"code\": 200,\n        \"class\": \"success\",\n        \"phrase\": \"OK\",\n        \"headers\": {},\n        \"clength\": 199\n      }\n    },\n    \"ip\": \"127.0.0.1\",\n    \"real_ip\": \"127.0.0.1\",\n    \"port\": 3040,\n    \"@timestamp\": \"2020-06-09T00:09:20.048Z\",\n    \"api\": {\n      \"path\": \"/pets\",\n      \"query\": \"POST /pets\",\n      \"swagger\": true,\n      \"deprecated\": false,\n      \"operationId\": \"addPet\"\n    }\n  },\n  {\n    \"path\": \"/pets/abcde\",\n    \"method\": \"DELETE\",\n    \"query\": \"DELETE /pets/abcde\",\n    \"startts\": 1591661359853,\n    \"endts\": 1591661359856,\n    \"responsetime\": 3,\n    \"node\": {\n      \"name\": \"swagger-stats-fastify\",\n      \"version\": \"0.95.17\",\n      \"hostname\": \"sv5\",\n      \"ip\": \"192.168.1.71\"\n    },\n    \"http\": {\n      \"request\": {\n        \"url\": \"/pets/abcde\",\n        \"headers\": {\n          \"x-sws-res\": \"{\\\"code\\\":\\\"200\\\",\\\"message\\\":\\\"OK\\\",\\\"delay\\\":2,\\\"payloadsize\\\":148}\",\n          \"host\": \"localhost:3040\",\n          \"connection\": \"close\"\n        },\n        \"clength\": 0,\n        \"route_path\": \"/pet*\",\n        \"query\": {}\n      },\n      \"response\": {\n        \"code\": 200,\n        \"class\": \"success\",\n        \"phrase\": \"OK\",\n        \"headers\": {},\n        \"clength\": 148\n      }\n    },\n    \"ip\": \"127.0.0.1\",\n    \"real_ip\": \"127.0.0.1\",\n    \"port\": 3040,\n    \"@timestamp\": \"2020-06-09T00:09:19.853Z\",\n    \"api\": {\n      \"path\": \"/pets/{id}\",\n      \"query\": \"DELETE /pets/{id}\",\n      \"swagger\": true,\n      \"deprecated\": false,\n      \"operationId\": \"deletePet\",\n      \"params\": {\n        \"id\": \"abcde\"\n      }\n    }\n  },\n  {\n    \"path\": \"/pets/abcde\",\n    \"method\": \"GET\",\n    \"query\": \"GET /pets/abcde\",\n    \"startts\": 1591661359853,\n    \"endts\": 1591661359878,\n    \"responsetime\": 25,\n    \"node\": {\n      \"name\": \"swagger-stats-fastify\",\n      \"version\": \"0.95.17\",\n      \"hostname\": \"sv5\",\n      \"ip\": \"192.168.1.71\"\n    },\n    \"http\": {\n      \"request\": {\n        \"url\": \"/pets/abcde\",\n        \"headers\": {\n          \"x-sws-res\": \"{\\\"code\\\":\\\"200\\\",\\\"message\\\":\\\"OK\\\",\\\"delay\\\":24,\\\"payloadsize\\\":51}\",\n          \"host\": \"localhost:3040\",\n          \"connection\": \"close\"\n        },\n        \"clength\": 0,\n        \"route_path\": \"/pet*\",\n        \"query\": {}\n      },\n      \"response\": {\n        \"code\": 200,\n        \"class\": \"success\",\n        \"phrase\": \"OK\",\n        \"headers\": {},\n        \"clength\": 51\n      }\n    },\n    \"ip\": \"127.0.0.1\",\n    \"real_ip\": \"127.0.0.1\",\n    \"port\": 3040,\n    \"@timestamp\": \"2020-06-09T00:09:19.853Z\",\n    \"api\": {\n      \"path\": \"/pets/{id}\",\n      \"query\": \"GET /pets/{id}\",\n      \"swagger\": true,\n      \"deprecated\": false,\n      \"operationId\": \"find pet by id\",\n      \"params\": {\n        \"id\": \"abcde\"\n      }\n    }\n  },\n  {\n    \"path\": \"/pets\",\n    \"method\": \"POST\",\n    \"query\": \"POST /pets\",\n    \"startts\": 1591661359852,\n    \"endts\": 1591661359924,\n    \"responsetime\": 72,\n    \"node\": {\n      \"name\": \"swagger-stats-fastify\",\n      \"version\": \"0.95.17\",\n      \"hostname\": \"sv5\",\n      \"ip\": \"192.168.1.71\"\n    },\n    \"http\": {\n      \"request\": {\n        \"url\": \"/pets\",\n        \"headers\": {\n          \"x-sws-res\": \"{\\\"code\\\":\\\"200\\\",\\\"message\\\":\\\"OK\\\",\\\"delay\\\":71,\\\"payloadsize\\\":50}\",\n          \"content-type\": \"application/json\",\n          \"content-length\": \"116\",\n          \"host\": \"localhost:3040\",\n          \"connection\": \"close\"\n        },\n        \"clength\": 116,\n        \"route_path\": \"/pet*\",\n        \"query\": {}\n      },\n      \"response\": {\n        \"code\": 200,\n        \"class\": \"success\",\n        \"phrase\": \"OK\",\n        \"headers\": {},\n        \"clength\": 50\n      }\n    },\n    \"ip\": \"127.0.0.1\",\n    \"real_ip\": \"127.0.0.1\",\n    \"port\": 3040,\n    \"@timestamp\": \"2020-06-09T00:09:19.852Z\",\n    \"api\": {\n      \"path\": \"/pets\",\n      \"query\": \"POST /pets\",\n      \"swagger\": true,\n      \"deprecated\": false,\n      \"operationId\": \"addPet\"\n    }\n  },\n  {\n    \"path\": \"/pets\",\n    \"method\": \"GET\",\n    \"query\": \"GET /pets\",\n    \"startts\": 1591661359851,\n    \"endts\": 1591661359940,\n    \"responsetime\": 89,\n    \"node\": {\n      \"name\": \"swagger-stats-fastify\",\n      \"version\": \"0.95.17\",\n      \"hostname\": \"sv5\",\n      \"ip\": \"192.168.1.71\"\n    },\n    \"http\": {\n      \"request\": {\n        \"url\": \"/pets\",\n        \"headers\": {\n          \"x-sws-res\": \"{\\\"code\\\":\\\"200\\\",\\\"message\\\":\\\"OK\\\",\\\"delay\\\":88,\\\"payloadsize\\\":119}\",\n          \"host\": \"localhost:3040\",\n          \"connection\": \"close\"\n        },\n        \"clength\": 0,\n        \"route_path\": \"/pet*\",\n        \"query\": {}\n      },\n      \"response\": {\n        \"code\": 200,\n        \"class\": \"success\",\n        \"phrase\": \"OK\",\n        \"headers\": {},\n        \"clength\": 119\n      }\n    },\n    \"ip\": \"127.0.0.1\",\n    \"real_ip\": \"127.0.0.1\",\n    \"port\": 3040,\n    \"@timestamp\": \"2020-06-09T00:09:19.851Z\",\n    \"api\": {\n      \"path\": \"/pets\",\n      \"query\": \"GET /pets\",\n      \"swagger\": true,\n      \"deprecated\": false,\n      \"operationId\": \"findPets\",\n      \"params\": {}\n    }\n  },\n  {\n    \"path\": \"/pets/abcde\",\n    \"method\": \"DELETE\",\n    \"query\": \"DELETE /pets/abcde\",\n    \"startts\": 1591661359338,\n    \"endts\": 1591661359373,\n    \"responsetime\": 35,\n    \"node\": {\n      \"name\": \"swagger-stats-fastify\",\n      \"version\": \"0.95.17\",\n      \"hostname\": \"sv5\",\n      \"ip\": \"192.168.1.71\"\n    },\n    \"http\": {\n      \"request\": {\n        \"url\": \"/pets/abcde\",\n        \"headers\": {\n          \"x-sws-res\": \"{\\\"code\\\":\\\"200\\\",\\\"message\\\":\\\"OK\\\",\\\"delay\\\":34,\\\"payloadsize\\\":161}\",\n          \"host\": \"localhost:3040\",\n          \"connection\": \"close\"\n        },\n        \"clength\": 0,\n        \"route_path\": \"/pet*\",\n        \"query\": {}\n      },\n      \"response\": {\n        \"code\": 200,\n        \"class\": \"success\",\n        \"phrase\": \"OK\",\n        \"headers\": {},\n        \"clength\": 161\n      }\n    },\n    \"ip\": \"127.0.0.1\",\n    \"real_ip\": \"127.0.0.1\",\n    \"port\": 3040,\n    \"@timestamp\": \"2020-06-09T00:09:19.338Z\",\n    \"api\": {\n      \"path\": \"/pets/{id}\",\n      \"query\": \"DELETE /pets/{id}\",\n      \"swagger\": true,\n      \"deprecated\": false,\n      \"operationId\": \"deletePet\",\n      \"params\": {\n        \"id\": \"abcde\"\n      }\n    }\n  },\n  {\n    \"path\": \"/pets/abcde\",\n    \"method\": \"GET\",\n    \"query\": \"GET /pets/abcde\",\n    \"startts\": 1591661359338,\n    \"endts\": 1591661359382,\n    \"responsetime\": 44,\n    \"node\": {\n      \"name\": \"swagger-stats-fastify\",\n      \"version\": \"0.95.17\",\n      \"hostname\": \"sv5\",\n      \"ip\": \"192.168.1.71\"\n    },\n    \"http\": {\n      \"request\": {\n        \"url\": \"/pets/abcde\",\n        \"headers\": {\n          \"x-sws-res\": \"{\\\"code\\\":500,\\\"message\\\":\\\"Internal Server Error\\\",\\\"delay\\\":43,\\\"payloadsize\\\":8}\",\n          \"host\": \"localhost:3040\",\n          \"connection\": \"close\"\n        },\n        \"clength\": 0,\n        \"route_path\": \"/pet*\",\n        \"query\": {}\n      },\n      \"response\": {\n        \"code\": 500,\n        \"class\": \"server_error\",\n        \"phrase\": \"Internal Server Error\",\n        \"headers\": {},\n        \"clength\": 8\n      }\n    },\n    \"ip\": \"127.0.0.1\",\n    \"real_ip\": \"127.0.0.1\",\n    \"port\": 3040,\n    \"@timestamp\": \"2020-06-09T00:09:19.338Z\",\n    \"api\": {\n      \"path\": \"/pets/{id}\",\n      \"query\": \"GET /pets/{id}\",\n      \"swagger\": true,\n      \"deprecated\": false,\n      \"operationId\": \"find pet by id\",\n      \"params\": {\n        \"id\": \"abcde\"\n      }\n    }\n  }\n]"
  },
  {
    "path": "src/data/iconsmdiv5.json",
    "content": "[\n  \"ab-testing\",\n  \"abjad-arabic\",\n  \"abjad-hebrew\",\n  \"abugida-devanagari\",\n  \"abugida-thai\",\n  \"access-point\",\n  \"access-point-network\",\n  \"access-point-network-off\",\n  \"account\",\n  \"account-alert\",\n  \"account-alert-outline\",\n  \"account-arrow-left\",\n  \"account-arrow-left-outline\",\n  \"account-arrow-right\",\n  \"account-arrow-right-outline\",\n  \"account-box\",\n  \"account-box-multiple\",\n  \"account-box-multiple-outline\",\n  \"account-box-outline\",\n  \"account-cancel\",\n  \"account-cancel-outline\",\n  \"account-cash\",\n  \"account-cash-outline\",\n  \"account-check\",\n  \"account-check-outline\",\n  \"account-child\",\n  \"account-child-circle\",\n  \"account-child-outline\",\n  \"account-circle\",\n  \"account-circle-outline\",\n  \"account-clock\",\n  \"account-clock-outline\",\n  \"account-cog\",\n  \"account-cog-outline\",\n  \"account-convert\",\n  \"account-convert-outline\",\n  \"account-cowboy-hat\",\n  \"account-details\",\n  \"account-details-outline\",\n  \"account-edit\",\n  \"account-edit-outline\",\n  \"account-group\",\n  \"account-group-outline\",\n  \"account-hard-hat\",\n  \"account-heart\",\n  \"account-heart-outline\",\n  \"account-key\",\n  \"account-key-outline\",\n  \"account-lock\",\n  \"account-lock-outline\",\n  \"account-minus\",\n  \"account-minus-outline\",\n  \"account-multiple\",\n  \"account-multiple-check\",\n  \"account-multiple-check-outline\",\n  \"account-multiple-minus\",\n  \"account-multiple-minus-outline\",\n  \"account-multiple-outline\",\n  \"account-multiple-plus\",\n  \"account-multiple-plus-outline\",\n  \"account-multiple-remove\",\n  \"account-multiple-remove-outline\",\n  \"account-music\",\n  \"account-music-outline\",\n  \"account-network\",\n  \"account-network-outline\",\n  \"account-off\",\n  \"account-off-outline\",\n  \"account-outline\",\n  \"account-plus\",\n  \"account-plus-outline\",\n  \"account-question\",\n  \"account-question-outline\",\n  \"account-remove\",\n  \"account-remove-outline\",\n  \"account-search\",\n  \"account-search-outline\",\n  \"account-settings\",\n  \"account-settings-outline\",\n  \"account-star\",\n  \"account-star-outline\",\n  \"account-supervisor\",\n  \"account-supervisor-circle\",\n  \"account-supervisor-outline\",\n  \"account-switch\",\n  \"account-switch-outline\",\n  \"account-tie\",\n  \"account-tie-outline\",\n  \"account-tie-voice\",\n  \"account-tie-voice-off\",\n  \"account-tie-voice-off-outline\",\n  \"account-tie-voice-outline\",\n  \"account-voice\",\n  \"adjust\",\n  \"adobe\",\n  \"adobe-acrobat\",\n  \"air-conditioner\",\n  \"air-filter\",\n  \"air-horn\",\n  \"air-humidifier\",\n  \"air-purifier\",\n  \"airbag\",\n  \"airballoon\",\n  \"airballoon-outline\",\n  \"airplane\",\n  \"airplane-landing\",\n  \"airplane-off\",\n  \"airplane-takeoff\",\n  \"airport\",\n  \"alarm\",\n  \"alarm-bell\",\n  \"alarm-check\",\n  \"alarm-light\",\n  \"alarm-light-outline\",\n  \"alarm-multiple\",\n  \"alarm-note\",\n  \"alarm-note-off\",\n  \"alarm-off\",\n  \"alarm-plus\",\n  \"alarm-snooze\",\n  \"album\",\n  \"alert\",\n  \"alert-box\",\n  \"alert-box-outline\",\n  \"alert-circle\",\n  \"alert-circle-check\",\n  \"alert-circle-check-outline\",\n  \"alert-circle-outline\",\n  \"alert-decagram\",\n  \"alert-decagram-outline\",\n  \"alert-octagon\",\n  \"alert-octagon-outline\",\n  \"alert-octagram\",\n  \"alert-octagram-outline\",\n  \"alert-outline\",\n  \"alert-rhombus\",\n  \"alert-rhombus-outline\",\n  \"alien\",\n  \"alien-outline\",\n  \"align-horizontal-center\",\n  \"align-horizontal-left\",\n  \"align-horizontal-right\",\n  \"align-vertical-bottom\",\n  \"align-vertical-center\",\n  \"align-vertical-top\",\n  \"all-inclusive\",\n  \"allergy\",\n  \"alpha\",\n  \"alpha-a\",\n  \"alpha-a-box\",\n  \"alpha-a-box-outline\",\n  \"alpha-a-circle\",\n  \"alpha-a-circle-outline\",\n  \"alpha-b\",\n  \"alpha-b-box\",\n  \"alpha-b-box-outline\",\n  \"alpha-b-circle\",\n  \"alpha-b-circle-outline\",\n  \"alpha-c\",\n  \"alpha-c-box\",\n  \"alpha-c-box-outline\",\n  \"alpha-c-circle\",\n  \"alpha-c-circle-outline\",\n  \"alpha-d\",\n  \"alpha-d-box\",\n  \"alpha-d-box-outline\",\n  \"alpha-d-circle\",\n  \"alpha-d-circle-outline\",\n  \"alpha-e\",\n  \"alpha-e-box\",\n  \"alpha-e-box-outline\",\n  \"alpha-e-circle\",\n  \"alpha-e-circle-outline\",\n  \"alpha-f\",\n  \"alpha-f-box\",\n  \"alpha-f-box-outline\",\n  \"alpha-f-circle\",\n  \"alpha-f-circle-outline\",\n  \"alpha-g\",\n  \"alpha-g-box\",\n  \"alpha-g-box-outline\",\n  \"alpha-g-circle\",\n  \"alpha-g-circle-outline\",\n  \"alpha-h\",\n  \"alpha-h-box\",\n  \"alpha-h-box-outline\",\n  \"alpha-h-circle\",\n  \"alpha-h-circle-outline\",\n  \"alpha-i\",\n  \"alpha-i-box\",\n  \"alpha-i-box-outline\",\n  \"alpha-i-circle\",\n  \"alpha-i-circle-outline\",\n  \"alpha-j\",\n  \"alpha-j-box\",\n  \"alpha-j-box-outline\",\n  \"alpha-j-circle\",\n  \"alpha-j-circle-outline\",\n  \"alpha-k\",\n  \"alpha-k-box\",\n  \"alpha-k-box-outline\",\n  \"alpha-k-circle\",\n  \"alpha-k-circle-outline\",\n  \"alpha-l\",\n  \"alpha-l-box\",\n  \"alpha-l-box-outline\",\n  \"alpha-l-circle\",\n  \"alpha-l-circle-outline\",\n  \"alpha-m\",\n  \"alpha-m-box\",\n  \"alpha-m-box-outline\",\n  \"alpha-m-circle\",\n  \"alpha-m-circle-outline\",\n  \"alpha-n\",\n  \"alpha-n-box\",\n  \"alpha-n-box-outline\",\n  \"alpha-n-circle\",\n  \"alpha-n-circle-outline\",\n  \"alpha-o\",\n  \"alpha-o-box\",\n  \"alpha-o-box-outline\",\n  \"alpha-o-circle\",\n  \"alpha-o-circle-outline\",\n  \"alpha-p\",\n  \"alpha-p-box\",\n  \"alpha-p-box-outline\",\n  \"alpha-p-circle\",\n  \"alpha-p-circle-outline\",\n  \"alpha-q\",\n  \"alpha-q-box\",\n  \"alpha-q-box-outline\",\n  \"alpha-q-circle\",\n  \"alpha-q-circle-outline\",\n  \"alpha-r\",\n  \"alpha-r-box\",\n  \"alpha-r-box-outline\",\n  \"alpha-r-circle\",\n  \"alpha-r-circle-outline\",\n  \"alpha-s\",\n  \"alpha-s-box\",\n  \"alpha-s-box-outline\",\n  \"alpha-s-circle\",\n  \"alpha-s-circle-outline\",\n  \"alpha-t\",\n  \"alpha-t-box\",\n  \"alpha-t-box-outline\",\n  \"alpha-t-circle\",\n  \"alpha-t-circle-outline\",\n  \"alpha-u\",\n  \"alpha-u-box\",\n  \"alpha-u-box-outline\",\n  \"alpha-u-circle\",\n  \"alpha-u-circle-outline\",\n  \"alpha-v\",\n  \"alpha-v-box\",\n  \"alpha-v-box-outline\",\n  \"alpha-v-circle\",\n  \"alpha-v-circle-outline\",\n  \"alpha-w\",\n  \"alpha-w-box\",\n  \"alpha-w-box-outline\",\n  \"alpha-w-circle\",\n  \"alpha-w-circle-outline\",\n  \"alpha-x\",\n  \"alpha-x-box\",\n  \"alpha-x-box-outline\",\n  \"alpha-x-circle\",\n  \"alpha-x-circle-outline\",\n  \"alpha-y\",\n  \"alpha-y-box\",\n  \"alpha-y-box-outline\",\n  \"alpha-y-circle\",\n  \"alpha-y-circle-outline\",\n  \"alpha-z\",\n  \"alpha-z-box\",\n  \"alpha-z-box-outline\",\n  \"alpha-z-circle\",\n  \"alpha-z-circle-outline\",\n  \"alphabet-aurebesh\",\n  \"alphabet-cyrillic\",\n  \"alphabet-greek\",\n  \"alphabet-latin\",\n  \"alphabet-piqad\",\n  \"alphabet-tengwar\",\n  \"alphabetical\",\n  \"alphabetical-off\",\n  \"alphabetical-variant\",\n  \"alphabetical-variant-off\",\n  \"altimeter\",\n  \"amazon\",\n  \"amazon-alexa\",\n  \"ambulance\",\n  \"ammunition\",\n  \"ampersand\",\n  \"amplifier\",\n  \"amplifier-off\",\n  \"anchor\",\n  \"android\",\n  \"android-auto\",\n  \"android-debug-bridge\",\n  \"android-messages\",\n  \"android-studio\",\n  \"angle-acute\",\n  \"angle-obtuse\",\n  \"angle-right\",\n  \"angular\",\n  \"angularjs\",\n  \"animation\",\n  \"animation-outline\",\n  \"animation-play\",\n  \"animation-play-outline\",\n  \"ansible\",\n  \"antenna\",\n  \"anvil\",\n  \"apache-kafka\",\n  \"api\",\n  \"api-off\",\n  \"apple\",\n  \"apple-airplay\",\n  \"apple-finder\",\n  \"apple-icloud\",\n  \"apple-ios\",\n  \"apple-keyboard-caps\",\n  \"apple-keyboard-command\",\n  \"apple-keyboard-control\",\n  \"apple-keyboard-option\",\n  \"apple-keyboard-shift\",\n  \"apple-safari\",\n  \"application\",\n  \"application-export\",\n  \"application-import\",\n  \"approximately-equal\",\n  \"approximately-equal-box\",\n  \"apps\",\n  \"apps-box\",\n  \"arch\",\n  \"archive\",\n  \"archive-arrow-down\",\n  \"archive-arrow-down-outline\",\n  \"archive-arrow-up\",\n  \"archive-arrow-up-outline\",\n  \"archive-outline\",\n  \"arm-flex\",\n  \"arm-flex-outline\",\n  \"arrange-bring-forward\",\n  \"arrange-bring-to-front\",\n  \"arrange-send-backward\",\n  \"arrange-send-to-back\",\n  \"arrow-all\",\n  \"arrow-bottom-left\",\n  \"arrow-bottom-left-bold-outline\",\n  \"arrow-bottom-left-thick\",\n  \"arrow-bottom-right\",\n  \"arrow-bottom-right-bold-outline\",\n  \"arrow-bottom-right-thick\",\n  \"arrow-collapse\",\n  \"arrow-collapse-all\",\n  \"arrow-collapse-down\",\n  \"arrow-collapse-horizontal\",\n  \"arrow-collapse-left\",\n  \"arrow-collapse-right\",\n  \"arrow-collapse-up\",\n  \"arrow-collapse-vertical\",\n  \"arrow-decision\",\n  \"arrow-decision-auto\",\n  \"arrow-decision-auto-outline\",\n  \"arrow-decision-outline\",\n  \"arrow-down\",\n  \"arrow-down-bold\",\n  \"arrow-down-bold-box\",\n  \"arrow-down-bold-box-outline\",\n  \"arrow-down-bold-circle\",\n  \"arrow-down-bold-circle-outline\",\n  \"arrow-down-bold-hexagon-outline\",\n  \"arrow-down-bold-outline\",\n  \"arrow-down-box\",\n  \"arrow-down-circle\",\n  \"arrow-down-circle-outline\",\n  \"arrow-down-drop-circle\",\n  \"arrow-down-drop-circle-outline\",\n  \"arrow-down-thick\",\n  \"arrow-expand\",\n  \"arrow-expand-all\",\n  \"arrow-expand-down\",\n  \"arrow-expand-horizontal\",\n  \"arrow-expand-left\",\n  \"arrow-expand-right\",\n  \"arrow-expand-up\",\n  \"arrow-expand-vertical\",\n  \"arrow-horizontal-lock\",\n  \"arrow-left\",\n  \"arrow-left-bold\",\n  \"arrow-left-bold-box\",\n  \"arrow-left-bold-box-outline\",\n  \"arrow-left-bold-circle\",\n  \"arrow-left-bold-circle-outline\",\n  \"arrow-left-bold-hexagon-outline\",\n  \"arrow-left-bold-outline\",\n  \"arrow-left-box\",\n  \"arrow-left-circle\",\n  \"arrow-left-circle-outline\",\n  \"arrow-left-drop-circle\",\n  \"arrow-left-drop-circle-outline\",\n  \"arrow-left-right\",\n  \"arrow-left-right-bold\",\n  \"arrow-left-right-bold-outline\",\n  \"arrow-left-thick\",\n  \"arrow-right\",\n  \"arrow-right-bold\",\n  \"arrow-right-bold-box\",\n  \"arrow-right-bold-box-outline\",\n  \"arrow-right-bold-circle\",\n  \"arrow-right-bold-circle-outline\",\n  \"arrow-right-bold-hexagon-outline\",\n  \"arrow-right-bold-outline\",\n  \"arrow-right-box\",\n  \"arrow-right-circle\",\n  \"arrow-right-circle-outline\",\n  \"arrow-right-drop-circle\",\n  \"arrow-right-drop-circle-outline\",\n  \"arrow-right-thick\",\n  \"arrow-split-horizontal\",\n  \"arrow-split-vertical\",\n  \"arrow-top-left\",\n  \"arrow-top-left-bold-outline\",\n  \"arrow-top-left-bottom-right\",\n  \"arrow-top-left-bottom-right-bold\",\n  \"arrow-top-left-thick\",\n  \"arrow-top-right\",\n  \"arrow-top-right-bold-outline\",\n  \"arrow-top-right-bottom-left\",\n  \"arrow-top-right-bottom-left-bold\",\n  \"arrow-top-right-thick\",\n  \"arrow-up\",\n  \"arrow-up-bold\",\n  \"arrow-up-bold-box\",\n  \"arrow-up-bold-box-outline\",\n  \"arrow-up-bold-circle\",\n  \"arrow-up-bold-circle-outline\",\n  \"arrow-up-bold-hexagon-outline\",\n  \"arrow-up-bold-outline\",\n  \"arrow-up-box\",\n  \"arrow-up-circle\",\n  \"arrow-up-circle-outline\",\n  \"arrow-up-down\",\n  \"arrow-up-down-bold\",\n  \"arrow-up-down-bold-outline\",\n  \"arrow-up-drop-circle\",\n  \"arrow-up-drop-circle-outline\",\n  \"arrow-up-thick\",\n  \"arrow-vertical-lock\",\n  \"artstation\",\n  \"aspect-ratio\",\n  \"assistant\",\n  \"asterisk\",\n  \"at\",\n  \"atlassian\",\n  \"atm\",\n  \"atom\",\n  \"atom-variant\",\n  \"attachment\",\n  \"audio-video\",\n  \"audio-video-off\",\n  \"augmented-reality\",\n  \"auto-download\",\n  \"auto-fix\",\n  \"auto-upload\",\n  \"autorenew\",\n  \"av-timer\",\n  \"aws\",\n  \"axe\",\n  \"axis\",\n  \"axis-arrow\",\n  \"axis-arrow-lock\",\n  \"axis-lock\",\n  \"axis-x-arrow\",\n  \"axis-x-arrow-lock\",\n  \"axis-x-rotate-clockwise\",\n  \"axis-x-rotate-counterclockwise\",\n  \"axis-x-y-arrow-lock\",\n  \"axis-y-arrow\",\n  \"axis-y-arrow-lock\",\n  \"axis-y-rotate-clockwise\",\n  \"axis-y-rotate-counterclockwise\",\n  \"axis-z-arrow\",\n  \"axis-z-arrow-lock\",\n  \"axis-z-rotate-clockwise\",\n  \"axis-z-rotate-counterclockwise\",\n  \"babel\",\n  \"baby\",\n  \"baby-bottle\",\n  \"baby-bottle-outline\",\n  \"baby-carriage\",\n  \"baby-carriage-off\",\n  \"baby-face\",\n  \"baby-face-outline\",\n  \"backburger\",\n  \"backspace\",\n  \"backspace-outline\",\n  \"backspace-reverse\",\n  \"backspace-reverse-outline\",\n  \"backup-restore\",\n  \"bacteria\",\n  \"bacteria-outline\",\n  \"badge-account\",\n  \"badge-account-alert\",\n  \"badge-account-alert-outline\",\n  \"badge-account-horizontal\",\n  \"badge-account-horizontal-outline\",\n  \"badge-account-outline\",\n  \"badminton\",\n  \"bag-carry-on\",\n  \"bag-carry-on-check\",\n  \"bag-carry-on-off\",\n  \"bag-checked\",\n  \"bag-personal\",\n  \"bag-personal-off\",\n  \"bag-personal-off-outline\",\n  \"bag-personal-outline\",\n  \"baguette\",\n  \"balloon\",\n  \"ballot\",\n  \"ballot-outline\",\n  \"ballot-recount\",\n  \"ballot-recount-outline\",\n  \"bandage\",\n  \"bandcamp\",\n  \"bank\",\n  \"bank-minus\",\n  \"bank-outline\",\n  \"bank-plus\",\n  \"bank-remove\",\n  \"bank-transfer\",\n  \"bank-transfer-in\",\n  \"bank-transfer-out\",\n  \"barcode\",\n  \"barcode-off\",\n  \"barcode-scan\",\n  \"barley\",\n  \"barley-off\",\n  \"barn\",\n  \"barrel\",\n  \"baseball\",\n  \"baseball-bat\",\n  \"bash\",\n  \"basket\",\n  \"basket-fill\",\n  \"basket-outline\",\n  \"basket-unfill\",\n  \"basketball\",\n  \"basketball-hoop\",\n  \"basketball-hoop-outline\",\n  \"bat\",\n  \"battery\",\n  \"battery-10\",\n  \"battery-10-bluetooth\",\n  \"battery-20\",\n  \"battery-20-bluetooth\",\n  \"battery-30\",\n  \"battery-30-bluetooth\",\n  \"battery-40\",\n  \"battery-40-bluetooth\",\n  \"battery-50\",\n  \"battery-50-bluetooth\",\n  \"battery-60\",\n  \"battery-60-bluetooth\",\n  \"battery-70\",\n  \"battery-70-bluetooth\",\n  \"battery-80\",\n  \"battery-80-bluetooth\",\n  \"battery-90\",\n  \"battery-90-bluetooth\",\n  \"battery-alert\",\n  \"battery-alert-bluetooth\",\n  \"battery-alert-variant\",\n  \"battery-alert-variant-outline\",\n  \"battery-bluetooth\",\n  \"battery-bluetooth-variant\",\n  \"battery-charging\",\n  \"battery-charging-10\",\n  \"battery-charging-100\",\n  \"battery-charging-20\",\n  \"battery-charging-30\",\n  \"battery-charging-40\",\n  \"battery-charging-50\",\n  \"battery-charging-60\",\n  \"battery-charging-70\",\n  \"battery-charging-80\",\n  \"battery-charging-90\",\n  \"battery-charging-high\",\n  \"battery-charging-low\",\n  \"battery-charging-medium\",\n  \"battery-charging-outline\",\n  \"battery-charging-wireless\",\n  \"battery-charging-wireless-10\",\n  \"battery-charging-wireless-20\",\n  \"battery-charging-wireless-30\",\n  \"battery-charging-wireless-40\",\n  \"battery-charging-wireless-50\",\n  \"battery-charging-wireless-60\",\n  \"battery-charging-wireless-70\",\n  \"battery-charging-wireless-80\",\n  \"battery-charging-wireless-90\",\n  \"battery-charging-wireless-alert\",\n  \"battery-charging-wireless-outline\",\n  \"battery-heart\",\n  \"battery-heart-outline\",\n  \"battery-heart-variant\",\n  \"battery-high\",\n  \"battery-low\",\n  \"battery-medium\",\n  \"battery-minus\",\n  \"battery-negative\",\n  \"battery-off\",\n  \"battery-off-outline\",\n  \"battery-outline\",\n  \"battery-plus\",\n  \"battery-positive\",\n  \"battery-unknown\",\n  \"battery-unknown-bluetooth\",\n  \"battlenet\",\n  \"beach\",\n  \"beaker\",\n  \"beaker-alert\",\n  \"beaker-alert-outline\",\n  \"beaker-check\",\n  \"beaker-check-outline\",\n  \"beaker-minus\",\n  \"beaker-minus-outline\",\n  \"beaker-outline\",\n  \"beaker-plus\",\n  \"beaker-plus-outline\",\n  \"beaker-question\",\n  \"beaker-question-outline\",\n  \"beaker-remove\",\n  \"beaker-remove-outline\",\n  \"bed\",\n  \"bed-double\",\n  \"bed-double-outline\",\n  \"bed-empty\",\n  \"bed-king\",\n  \"bed-king-outline\",\n  \"bed-outline\",\n  \"bed-queen\",\n  \"bed-queen-outline\",\n  \"bed-single\",\n  \"bed-single-outline\",\n  \"bee\",\n  \"bee-flower\",\n  \"beehive-outline\",\n  \"beer\",\n  \"beer-outline\",\n  \"bell\",\n  \"bell-alert\",\n  \"bell-alert-outline\",\n  \"bell-check\",\n  \"bell-check-outline\",\n  \"bell-circle\",\n  \"bell-circle-outline\",\n  \"bell-off\",\n  \"bell-off-outline\",\n  \"bell-outline\",\n  \"bell-plus\",\n  \"bell-plus-outline\",\n  \"bell-ring\",\n  \"bell-ring-outline\",\n  \"bell-sleep\",\n  \"bell-sleep-outline\",\n  \"beta\",\n  \"betamax\",\n  \"biathlon\",\n  \"bicycle\",\n  \"bicycle-basket\",\n  \"bike\",\n  \"bike-fast\",\n  \"billboard\",\n  \"billiards\",\n  \"billiards-rack\",\n  \"binoculars\",\n  \"bio\",\n  \"biohazard\",\n  \"bitbucket\",\n  \"bitcoin\",\n  \"black-mesa\",\n  \"blender\",\n  \"blender-software\",\n  \"blinds\",\n  \"blinds-open\",\n  \"block-helper\",\n  \"blogger\",\n  \"blood-bag\",\n  \"bluetooth\",\n  \"bluetooth-audio\",\n  \"bluetooth-connect\",\n  \"bluetooth-off\",\n  \"bluetooth-settings\",\n  \"bluetooth-transfer\",\n  \"blur\",\n  \"blur-linear\",\n  \"blur-off\",\n  \"blur-radial\",\n  \"bolnisi-cross\",\n  \"bolt\",\n  \"bomb\",\n  \"bomb-off\",\n  \"bone\",\n  \"book\",\n  \"book-account\",\n  \"book-account-outline\",\n  \"book-alphabet\",\n  \"book-cross\",\n  \"book-information-variant\",\n  \"book-lock\",\n  \"book-lock-open\",\n  \"book-minus\",\n  \"book-minus-multiple\",\n  \"book-minus-multiple-outline\",\n  \"book-multiple\",\n  \"book-multiple-outline\",\n  \"book-music\",\n  \"book-open\",\n  \"book-open-outline\",\n  \"book-open-page-variant\",\n  \"book-open-variant\",\n  \"book-outline\",\n  \"book-play\",\n  \"book-play-outline\",\n  \"book-plus\",\n  \"book-plus-multiple\",\n  \"book-plus-multiple-outline\",\n  \"book-remove\",\n  \"book-remove-multiple\",\n  \"book-remove-multiple-outline\",\n  \"book-search\",\n  \"book-search-outline\",\n  \"book-variant\",\n  \"book-variant-multiple\",\n  \"bookmark\",\n  \"bookmark-check\",\n  \"bookmark-check-outline\",\n  \"bookmark-minus\",\n  \"bookmark-minus-outline\",\n  \"bookmark-multiple\",\n  \"bookmark-multiple-outline\",\n  \"bookmark-music\",\n  \"bookmark-music-outline\",\n  \"bookmark-off\",\n  \"bookmark-off-outline\",\n  \"bookmark-outline\",\n  \"bookmark-plus\",\n  \"bookmark-plus-outline\",\n  \"bookmark-remove\",\n  \"bookmark-remove-outline\",\n  \"bookshelf\",\n  \"boom-gate\",\n  \"boom-gate-alert\",\n  \"boom-gate-alert-outline\",\n  \"boom-gate-down\",\n  \"boom-gate-down-outline\",\n  \"boom-gate-outline\",\n  \"boom-gate-up\",\n  \"boom-gate-up-outline\",\n  \"boombox\",\n  \"boomerang\",\n  \"bootstrap\",\n  \"border-all\",\n  \"border-all-variant\",\n  \"border-bottom\",\n  \"border-bottom-variant\",\n  \"border-color\",\n  \"border-horizontal\",\n  \"border-inside\",\n  \"border-left\",\n  \"border-left-variant\",\n  \"border-none\",\n  \"border-none-variant\",\n  \"border-outside\",\n  \"border-right\",\n  \"border-right-variant\",\n  \"border-style\",\n  \"border-top\",\n  \"border-top-variant\",\n  \"border-vertical\",\n  \"bottle-soda\",\n  \"bottle-soda-classic\",\n  \"bottle-soda-classic-outline\",\n  \"bottle-soda-outline\",\n  \"bottle-tonic\",\n  \"bottle-tonic-outline\",\n  \"bottle-tonic-plus\",\n  \"bottle-tonic-plus-outline\",\n  \"bottle-tonic-skull\",\n  \"bottle-tonic-skull-outline\",\n  \"bottle-wine\",\n  \"bottle-wine-outline\",\n  \"bow-tie\",\n  \"bowl\",\n  \"bowl-mix\",\n  \"bowl-mix-outline\",\n  \"bowl-outline\",\n  \"bowling\",\n  \"box\",\n  \"box-cutter\",\n  \"box-cutter-off\",\n  \"box-shadow\",\n  \"boxing-glove\",\n  \"braille\",\n  \"brain\",\n  \"bread-slice\",\n  \"bread-slice-outline\",\n  \"bridge\",\n  \"briefcase\",\n  \"briefcase-account\",\n  \"briefcase-account-outline\",\n  \"briefcase-check\",\n  \"briefcase-check-outline\",\n  \"briefcase-clock\",\n  \"briefcase-clock-outline\",\n  \"briefcase-download\",\n  \"briefcase-download-outline\",\n  \"briefcase-edit\",\n  \"briefcase-edit-outline\",\n  \"briefcase-minus\",\n  \"briefcase-minus-outline\",\n  \"briefcase-outline\",\n  \"briefcase-plus\",\n  \"briefcase-plus-outline\",\n  \"briefcase-remove\",\n  \"briefcase-remove-outline\",\n  \"briefcase-search\",\n  \"briefcase-search-outline\",\n  \"briefcase-upload\",\n  \"briefcase-upload-outline\",\n  \"brightness-1\",\n  \"brightness-2\",\n  \"brightness-3\",\n  \"brightness-4\",\n  \"brightness-5\",\n  \"brightness-6\",\n  \"brightness-7\",\n  \"brightness-auto\",\n  \"brightness-percent\",\n  \"broom\",\n  \"brush\",\n  \"buddhism\",\n  \"buffer\",\n  \"buffet\",\n  \"bug\",\n  \"bug-check\",\n  \"bug-check-outline\",\n  \"bug-outline\",\n  \"bugle\",\n  \"bulldozer\",\n  \"bullet\",\n  \"bulletin-board\",\n  \"bullhorn\",\n  \"bullhorn-outline\",\n  \"bullseye\",\n  \"bullseye-arrow\",\n  \"bulma\",\n  \"bunk-bed\",\n  \"bunk-bed-outline\",\n  \"bus\",\n  \"bus-alert\",\n  \"bus-articulated-end\",\n  \"bus-articulated-front\",\n  \"bus-clock\",\n  \"bus-double-decker\",\n  \"bus-marker\",\n  \"bus-multiple\",\n  \"bus-school\",\n  \"bus-side\",\n  \"bus-stop\",\n  \"bus-stop-covered\",\n  \"bus-stop-uncovered\",\n  \"cable-data\",\n  \"cached\",\n  \"cactus\",\n  \"cake\",\n  \"cake-layered\",\n  \"cake-variant\",\n  \"calculator\",\n  \"calculator-variant\",\n  \"calendar\",\n  \"calendar-account\",\n  \"calendar-account-outline\",\n  \"calendar-alert\",\n  \"calendar-arrow-left\",\n  \"calendar-arrow-right\",\n  \"calendar-blank\",\n  \"calendar-blank-multiple\",\n  \"calendar-blank-outline\",\n  \"calendar-check\",\n  \"calendar-check-outline\",\n  \"calendar-clock\",\n  \"calendar-edit\",\n  \"calendar-export\",\n  \"calendar-heart\",\n  \"calendar-import\",\n  \"calendar-minus\",\n  \"calendar-month\",\n  \"calendar-month-outline\",\n  \"calendar-multiple\",\n  \"calendar-multiple-check\",\n  \"calendar-multiselect\",\n  \"calendar-outline\",\n  \"calendar-plus\",\n  \"calendar-question\",\n  \"calendar-range\",\n  \"calendar-range-outline\",\n  \"calendar-refresh\",\n  \"calendar-refresh-outline\",\n  \"calendar-remove\",\n  \"calendar-remove-outline\",\n  \"calendar-search\",\n  \"calendar-star\",\n  \"calendar-sync\",\n  \"calendar-sync-outline\",\n  \"calendar-text\",\n  \"calendar-text-outline\",\n  \"calendar-today\",\n  \"calendar-week\",\n  \"calendar-week-begin\",\n  \"calendar-weekend\",\n  \"calendar-weekend-outline\",\n  \"call-made\",\n  \"call-merge\",\n  \"call-missed\",\n  \"call-received\",\n  \"call-split\",\n  \"camcorder\",\n  \"camcorder-off\",\n  \"camera\",\n  \"camera-account\",\n  \"camera-burst\",\n  \"camera-control\",\n  \"camera-enhance\",\n  \"camera-enhance-outline\",\n  \"camera-front\",\n  \"camera-front-variant\",\n  \"camera-gopro\",\n  \"camera-image\",\n  \"camera-iris\",\n  \"camera-metering-center\",\n  \"camera-metering-matrix\",\n  \"camera-metering-partial\",\n  \"camera-metering-spot\",\n  \"camera-off\",\n  \"camera-outline\",\n  \"camera-party-mode\",\n  \"camera-plus\",\n  \"camera-plus-outline\",\n  \"camera-rear\",\n  \"camera-rear-variant\",\n  \"camera-retake\",\n  \"camera-retake-outline\",\n  \"camera-switch\",\n  \"camera-switch-outline\",\n  \"camera-timer\",\n  \"camera-wireless\",\n  \"camera-wireless-outline\",\n  \"campfire\",\n  \"cancel\",\n  \"candle\",\n  \"candycane\",\n  \"cannabis\",\n  \"caps-lock\",\n  \"car\",\n  \"car-2-plus\",\n  \"car-3-plus\",\n  \"car-arrow-left\",\n  \"car-arrow-right\",\n  \"car-back\",\n  \"car-battery\",\n  \"car-brake-abs\",\n  \"car-brake-alert\",\n  \"car-brake-hold\",\n  \"car-brake-parking\",\n  \"car-brake-retarder\",\n  \"car-child-seat\",\n  \"car-clutch\",\n  \"car-connected\",\n  \"car-convertible\",\n  \"car-coolant-level\",\n  \"car-cruise-control\",\n  \"car-defrost-front\",\n  \"car-defrost-rear\",\n  \"car-door\",\n  \"car-door-lock\",\n  \"car-electric\",\n  \"car-esp\",\n  \"car-estate\",\n  \"car-hatchback\",\n  \"car-info\",\n  \"car-key\",\n  \"car-light-dimmed\",\n  \"car-light-fog\",\n  \"car-light-high\",\n  \"car-limousine\",\n  \"car-multiple\",\n  \"car-off\",\n  \"car-parking-lights\",\n  \"car-pickup\",\n  \"car-seat\",\n  \"car-seat-cooler\",\n  \"car-seat-heater\",\n  \"car-shift-pattern\",\n  \"car-side\",\n  \"car-sports\",\n  \"car-tire-alert\",\n  \"car-traction-control\",\n  \"car-turbocharger\",\n  \"car-wash\",\n  \"car-windshield\",\n  \"car-windshield-outline\",\n  \"caravan\",\n  \"card\",\n  \"card-account-details\",\n  \"card-account-details-outline\",\n  \"card-account-details-star\",\n  \"card-account-details-star-outline\",\n  \"card-account-mail\",\n  \"card-account-mail-outline\",\n  \"card-account-phone\",\n  \"card-account-phone-outline\",\n  \"card-bulleted\",\n  \"card-bulleted-off\",\n  \"card-bulleted-off-outline\",\n  \"card-bulleted-outline\",\n  \"card-bulleted-settings\",\n  \"card-bulleted-settings-outline\",\n  \"card-outline\",\n  \"card-plus\",\n  \"card-plus-outline\",\n  \"card-search\",\n  \"card-search-outline\",\n  \"card-text\",\n  \"card-text-outline\",\n  \"cards\",\n  \"cards-club\",\n  \"cards-diamond\",\n  \"cards-diamond-outline\",\n  \"cards-heart\",\n  \"cards-outline\",\n  \"cards-playing-outline\",\n  \"cards-spade\",\n  \"cards-variant\",\n  \"carrot\",\n  \"cart\",\n  \"cart-arrow-down\",\n  \"cart-arrow-right\",\n  \"cart-arrow-up\",\n  \"cart-minus\",\n  \"cart-off\",\n  \"cart-outline\",\n  \"cart-plus\",\n  \"cart-remove\",\n  \"case-sensitive-alt\",\n  \"cash\",\n  \"cash-100\",\n  \"cash-marker\",\n  \"cash-minus\",\n  \"cash-multiple\",\n  \"cash-plus\",\n  \"cash-refund\",\n  \"cash-register\",\n  \"cash-remove\",\n  \"cash-usd\",\n  \"cash-usd-outline\",\n  \"cassette\",\n  \"cast\",\n  \"cast-audio\",\n  \"cast-connected\",\n  \"cast-education\",\n  \"cast-off\",\n  \"castle\",\n  \"cat\",\n  \"cctv\",\n  \"ceiling-light\",\n  \"cellphone\",\n  \"cellphone-android\",\n  \"cellphone-arrow-down\",\n  \"cellphone-basic\",\n  \"cellphone-charging\",\n  \"cellphone-cog\",\n  \"cellphone-dock\",\n  \"cellphone-erase\",\n  \"cellphone-information\",\n  \"cellphone-iphone\",\n  \"cellphone-key\",\n  \"cellphone-link\",\n  \"cellphone-link-off\",\n  \"cellphone-lock\",\n  \"cellphone-message\",\n  \"cellphone-message-off\",\n  \"cellphone-nfc\",\n  \"cellphone-nfc-off\",\n  \"cellphone-off\",\n  \"cellphone-play\",\n  \"cellphone-screenshot\",\n  \"cellphone-settings\",\n  \"cellphone-sound\",\n  \"cellphone-text\",\n  \"cellphone-wireless\",\n  \"celtic-cross\",\n  \"centos\",\n  \"certificate\",\n  \"certificate-outline\",\n  \"chair-rolling\",\n  \"chair-school\",\n  \"charity\",\n  \"chart-arc\",\n  \"chart-areaspline\",\n  \"chart-areaspline-variant\",\n  \"chart-bar\",\n  \"chart-bar-stacked\",\n  \"chart-bell-curve\",\n  \"chart-bell-curve-cumulative\",\n  \"chart-bubble\",\n  \"chart-donut\",\n  \"chart-donut-variant\",\n  \"chart-gantt\",\n  \"chart-histogram\",\n  \"chart-line\",\n  \"chart-line-stacked\",\n  \"chart-line-variant\",\n  \"chart-multiline\",\n  \"chart-multiple\",\n  \"chart-pie\",\n  \"chart-ppf\",\n  \"chart-sankey\",\n  \"chart-sankey-variant\",\n  \"chart-scatter-plot\",\n  \"chart-scatter-plot-hexbin\",\n  \"chart-timeline\",\n  \"chart-timeline-variant\",\n  \"chart-tree\",\n  \"chat\",\n  \"chat-alert\",\n  \"chat-alert-outline\",\n  \"chat-outline\",\n  \"chat-processing\",\n  \"chat-processing-outline\",\n  \"chat-sleep\",\n  \"chat-sleep-outline\",\n  \"check\",\n  \"check-all\",\n  \"check-bold\",\n  \"check-box-multiple-outline\",\n  \"check-box-outline\",\n  \"check-circle\",\n  \"check-circle-outline\",\n  \"check-decagram\",\n  \"check-network\",\n  \"check-network-outline\",\n  \"check-outline\",\n  \"check-underline\",\n  \"check-underline-circle\",\n  \"check-underline-circle-outline\",\n  \"checkbook\",\n  \"checkbox-blank\",\n  \"checkbox-blank-circle\",\n  \"checkbox-blank-circle-outline\",\n  \"checkbox-blank-off\",\n  \"checkbox-blank-off-outline\",\n  \"checkbox-blank-outline\",\n  \"checkbox-intermediate\",\n  \"checkbox-marked\",\n  \"checkbox-marked-circle\",\n  \"checkbox-marked-circle-outline\",\n  \"checkbox-marked-outline\",\n  \"checkbox-multiple-blank\",\n  \"checkbox-multiple-blank-circle\",\n  \"checkbox-multiple-blank-circle-outline\",\n  \"checkbox-multiple-blank-outline\",\n  \"checkbox-multiple-marked\",\n  \"checkbox-multiple-marked-circle\",\n  \"checkbox-multiple-marked-circle-outline\",\n  \"checkbox-multiple-marked-outline\",\n  \"checkerboard\",\n  \"checkerboard-minus\",\n  \"checkerboard-plus\",\n  \"checkerboard-remove\",\n  \"cheese\",\n  \"chef-hat\",\n  \"chemical-weapon\",\n  \"chess-bishop\",\n  \"chess-king\",\n  \"chess-knight\",\n  \"chess-pawn\",\n  \"chess-queen\",\n  \"chess-rook\",\n  \"chevron-double-down\",\n  \"chevron-double-left\",\n  \"chevron-double-right\",\n  \"chevron-double-up\",\n  \"chevron-down\",\n  \"chevron-down-box\",\n  \"chevron-down-box-outline\",\n  \"chevron-down-circle\",\n  \"chevron-down-circle-outline\",\n  \"chevron-left\",\n  \"chevron-left-box\",\n  \"chevron-left-box-outline\",\n  \"chevron-left-circle\",\n  \"chevron-left-circle-outline\",\n  \"chevron-right\",\n  \"chevron-right-box\",\n  \"chevron-right-box-outline\",\n  \"chevron-right-circle\",\n  \"chevron-right-circle-outline\",\n  \"chevron-triple-down\",\n  \"chevron-triple-left\",\n  \"chevron-triple-right\",\n  \"chevron-triple-up\",\n  \"chevron-up\",\n  \"chevron-up-box\",\n  \"chevron-up-box-outline\",\n  \"chevron-up-circle\",\n  \"chevron-up-circle-outline\",\n  \"chili-hot\",\n  \"chili-medium\",\n  \"chili-mild\",\n  \"chip\",\n  \"christianity\",\n  \"christianity-outline\",\n  \"church\",\n  \"cigar\",\n  \"circle\",\n  \"circle-double\",\n  \"circle-edit-outline\",\n  \"circle-expand\",\n  \"circle-half\",\n  \"circle-half-full\",\n  \"circle-medium\",\n  \"circle-multiple\",\n  \"circle-multiple-outline\",\n  \"circle-off-outline\",\n  \"circle-outline\",\n  \"circle-slice-1\",\n  \"circle-slice-2\",\n  \"circle-slice-3\",\n  \"circle-slice-4\",\n  \"circle-slice-5\",\n  \"circle-slice-6\",\n  \"circle-slice-7\",\n  \"circle-slice-8\",\n  \"circle-small\",\n  \"circular-saw\",\n  \"city\",\n  \"city-variant\",\n  \"city-variant-outline\",\n  \"clipboard\",\n  \"clipboard-account\",\n  \"clipboard-account-outline\",\n  \"clipboard-alert\",\n  \"clipboard-alert-outline\",\n  \"clipboard-arrow-down\",\n  \"clipboard-arrow-down-outline\",\n  \"clipboard-arrow-left\",\n  \"clipboard-arrow-left-outline\",\n  \"clipboard-arrow-right\",\n  \"clipboard-arrow-right-outline\",\n  \"clipboard-arrow-up\",\n  \"clipboard-arrow-up-outline\",\n  \"clipboard-check\",\n  \"clipboard-check-multiple\",\n  \"clipboard-check-multiple-outline\",\n  \"clipboard-check-outline\",\n  \"clipboard-file\",\n  \"clipboard-file-outline\",\n  \"clipboard-flow\",\n  \"clipboard-flow-outline\",\n  \"clipboard-list\",\n  \"clipboard-list-outline\",\n  \"clipboard-multiple\",\n  \"clipboard-multiple-outline\",\n  \"clipboard-outline\",\n  \"clipboard-play\",\n  \"clipboard-play-multiple\",\n  \"clipboard-play-multiple-outline\",\n  \"clipboard-play-outline\",\n  \"clipboard-plus\",\n  \"clipboard-plus-outline\",\n  \"clipboard-pulse\",\n  \"clipboard-pulse-outline\",\n  \"clipboard-text\",\n  \"clipboard-text-multiple\",\n  \"clipboard-text-multiple-outline\",\n  \"clipboard-text-outline\",\n  \"clipboard-text-play\",\n  \"clipboard-text-play-outline\",\n  \"clippy\",\n  \"clock\",\n  \"clock-alert\",\n  \"clock-alert-outline\",\n  \"clock-check\",\n  \"clock-check-outline\",\n  \"clock-digital\",\n  \"clock-end\",\n  \"clock-fast\",\n  \"clock-in\",\n  \"clock-out\",\n  \"clock-outline\",\n  \"clock-start\",\n  \"close\",\n  \"close-box\",\n  \"close-box-multiple\",\n  \"close-box-multiple-outline\",\n  \"close-box-outline\",\n  \"close-circle\",\n  \"close-circle-multiple\",\n  \"close-circle-multiple-outline\",\n  \"close-circle-outline\",\n  \"close-network\",\n  \"close-network-outline\",\n  \"close-octagon\",\n  \"close-octagon-outline\",\n  \"close-outline\",\n  \"close-thick\",\n  \"closed-caption\",\n  \"closed-caption-outline\",\n  \"cloud\",\n  \"cloud-alert\",\n  \"cloud-braces\",\n  \"cloud-check\",\n  \"cloud-check-outline\",\n  \"cloud-circle\",\n  \"cloud-download\",\n  \"cloud-download-outline\",\n  \"cloud-lock\",\n  \"cloud-lock-outline\",\n  \"cloud-off-outline\",\n  \"cloud-outline\",\n  \"cloud-print\",\n  \"cloud-print-outline\",\n  \"cloud-question\",\n  \"cloud-refresh\",\n  \"cloud-search\",\n  \"cloud-search-outline\",\n  \"cloud-sync\",\n  \"cloud-sync-outline\",\n  \"cloud-tags\",\n  \"cloud-upload\",\n  \"cloud-upload-outline\",\n  \"clover\",\n  \"coach-lamp\",\n  \"coat-rack\",\n  \"code-array\",\n  \"code-braces\",\n  \"code-braces-box\",\n  \"code-brackets\",\n  \"code-equal\",\n  \"code-greater-than\",\n  \"code-greater-than-or-equal\",\n  \"code-json\",\n  \"code-less-than\",\n  \"code-less-than-or-equal\",\n  \"code-not-equal\",\n  \"code-not-equal-variant\",\n  \"code-parentheses\",\n  \"code-parentheses-box\",\n  \"code-string\",\n  \"code-tags\",\n  \"code-tags-check\",\n  \"codepen\",\n  \"coffee\",\n  \"coffee-maker\",\n  \"coffee-off\",\n  \"coffee-off-outline\",\n  \"coffee-outline\",\n  \"coffee-to-go\",\n  \"coffee-to-go-outline\",\n  \"coffin\",\n  \"cog\",\n  \"cog-box\",\n  \"cog-clockwise\",\n  \"cog-counterclockwise\",\n  \"cog-outline\",\n  \"cog-transfer\",\n  \"cog-transfer-outline\",\n  \"cogs\",\n  \"collage\",\n  \"collapse-all\",\n  \"collapse-all-outline\",\n  \"color-helper\",\n  \"comma\",\n  \"comma-box\",\n  \"comma-box-outline\",\n  \"comma-circle\",\n  \"comma-circle-outline\",\n  \"comment\",\n  \"comment-account\",\n  \"comment-account-outline\",\n  \"comment-alert\",\n  \"comment-alert-outline\",\n  \"comment-arrow-left\",\n  \"comment-arrow-left-outline\",\n  \"comment-arrow-right\",\n  \"comment-arrow-right-outline\",\n  \"comment-check\",\n  \"comment-check-outline\",\n  \"comment-edit\",\n  \"comment-edit-outline\",\n  \"comment-eye\",\n  \"comment-eye-outline\",\n  \"comment-multiple\",\n  \"comment-multiple-outline\",\n  \"comment-outline\",\n  \"comment-plus\",\n  \"comment-plus-outline\",\n  \"comment-processing\",\n  \"comment-processing-outline\",\n  \"comment-question\",\n  \"comment-question-outline\",\n  \"comment-quote\",\n  \"comment-quote-outline\",\n  \"comment-remove\",\n  \"comment-remove-outline\",\n  \"comment-search\",\n  \"comment-search-outline\",\n  \"comment-text\",\n  \"comment-text-multiple\",\n  \"comment-text-multiple-outline\",\n  \"comment-text-outline\",\n  \"compare\",\n  \"compass\",\n  \"compass-off\",\n  \"compass-off-outline\",\n  \"compass-outline\",\n  \"compass-rose\",\n  \"concourse-ci\",\n  \"console\",\n  \"console-line\",\n  \"console-network\",\n  \"console-network-outline\",\n  \"consolidate\",\n  \"contactless-payment\",\n  \"contactless-payment-circle\",\n  \"contactless-payment-circle-outline\",\n  \"contacts\",\n  \"contacts-outline\",\n  \"contain\",\n  \"contain-end\",\n  \"contain-start\",\n  \"content-copy\",\n  \"content-cut\",\n  \"content-duplicate\",\n  \"content-paste\",\n  \"content-save\",\n  \"content-save-alert\",\n  \"content-save-alert-outline\",\n  \"content-save-all\",\n  \"content-save-all-outline\",\n  \"content-save-edit\",\n  \"content-save-edit-outline\",\n  \"content-save-move\",\n  \"content-save-move-outline\",\n  \"content-save-outline\",\n  \"content-save-settings\",\n  \"content-save-settings-outline\",\n  \"contrast\",\n  \"contrast-box\",\n  \"contrast-circle\",\n  \"controller-classic\",\n  \"controller-classic-outline\",\n  \"cookie\",\n  \"coolant-temperature\",\n  \"copyright\",\n  \"cordova\",\n  \"corn\",\n  \"counter\",\n  \"cow\",\n  \"cpu-32-bit\",\n  \"cpu-64-bit\",\n  \"crane\",\n  \"creation\",\n  \"creative-commons\",\n  \"credit-card\",\n  \"credit-card-clock\",\n  \"credit-card-clock-outline\",\n  \"credit-card-marker\",\n  \"credit-card-marker-outline\",\n  \"credit-card-minus\",\n  \"credit-card-minus-outline\",\n  \"credit-card-multiple\",\n  \"credit-card-multiple-outline\",\n  \"credit-card-off\",\n  \"credit-card-off-outline\",\n  \"credit-card-outline\",\n  \"credit-card-plus\",\n  \"credit-card-plus-outline\",\n  \"credit-card-refund\",\n  \"credit-card-refund-outline\",\n  \"credit-card-remove\",\n  \"credit-card-remove-outline\",\n  \"credit-card-scan\",\n  \"credit-card-scan-outline\",\n  \"credit-card-settings\",\n  \"credit-card-settings-outline\",\n  \"credit-card-wireless\",\n  \"credit-card-wireless-off\",\n  \"credit-card-wireless-off-outline\",\n  \"credit-card-wireless-outline\",\n  \"cricket\",\n  \"crop\",\n  \"crop-free\",\n  \"crop-landscape\",\n  \"crop-portrait\",\n  \"crop-rotate\",\n  \"crop-square\",\n  \"crosshairs\",\n  \"crosshairs-gps\",\n  \"crosshairs-off\",\n  \"crosshairs-question\",\n  \"crown\",\n  \"crown-outline\",\n  \"cryengine\",\n  \"crystal-ball\",\n  \"cube\",\n  \"cube-outline\",\n  \"cube-scan\",\n  \"cube-send\",\n  \"cube-unfolded\",\n  \"cup\",\n  \"cup-off\",\n  \"cup-off-outline\",\n  \"cup-outline\",\n  \"cup-water\",\n  \"cupboard\",\n  \"cupboard-outline\",\n  \"cupcake\",\n  \"curling\",\n  \"currency-bdt\",\n  \"currency-brl\",\n  \"currency-btc\",\n  \"currency-cny\",\n  \"currency-eth\",\n  \"currency-eur\",\n  \"currency-eur-off\",\n  \"currency-gbp\",\n  \"currency-ils\",\n  \"currency-inr\",\n  \"currency-jpy\",\n  \"currency-krw\",\n  \"currency-kzt\",\n  \"currency-ngn\",\n  \"currency-php\",\n  \"currency-rial\",\n  \"currency-rub\",\n  \"currency-sign\",\n  \"currency-try\",\n  \"currency-twd\",\n  \"currency-usd\",\n  \"currency-usd-circle\",\n  \"currency-usd-circle-outline\",\n  \"currency-usd-off\",\n  \"current-ac\",\n  \"current-dc\",\n  \"cursor-default\",\n  \"cursor-default-click\",\n  \"cursor-default-click-outline\",\n  \"cursor-default-gesture\",\n  \"cursor-default-gesture-outline\",\n  \"cursor-default-outline\",\n  \"cursor-move\",\n  \"cursor-pointer\",\n  \"cursor-text\",\n  \"database\",\n  \"database-check\",\n  \"database-edit\",\n  \"database-export\",\n  \"database-import\",\n  \"database-lock\",\n  \"database-marker\",\n  \"database-minus\",\n  \"database-plus\",\n  \"database-refresh\",\n  \"database-remove\",\n  \"database-search\",\n  \"database-settings\",\n  \"database-sync\",\n  \"death-star\",\n  \"death-star-variant\",\n  \"deathly-hallows\",\n  \"debian\",\n  \"debug-step-into\",\n  \"debug-step-out\",\n  \"debug-step-over\",\n  \"decagram\",\n  \"decagram-outline\",\n  \"decimal\",\n  \"decimal-comma\",\n  \"decimal-comma-decrease\",\n  \"decimal-comma-increase\",\n  \"decimal-decrease\",\n  \"decimal-increase\",\n  \"delete\",\n  \"delete-alert\",\n  \"delete-alert-outline\",\n  \"delete-circle\",\n  \"delete-circle-outline\",\n  \"delete-empty\",\n  \"delete-empty-outline\",\n  \"delete-forever\",\n  \"delete-forever-outline\",\n  \"delete-off\",\n  \"delete-off-outline\",\n  \"delete-outline\",\n  \"delete-restore\",\n  \"delete-sweep\",\n  \"delete-sweep-outline\",\n  \"delete-variant\",\n  \"delta\",\n  \"desk\",\n  \"desk-lamp\",\n  \"deskphone\",\n  \"desktop-classic\",\n  \"desktop-mac\",\n  \"desktop-mac-dashboard\",\n  \"desktop-tower\",\n  \"desktop-tower-monitor\",\n  \"details\",\n  \"dev-to\",\n  \"developer-board\",\n  \"deviantart\",\n  \"devices\",\n  \"diabetes\",\n  \"dialpad\",\n  \"diameter\",\n  \"diameter-outline\",\n  \"diameter-variant\",\n  \"diamond\",\n  \"diamond-outline\",\n  \"diamond-stone\",\n  \"dice-1\",\n  \"dice-1-outline\",\n  \"dice-2\",\n  \"dice-2-outline\",\n  \"dice-3\",\n  \"dice-3-outline\",\n  \"dice-4\",\n  \"dice-4-outline\",\n  \"dice-5\",\n  \"dice-5-outline\",\n  \"dice-6\",\n  \"dice-6-outline\",\n  \"dice-d10\",\n  \"dice-d10-outline\",\n  \"dice-d12\",\n  \"dice-d12-outline\",\n  \"dice-d20\",\n  \"dice-d20-outline\",\n  \"dice-d4\",\n  \"dice-d4-outline\",\n  \"dice-d6\",\n  \"dice-d6-outline\",\n  \"dice-d8\",\n  \"dice-d8-outline\",\n  \"dice-multiple\",\n  \"dice-multiple-outline\",\n  \"digital-ocean\",\n  \"dip-switch\",\n  \"directions\",\n  \"directions-fork\",\n  \"disc\",\n  \"disc-alert\",\n  \"disc-player\",\n  \"discord\",\n  \"dishwasher\",\n  \"dishwasher-alert\",\n  \"dishwasher-off\",\n  \"disqus\",\n  \"distribute-horizontal-center\",\n  \"distribute-horizontal-left\",\n  \"distribute-horizontal-right\",\n  \"distribute-vertical-bottom\",\n  \"distribute-vertical-center\",\n  \"distribute-vertical-top\",\n  \"diving-flippers\",\n  \"diving-helmet\",\n  \"diving-scuba\",\n  \"diving-scuba-flag\",\n  \"diving-scuba-tank\",\n  \"diving-scuba-tank-multiple\",\n  \"diving-snorkel\",\n  \"division\",\n  \"division-box\",\n  \"dlna\",\n  \"dna\",\n  \"dns\",\n  \"dns-outline\",\n  \"do-not-disturb\",\n  \"do-not-disturb-off\",\n  \"dock-bottom\",\n  \"dock-left\",\n  \"dock-right\",\n  \"dock-window\",\n  \"docker\",\n  \"doctor\",\n  \"dog\",\n  \"dog-service\",\n  \"dog-side\",\n  \"dolby\",\n  \"dolly\",\n  \"domain\",\n  \"domain-off\",\n  \"domain-plus\",\n  \"domain-remove\",\n  \"domino-mask\",\n  \"donkey\",\n  \"door\",\n  \"door-closed\",\n  \"door-closed-lock\",\n  \"door-open\",\n  \"doorbell\",\n  \"doorbell-video\",\n  \"dot-net\",\n  \"dots-horizontal\",\n  \"dots-horizontal-circle\",\n  \"dots-horizontal-circle-outline\",\n  \"dots-vertical\",\n  \"dots-vertical-circle\",\n  \"dots-vertical-circle-outline\",\n  \"douban\",\n  \"download\",\n  \"download-lock\",\n  \"download-lock-outline\",\n  \"download-multiple\",\n  \"download-network\",\n  \"download-network-outline\",\n  \"download-off\",\n  \"download-off-outline\",\n  \"download-outline\",\n  \"drag\",\n  \"drag-horizontal\",\n  \"drag-horizontal-variant\",\n  \"drag-variant\",\n  \"drag-vertical\",\n  \"drag-vertical-variant\",\n  \"drama-masks\",\n  \"draw\",\n  \"drawing\",\n  \"drawing-box\",\n  \"dresser\",\n  \"dresser-outline\",\n  \"drone\",\n  \"dropbox\",\n  \"drupal\",\n  \"duck\",\n  \"dumbbell\",\n  \"dump-truck\",\n  \"ear-hearing\",\n  \"ear-hearing-off\",\n  \"earth\",\n  \"earth-arrow-right\",\n  \"earth-box\",\n  \"earth-box-off\",\n  \"earth-off\",\n  \"egg\",\n  \"egg-easter\",\n  \"eight-track\",\n  \"eject\",\n  \"eject-outline\",\n  \"electric-switch\",\n  \"electric-switch-closed\",\n  \"electron-framework\",\n  \"elephant\",\n  \"elevation-decline\",\n  \"elevation-rise\",\n  \"elevator\",\n  \"elevator-down\",\n  \"elevator-passenger\",\n  \"elevator-up\",\n  \"ellipse\",\n  \"ellipse-outline\",\n  \"email\",\n  \"email-alert\",\n  \"email-alert-outline\",\n  \"email-box\",\n  \"email-check\",\n  \"email-check-outline\",\n  \"email-edit\",\n  \"email-edit-outline\",\n  \"email-lock\",\n  \"email-mark-as-unread\",\n  \"email-minus\",\n  \"email-minus-outline\",\n  \"email-multiple\",\n  \"email-multiple-outline\",\n  \"email-newsletter\",\n  \"email-open\",\n  \"email-open-multiple\",\n  \"email-open-multiple-outline\",\n  \"email-open-outline\",\n  \"email-outline\",\n  \"email-plus\",\n  \"email-plus-outline\",\n  \"email-receive\",\n  \"email-receive-outline\",\n  \"email-search\",\n  \"email-search-outline\",\n  \"email-send\",\n  \"email-send-outline\",\n  \"email-sync\",\n  \"email-sync-outline\",\n  \"email-variant\",\n  \"ember\",\n  \"emby\",\n  \"emoticon\",\n  \"emoticon-angry\",\n  \"emoticon-angry-outline\",\n  \"emoticon-confused\",\n  \"emoticon-confused-outline\",\n  \"emoticon-cool\",\n  \"emoticon-cool-outline\",\n  \"emoticon-cry\",\n  \"emoticon-cry-outline\",\n  \"emoticon-dead\",\n  \"emoticon-dead-outline\",\n  \"emoticon-devil\",\n  \"emoticon-devil-outline\",\n  \"emoticon-excited\",\n  \"emoticon-excited-outline\",\n  \"emoticon-frown\",\n  \"emoticon-frown-outline\",\n  \"emoticon-happy\",\n  \"emoticon-happy-outline\",\n  \"emoticon-kiss\",\n  \"emoticon-kiss-outline\",\n  \"emoticon-lol\",\n  \"emoticon-lol-outline\",\n  \"emoticon-neutral\",\n  \"emoticon-neutral-outline\",\n  \"emoticon-outline\",\n  \"emoticon-poop\",\n  \"emoticon-poop-outline\",\n  \"emoticon-sad\",\n  \"emoticon-sad-outline\",\n  \"emoticon-tongue\",\n  \"emoticon-tongue-outline\",\n  \"emoticon-wink\",\n  \"emoticon-wink-outline\",\n  \"engine\",\n  \"engine-off\",\n  \"engine-off-outline\",\n  \"engine-outline\",\n  \"epsilon\",\n  \"equal\",\n  \"equal-box\",\n  \"equalizer\",\n  \"equalizer-outline\",\n  \"eraser\",\n  \"eraser-variant\",\n  \"escalator\",\n  \"escalator-box\",\n  \"escalator-down\",\n  \"escalator-up\",\n  \"eslint\",\n  \"et\",\n  \"ethereum\",\n  \"ethernet\",\n  \"ethernet-cable\",\n  \"ethernet-cable-off\",\n  \"ev-station\",\n  \"evernote\",\n  \"excavator\",\n  \"exclamation\",\n  \"exclamation-thick\",\n  \"exit-run\",\n  \"exit-to-app\",\n  \"expand-all\",\n  \"expand-all-outline\",\n  \"expansion-card\",\n  \"expansion-card-variant\",\n  \"exponent\",\n  \"exponent-box\",\n  \"export\",\n  \"export-variant\",\n  \"eye\",\n  \"eye-check\",\n  \"eye-check-outline\",\n  \"eye-circle\",\n  \"eye-circle-outline\",\n  \"eye-minus\",\n  \"eye-minus-outline\",\n  \"eye-off\",\n  \"eye-off-outline\",\n  \"eye-outline\",\n  \"eye-plus\",\n  \"eye-plus-outline\",\n  \"eye-settings\",\n  \"eye-settings-outline\",\n  \"eyedropper\",\n  \"eyedropper-variant\",\n  \"face\",\n  \"face-agent\",\n  \"face-outline\",\n  \"face-profile\",\n  \"face-profile-woman\",\n  \"face-recognition\",\n  \"face-woman\",\n  \"face-woman-outline\",\n  \"facebook\",\n  \"facebook-messenger\",\n  \"facebook-workplace\",\n  \"factory\",\n  \"fan\",\n  \"fan-off\",\n  \"fast-forward\",\n  \"fast-forward-10\",\n  \"fast-forward-30\",\n  \"fast-forward-5\",\n  \"fast-forward-outline\",\n  \"fax\",\n  \"feather\",\n  \"feature-search\",\n  \"feature-search-outline\",\n  \"fedora\",\n  \"ferris-wheel\",\n  \"ferry\",\n  \"file\",\n  \"file-account\",\n  \"file-account-outline\",\n  \"file-alert\",\n  \"file-alert-outline\",\n  \"file-cabinet\",\n  \"file-cad\",\n  \"file-cad-box\",\n  \"file-cancel\",\n  \"file-cancel-outline\",\n  \"file-certificate\",\n  \"file-certificate-outline\",\n  \"file-chart\",\n  \"file-chart-outline\",\n  \"file-check\",\n  \"file-check-outline\",\n  \"file-clock\",\n  \"file-clock-outline\",\n  \"file-cloud\",\n  \"file-cloud-outline\",\n  \"file-code\",\n  \"file-code-outline\",\n  \"file-cog\",\n  \"file-cog-outline\",\n  \"file-compare\",\n  \"file-delimited\",\n  \"file-delimited-outline\",\n  \"file-document\",\n  \"file-document-edit\",\n  \"file-document-edit-outline\",\n  \"file-document-outline\",\n  \"file-download\",\n  \"file-download-outline\",\n  \"file-edit\",\n  \"file-edit-outline\",\n  \"file-excel\",\n  \"file-excel-box\",\n  \"file-excel-box-outline\",\n  \"file-excel-outline\",\n  \"file-export\",\n  \"file-export-outline\",\n  \"file-eye\",\n  \"file-eye-outline\",\n  \"file-find\",\n  \"file-find-outline\",\n  \"file-hidden\",\n  \"file-image\",\n  \"file-image-outline\",\n  \"file-import\",\n  \"file-import-outline\",\n  \"file-key\",\n  \"file-key-outline\",\n  \"file-link\",\n  \"file-link-outline\",\n  \"file-lock\",\n  \"file-lock-outline\",\n  \"file-move\",\n  \"file-move-outline\",\n  \"file-multiple\",\n  \"file-multiple-outline\",\n  \"file-music\",\n  \"file-music-outline\",\n  \"file-outline\",\n  \"file-pdf\",\n  \"file-pdf-box\",\n  \"file-pdf-box-outline\",\n  \"file-pdf-outline\",\n  \"file-percent\",\n  \"file-percent-outline\",\n  \"file-phone\",\n  \"file-phone-outline\",\n  \"file-plus\",\n  \"file-plus-outline\",\n  \"file-powerpoint\",\n  \"file-powerpoint-box\",\n  \"file-powerpoint-box-outline\",\n  \"file-powerpoint-outline\",\n  \"file-presentation-box\",\n  \"file-question\",\n  \"file-question-outline\",\n  \"file-refresh\",\n  \"file-refresh-outline\",\n  \"file-remove\",\n  \"file-remove-outline\",\n  \"file-replace\",\n  \"file-replace-outline\",\n  \"file-restore\",\n  \"file-restore-outline\",\n  \"file-search\",\n  \"file-search-outline\",\n  \"file-send\",\n  \"file-send-outline\",\n  \"file-settings\",\n  \"file-settings-outline\",\n  \"file-star\",\n  \"file-star-outline\",\n  \"file-swap\",\n  \"file-swap-outline\",\n  \"file-sync\",\n  \"file-sync-outline\",\n  \"file-table\",\n  \"file-table-box\",\n  \"file-table-box-multiple\",\n  \"file-table-box-multiple-outline\",\n  \"file-table-box-outline\",\n  \"file-table-outline\",\n  \"file-tree\",\n  \"file-undo\",\n  \"file-undo-outline\",\n  \"file-upload\",\n  \"file-upload-outline\",\n  \"file-video\",\n  \"file-video-outline\",\n  \"file-word\",\n  \"file-word-box\",\n  \"file-word-box-outline\",\n  \"file-word-outline\",\n  \"film\",\n  \"filmstrip\",\n  \"filmstrip-box\",\n  \"filmstrip-box-multiple\",\n  \"filmstrip-off\",\n  \"filter\",\n  \"filter-menu\",\n  \"filter-menu-outline\",\n  \"filter-minus\",\n  \"filter-minus-outline\",\n  \"filter-outline\",\n  \"filter-plus\",\n  \"filter-plus-outline\",\n  \"filter-remove\",\n  \"filter-remove-outline\",\n  \"filter-variant\",\n  \"filter-variant-minus\",\n  \"filter-variant-plus\",\n  \"filter-variant-remove\",\n  \"finance\",\n  \"find-replace\",\n  \"fingerprint\",\n  \"fingerprint-off\",\n  \"fire\",\n  \"fire-extinguisher\",\n  \"fire-hydrant\",\n  \"fire-hydrant-alert\",\n  \"fire-hydrant-off\",\n  \"fire-truck\",\n  \"firebase\",\n  \"firefox\",\n  \"fireplace\",\n  \"fireplace-off\",\n  \"firework\",\n  \"fish\",\n  \"fishbowl\",\n  \"fishbowl-outline\",\n  \"fit-to-page\",\n  \"fit-to-page-outline\",\n  \"flag\",\n  \"flag-checkered\",\n  \"flag-minus\",\n  \"flag-minus-outline\",\n  \"flag-outline\",\n  \"flag-plus\",\n  \"flag-plus-outline\",\n  \"flag-remove\",\n  \"flag-remove-outline\",\n  \"flag-triangle\",\n  \"flag-variant\",\n  \"flag-variant-outline\",\n  \"flare\",\n  \"flash\",\n  \"flash-alert\",\n  \"flash-alert-outline\",\n  \"flash-auto\",\n  \"flash-circle\",\n  \"flash-off\",\n  \"flash-outline\",\n  \"flash-red-eye\",\n  \"flashlight\",\n  \"flashlight-off\",\n  \"flask\",\n  \"flask-empty\",\n  \"flask-empty-minus\",\n  \"flask-empty-minus-outline\",\n  \"flask-empty-outline\",\n  \"flask-empty-plus\",\n  \"flask-empty-plus-outline\",\n  \"flask-empty-remove\",\n  \"flask-empty-remove-outline\",\n  \"flask-minus\",\n  \"flask-minus-outline\",\n  \"flask-outline\",\n  \"flask-plus\",\n  \"flask-plus-outline\",\n  \"flask-remove\",\n  \"flask-remove-outline\",\n  \"flask-round-bottom\",\n  \"flask-round-bottom-empty\",\n  \"flask-round-bottom-empty-outline\",\n  \"flask-round-bottom-outline\",\n  \"fleur-de-lis\",\n  \"flip-horizontal\",\n  \"flip-to-back\",\n  \"flip-to-front\",\n  \"flip-vertical\",\n  \"floor-lamp\",\n  \"floor-lamp-dual\",\n  \"floor-lamp-variant\",\n  \"floor-plan\",\n  \"floppy\",\n  \"floppy-variant\",\n  \"flower\",\n  \"flower-outline\",\n  \"flower-poppy\",\n  \"flower-tulip\",\n  \"flower-tulip-outline\",\n  \"focus-auto\",\n  \"focus-field\",\n  \"focus-field-horizontal\",\n  \"focus-field-vertical\",\n  \"folder\",\n  \"folder-account\",\n  \"folder-account-outline\",\n  \"folder-alert\",\n  \"folder-alert-outline\",\n  \"folder-clock\",\n  \"folder-clock-outline\",\n  \"folder-cog\",\n  \"folder-cog-outline\",\n  \"folder-download\",\n  \"folder-download-outline\",\n  \"folder-edit\",\n  \"folder-edit-outline\",\n  \"folder-google-drive\",\n  \"folder-heart\",\n  \"folder-heart-outline\",\n  \"folder-home\",\n  \"folder-home-outline\",\n  \"folder-image\",\n  \"folder-information\",\n  \"folder-information-outline\",\n  \"folder-key\",\n  \"folder-key-network\",\n  \"folder-key-network-outline\",\n  \"folder-key-outline\",\n  \"folder-lock\",\n  \"folder-lock-open\",\n  \"folder-marker\",\n  \"folder-marker-outline\",\n  \"folder-move\",\n  \"folder-move-outline\",\n  \"folder-multiple\",\n  \"folder-multiple-image\",\n  \"folder-multiple-outline\",\n  \"folder-music\",\n  \"folder-music-outline\",\n  \"folder-network\",\n  \"folder-network-outline\",\n  \"folder-open\",\n  \"folder-open-outline\",\n  \"folder-outline\",\n  \"folder-plus\",\n  \"folder-plus-outline\",\n  \"folder-pound\",\n  \"folder-pound-outline\",\n  \"folder-refresh\",\n  \"folder-refresh-outline\",\n  \"folder-remove\",\n  \"folder-remove-outline\",\n  \"folder-search\",\n  \"folder-search-outline\",\n  \"folder-settings\",\n  \"folder-settings-outline\",\n  \"folder-star\",\n  \"folder-star-outline\",\n  \"folder-swap\",\n  \"folder-swap-outline\",\n  \"folder-sync\",\n  \"folder-sync-outline\",\n  \"folder-table\",\n  \"folder-table-outline\",\n  \"folder-text\",\n  \"folder-text-outline\",\n  \"folder-upload\",\n  \"folder-upload-outline\",\n  \"folder-zip\",\n  \"folder-zip-outline\",\n  \"font-awesome\",\n  \"food\",\n  \"food-apple\",\n  \"food-apple-outline\",\n  \"food-croissant\",\n  \"food-fork-drink\",\n  \"food-off\",\n  \"food-variant\",\n  \"foot-print\",\n  \"football\",\n  \"football-australian\",\n  \"football-helmet\",\n  \"forklift\",\n  \"format-align-bottom\",\n  \"format-align-center\",\n  \"format-align-justify\",\n  \"format-align-left\",\n  \"format-align-middle\",\n  \"format-align-right\",\n  \"format-align-top\",\n  \"format-annotation-minus\",\n  \"format-annotation-plus\",\n  \"format-bold\",\n  \"format-clear\",\n  \"format-color-fill\",\n  \"format-color-highlight\",\n  \"format-color-marker-cancel\",\n  \"format-color-text\",\n  \"format-columns\",\n  \"format-float-center\",\n  \"format-float-left\",\n  \"format-float-none\",\n  \"format-float-right\",\n  \"format-font\",\n  \"format-font-size-decrease\",\n  \"format-font-size-increase\",\n  \"format-header-1\",\n  \"format-header-2\",\n  \"format-header-3\",\n  \"format-header-4\",\n  \"format-header-5\",\n  \"format-header-6\",\n  \"format-header-decrease\",\n  \"format-header-equal\",\n  \"format-header-increase\",\n  \"format-header-pound\",\n  \"format-horizontal-align-center\",\n  \"format-horizontal-align-left\",\n  \"format-horizontal-align-right\",\n  \"format-indent-decrease\",\n  \"format-indent-increase\",\n  \"format-italic\",\n  \"format-letter-case\",\n  \"format-letter-case-lower\",\n  \"format-letter-case-upper\",\n  \"format-letter-ends-with\",\n  \"format-letter-matches\",\n  \"format-letter-starts-with\",\n  \"format-line-spacing\",\n  \"format-line-style\",\n  \"format-line-weight\",\n  \"format-list-bulleted\",\n  \"format-list-bulleted-square\",\n  \"format-list-bulleted-triangle\",\n  \"format-list-bulleted-type\",\n  \"format-list-checkbox\",\n  \"format-list-checks\",\n  \"format-list-numbered\",\n  \"format-list-numbered-rtl\",\n  \"format-list-text\",\n  \"format-overline\",\n  \"format-page-break\",\n  \"format-paint\",\n  \"format-paragraph\",\n  \"format-pilcrow\",\n  \"format-quote-close\",\n  \"format-quote-close-outline\",\n  \"format-quote-open\",\n  \"format-quote-open-outline\",\n  \"format-rotate-90\",\n  \"format-section\",\n  \"format-size\",\n  \"format-strikethrough\",\n  \"format-strikethrough-variant\",\n  \"format-subscript\",\n  \"format-superscript\",\n  \"format-text\",\n  \"format-text-rotation-angle-down\",\n  \"format-text-rotation-angle-up\",\n  \"format-text-rotation-down\",\n  \"format-text-rotation-down-vertical\",\n  \"format-text-rotation-none\",\n  \"format-text-rotation-up\",\n  \"format-text-rotation-vertical\",\n  \"format-text-variant\",\n  \"format-text-wrapping-clip\",\n  \"format-text-wrapping-overflow\",\n  \"format-text-wrapping-wrap\",\n  \"format-textbox\",\n  \"format-textdirection-l-to-r\",\n  \"format-textdirection-r-to-l\",\n  \"format-title\",\n  \"format-underline\",\n  \"format-vertical-align-bottom\",\n  \"format-vertical-align-center\",\n  \"format-vertical-align-top\",\n  \"format-wrap-inline\",\n  \"format-wrap-square\",\n  \"format-wrap-tight\",\n  \"format-wrap-top-bottom\",\n  \"forum\",\n  \"forum-outline\",\n  \"forward\",\n  \"forwardburger\",\n  \"fountain\",\n  \"fountain-pen\",\n  \"fountain-pen-tip\",\n  \"freebsd\",\n  \"frequently-asked-questions\",\n  \"fridge\",\n  \"fridge-alert\",\n  \"fridge-alert-outline\",\n  \"fridge-bottom\",\n  \"fridge-off\",\n  \"fridge-off-outline\",\n  \"fridge-outline\",\n  \"fridge-top\",\n  \"fruit-cherries\",\n  \"fruit-citrus\",\n  \"fruit-grapes\",\n  \"fruit-grapes-outline\",\n  \"fruit-pineapple\",\n  \"fruit-watermelon\",\n  \"fuel\",\n  \"fullscreen\",\n  \"fullscreen-exit\",\n  \"function\",\n  \"function-variant\",\n  \"furigana-horizontal\",\n  \"furigana-vertical\",\n  \"fuse\",\n  \"fuse-blade\",\n  \"gamepad\",\n  \"gamepad-circle\",\n  \"gamepad-circle-down\",\n  \"gamepad-circle-left\",\n  \"gamepad-circle-outline\",\n  \"gamepad-circle-right\",\n  \"gamepad-circle-up\",\n  \"gamepad-down\",\n  \"gamepad-left\",\n  \"gamepad-right\",\n  \"gamepad-round\",\n  \"gamepad-round-down\",\n  \"gamepad-round-left\",\n  \"gamepad-round-outline\",\n  \"gamepad-round-right\",\n  \"gamepad-round-up\",\n  \"gamepad-square\",\n  \"gamepad-square-outline\",\n  \"gamepad-up\",\n  \"gamepad-variant\",\n  \"gamepad-variant-outline\",\n  \"gamma\",\n  \"gantry-crane\",\n  \"garage\",\n  \"garage-alert\",\n  \"garage-alert-variant\",\n  \"garage-open\",\n  \"garage-open-variant\",\n  \"garage-variant\",\n  \"gas-cylinder\",\n  \"gas-station\",\n  \"gas-station-outline\",\n  \"gate\",\n  \"gate-and\",\n  \"gate-arrow-right\",\n  \"gate-nand\",\n  \"gate-nor\",\n  \"gate-not\",\n  \"gate-open\",\n  \"gate-or\",\n  \"gate-xnor\",\n  \"gate-xor\",\n  \"gatsby\",\n  \"gauge\",\n  \"gauge-empty\",\n  \"gauge-full\",\n  \"gauge-low\",\n  \"gavel\",\n  \"gender-female\",\n  \"gender-male\",\n  \"gender-male-female\",\n  \"gender-male-female-variant\",\n  \"gender-non-binary\",\n  \"gender-transgender\",\n  \"gentoo\",\n  \"gesture\",\n  \"gesture-double-tap\",\n  \"gesture-pinch\",\n  \"gesture-spread\",\n  \"gesture-swipe\",\n  \"gesture-swipe-down\",\n  \"gesture-swipe-horizontal\",\n  \"gesture-swipe-left\",\n  \"gesture-swipe-right\",\n  \"gesture-swipe-up\",\n  \"gesture-swipe-vertical\",\n  \"gesture-tap\",\n  \"gesture-tap-box\",\n  \"gesture-tap-button\",\n  \"gesture-tap-hold\",\n  \"gesture-two-double-tap\",\n  \"gesture-two-tap\",\n  \"ghost\",\n  \"ghost-off\",\n  \"gif\",\n  \"gift\",\n  \"gift-outline\",\n  \"git\",\n  \"github\",\n  \"gitlab\",\n  \"glass-cocktail\",\n  \"glass-flute\",\n  \"glass-mug\",\n  \"glass-mug-variant\",\n  \"glass-pint-outline\",\n  \"glass-stange\",\n  \"glass-tulip\",\n  \"glass-wine\",\n  \"glasses\",\n  \"globe-light\",\n  \"globe-model\",\n  \"gmail\",\n  \"gnome\",\n  \"go-kart\",\n  \"go-kart-track\",\n  \"gog\",\n  \"gold\",\n  \"golf\",\n  \"golf-cart\",\n  \"golf-tee\",\n  \"gondola\",\n  \"goodreads\",\n  \"google\",\n  \"google-ads\",\n  \"google-analytics\",\n  \"google-assistant\",\n  \"google-cardboard\",\n  \"google-chrome\",\n  \"google-circles\",\n  \"google-circles-communities\",\n  \"google-circles-extended\",\n  \"google-circles-group\",\n  \"google-classroom\",\n  \"google-cloud\",\n  \"google-controller\",\n  \"google-controller-off\",\n  \"google-downasaur\",\n  \"google-drive\",\n  \"google-earth\",\n  \"google-fit\",\n  \"google-glass\",\n  \"google-hangouts\",\n  \"google-home\",\n  \"google-keep\",\n  \"google-lens\",\n  \"google-maps\",\n  \"google-my-business\",\n  \"google-nearby\",\n  \"google-photos\",\n  \"google-play\",\n  \"google-plus\",\n  \"google-podcast\",\n  \"google-spreadsheet\",\n  \"google-street-view\",\n  \"google-translate\",\n  \"gradient\",\n  \"grain\",\n  \"graph\",\n  \"graph-outline\",\n  \"graphql\",\n  \"grave-stone\",\n  \"grease-pencil\",\n  \"greater-than\",\n  \"greater-than-or-equal\",\n  \"grid\",\n  \"grid-large\",\n  \"grid-off\",\n  \"grill\",\n  \"grill-outline\",\n  \"group\",\n  \"guitar-acoustic\",\n  \"guitar-electric\",\n  \"guitar-pick\",\n  \"guitar-pick-outline\",\n  \"guy-fawkes-mask\",\n  \"hail\",\n  \"hair-dryer\",\n  \"hair-dryer-outline\",\n  \"halloween\",\n  \"hamburger\",\n  \"hammer\",\n  \"hammer-screwdriver\",\n  \"hammer-wrench\",\n  \"hand\",\n  \"hand-heart\",\n  \"hand-left\",\n  \"hand-okay\",\n  \"hand-peace\",\n  \"hand-peace-variant\",\n  \"hand-pointing-down\",\n  \"hand-pointing-left\",\n  \"hand-pointing-right\",\n  \"hand-pointing-up\",\n  \"hand-right\",\n  \"hand-saw\",\n  \"hand-water\",\n  \"handball\",\n  \"handcuffs\",\n  \"handshake\",\n  \"hanger\",\n  \"hard-hat\",\n  \"harddisk\",\n  \"harddisk-plus\",\n  \"harddisk-remove\",\n  \"hat-fedora\",\n  \"hazard-lights\",\n  \"hdr\",\n  \"hdr-off\",\n  \"head\",\n  \"head-alert\",\n  \"head-alert-outline\",\n  \"head-check\",\n  \"head-check-outline\",\n  \"head-cog\",\n  \"head-cog-outline\",\n  \"head-dots-horizontal\",\n  \"head-dots-horizontal-outline\",\n  \"head-flash\",\n  \"head-flash-outline\",\n  \"head-heart\",\n  \"head-heart-outline\",\n  \"head-lightbulb\",\n  \"head-lightbulb-outline\",\n  \"head-minus\",\n  \"head-minus-outline\",\n  \"head-outline\",\n  \"head-plus\",\n  \"head-plus-outline\",\n  \"head-question\",\n  \"head-question-outline\",\n  \"head-remove\",\n  \"head-remove-outline\",\n  \"head-snowflake\",\n  \"head-snowflake-outline\",\n  \"head-sync\",\n  \"head-sync-outline\",\n  \"headphones\",\n  \"headphones-bluetooth\",\n  \"headphones-box\",\n  \"headphones-off\",\n  \"headphones-settings\",\n  \"headset\",\n  \"headset-dock\",\n  \"headset-off\",\n  \"heart\",\n  \"heart-box\",\n  \"heart-box-outline\",\n  \"heart-broken\",\n  \"heart-broken-outline\",\n  \"heart-circle\",\n  \"heart-circle-outline\",\n  \"heart-flash\",\n  \"heart-half\",\n  \"heart-half-full\",\n  \"heart-half-outline\",\n  \"heart-multiple\",\n  \"heart-multiple-outline\",\n  \"heart-off\",\n  \"heart-outline\",\n  \"heart-pulse\",\n  \"helicopter\",\n  \"help\",\n  \"help-box\",\n  \"help-circle\",\n  \"help-circle-outline\",\n  \"help-network\",\n  \"help-network-outline\",\n  \"help-rhombus\",\n  \"help-rhombus-outline\",\n  \"hexadecimal\",\n  \"hexagon\",\n  \"hexagon-multiple\",\n  \"hexagon-multiple-outline\",\n  \"hexagon-outline\",\n  \"hexagon-slice-1\",\n  \"hexagon-slice-2\",\n  \"hexagon-slice-3\",\n  \"hexagon-slice-4\",\n  \"hexagon-slice-5\",\n  \"hexagon-slice-6\",\n  \"hexagram\",\n  \"hexagram-outline\",\n  \"high-definition\",\n  \"high-definition-box\",\n  \"highway\",\n  \"hiking\",\n  \"hinduism\",\n  \"history\",\n  \"hockey-puck\",\n  \"hockey-sticks\",\n  \"hololens\",\n  \"home\",\n  \"home-account\",\n  \"home-alert\",\n  \"home-analytics\",\n  \"home-assistant\",\n  \"home-automation\",\n  \"home-circle\",\n  \"home-circle-outline\",\n  \"home-city\",\n  \"home-city-outline\",\n  \"home-currency-usd\",\n  \"home-edit\",\n  \"home-edit-outline\",\n  \"home-export-outline\",\n  \"home-flood\",\n  \"home-floor-0\",\n  \"home-floor-1\",\n  \"home-floor-2\",\n  \"home-floor-3\",\n  \"home-floor-a\",\n  \"home-floor-b\",\n  \"home-floor-g\",\n  \"home-floor-l\",\n  \"home-floor-negative-1\",\n  \"home-group\",\n  \"home-heart\",\n  \"home-import-outline\",\n  \"home-lightbulb\",\n  \"home-lightbulb-outline\",\n  \"home-lock\",\n  \"home-lock-open\",\n  \"home-map-marker\",\n  \"home-minus\",\n  \"home-modern\",\n  \"home-outline\",\n  \"home-plus\",\n  \"home-remove\",\n  \"home-roof\",\n  \"home-search\",\n  \"home-search-outline\",\n  \"home-thermometer\",\n  \"home-thermometer-outline\",\n  \"home-variant\",\n  \"home-variant-outline\",\n  \"hook\",\n  \"hook-off\",\n  \"hops\",\n  \"horizontal-rotate-clockwise\",\n  \"horizontal-rotate-counterclockwise\",\n  \"horseshoe\",\n  \"hospital\",\n  \"hospital-box\",\n  \"hospital-box-outline\",\n  \"hospital-building\",\n  \"hospital-marker\",\n  \"hot-tub\",\n  \"hubspot\",\n  \"hulu\",\n  \"human\",\n  \"human-baby-changing-table\",\n  \"human-child\",\n  \"human-female\",\n  \"human-female-boy\",\n  \"human-female-female\",\n  \"human-female-girl\",\n  \"human-greeting\",\n  \"human-handsdown\",\n  \"human-handsup\",\n  \"human-male\",\n  \"human-male-boy\",\n  \"human-male-child\",\n  \"human-male-female\",\n  \"human-male-girl\",\n  \"human-male-height\",\n  \"human-male-height-variant\",\n  \"human-male-male\",\n  \"human-pregnant\",\n  \"human-wheelchair\",\n  \"humble-bundle\",\n  \"hvac\",\n  \"hydraulic-oil-level\",\n  \"hydraulic-oil-temperature\",\n  \"hydro-power\",\n  \"ice-cream\",\n  \"ice-cream-off\",\n  \"ice-pop\",\n  \"id-card\",\n  \"identifier\",\n  \"ideogram-cjk\",\n  \"ideogram-cjk-variant\",\n  \"iframe\",\n  \"iframe-array\",\n  \"iframe-array-outline\",\n  \"iframe-braces\",\n  \"iframe-braces-outline\",\n  \"iframe-outline\",\n  \"iframe-parentheses\",\n  \"iframe-parentheses-outline\",\n  \"iframe-variable\",\n  \"iframe-variable-outline\",\n  \"image\",\n  \"image-album\",\n  \"image-area\",\n  \"image-area-close\",\n  \"image-auto-adjust\",\n  \"image-broken\",\n  \"image-broken-variant\",\n  \"image-edit\",\n  \"image-edit-outline\",\n  \"image-filter-black-white\",\n  \"image-filter-center-focus\",\n  \"image-filter-center-focus-strong\",\n  \"image-filter-center-focus-strong-outline\",\n  \"image-filter-center-focus-weak\",\n  \"image-filter-drama\",\n  \"image-filter-frames\",\n  \"image-filter-hdr\",\n  \"image-filter-none\",\n  \"image-filter-tilt-shift\",\n  \"image-filter-vintage\",\n  \"image-frame\",\n  \"image-move\",\n  \"image-multiple\",\n  \"image-multiple-outline\",\n  \"image-off\",\n  \"image-off-outline\",\n  \"image-outline\",\n  \"image-plus\",\n  \"image-search\",\n  \"image-search-outline\",\n  \"image-size-select-actual\",\n  \"image-size-select-large\",\n  \"image-size-select-small\",\n  \"import\",\n  \"inbox\",\n  \"inbox-arrow-down\",\n  \"inbox-arrow-down-outline\",\n  \"inbox-arrow-up\",\n  \"inbox-arrow-up-outline\",\n  \"inbox-full\",\n  \"inbox-full-outline\",\n  \"inbox-multiple\",\n  \"inbox-multiple-outline\",\n  \"inbox-outline\",\n  \"incognito\",\n  \"incognito-off\",\n  \"infinity\",\n  \"information\",\n  \"information-outline\",\n  \"information-variant\",\n  \"instagram\",\n  \"instrument-triangle\",\n  \"invert-colors\",\n  \"invert-colors-off\",\n  \"iobroker\",\n  \"ip\",\n  \"ip-network\",\n  \"ip-network-outline\",\n  \"ipod\",\n  \"islam\",\n  \"island\",\n  \"iv-bag\",\n  \"jabber\",\n  \"jeepney\",\n  \"jellyfish\",\n  \"jellyfish-outline\",\n  \"jira\",\n  \"jquery\",\n  \"jsfiddle\",\n  \"judaism\",\n  \"jump-rope\",\n  \"kabaddi\",\n  \"karate\",\n  \"keg\",\n  \"kettle\",\n  \"kettle-alert\",\n  \"kettle-alert-outline\",\n  \"kettle-off\",\n  \"kettle-off-outline\",\n  \"kettle-outline\",\n  \"kettle-steam\",\n  \"kettle-steam-outline\",\n  \"kettlebell\",\n  \"key\",\n  \"key-arrow-right\",\n  \"key-change\",\n  \"key-link\",\n  \"key-minus\",\n  \"key-outline\",\n  \"key-plus\",\n  \"key-remove\",\n  \"key-star\",\n  \"key-variant\",\n  \"key-wireless\",\n  \"keyboard\",\n  \"keyboard-backspace\",\n  \"keyboard-caps\",\n  \"keyboard-close\",\n  \"keyboard-esc\",\n  \"keyboard-f1\",\n  \"keyboard-f10\",\n  \"keyboard-f11\",\n  \"keyboard-f12\",\n  \"keyboard-f2\",\n  \"keyboard-f3\",\n  \"keyboard-f4\",\n  \"keyboard-f5\",\n  \"keyboard-f6\",\n  \"keyboard-f7\",\n  \"keyboard-f8\",\n  \"keyboard-f9\",\n  \"keyboard-off\",\n  \"keyboard-off-outline\",\n  \"keyboard-outline\",\n  \"keyboard-return\",\n  \"keyboard-settings\",\n  \"keyboard-settings-outline\",\n  \"keyboard-space\",\n  \"keyboard-tab\",\n  \"keyboard-variant\",\n  \"khanda\",\n  \"kickstarter\",\n  \"klingon\",\n  \"knife\",\n  \"knife-military\",\n  \"kodi\",\n  \"kubernetes\",\n  \"label\",\n  \"label-multiple\",\n  \"label-multiple-outline\",\n  \"label-off\",\n  \"label-off-outline\",\n  \"label-outline\",\n  \"label-percent\",\n  \"label-percent-outline\",\n  \"label-variant\",\n  \"label-variant-outline\",\n  \"ladybug\",\n  \"lambda\",\n  \"lamp\",\n  \"lan\",\n  \"lan-check\",\n  \"lan-connect\",\n  \"lan-disconnect\",\n  \"lan-pending\",\n  \"language-c\",\n  \"language-cpp\",\n  \"language-csharp\",\n  \"language-css3\",\n  \"language-fortran\",\n  \"language-go\",\n  \"language-haskell\",\n  \"language-html5\",\n  \"language-java\",\n  \"language-javascript\",\n  \"language-kotlin\",\n  \"language-lua\",\n  \"language-markdown\",\n  \"language-markdown-outline\",\n  \"language-php\",\n  \"language-python\",\n  \"language-r\",\n  \"language-ruby\",\n  \"language-ruby-on-rails\",\n  \"language-swift\",\n  \"language-typescript\",\n  \"language-xaml\",\n  \"laptop\",\n  \"laptop-chromebook\",\n  \"laptop-mac\",\n  \"laptop-off\",\n  \"laptop-windows\",\n  \"laravel\",\n  \"lasso\",\n  \"lastpass\",\n  \"latitude\",\n  \"launch\",\n  \"lava-lamp\",\n  \"layers\",\n  \"layers-minus\",\n  \"layers-off\",\n  \"layers-off-outline\",\n  \"layers-outline\",\n  \"layers-plus\",\n  \"layers-remove\",\n  \"layers-search\",\n  \"layers-search-outline\",\n  \"layers-triple\",\n  \"layers-triple-outline\",\n  \"lead-pencil\",\n  \"leaf\",\n  \"leaf-maple\",\n  \"leaf-maple-off\",\n  \"leaf-off\",\n  \"leak\",\n  \"leak-off\",\n  \"led-off\",\n  \"led-on\",\n  \"led-outline\",\n  \"led-strip\",\n  \"led-strip-variant\",\n  \"led-variant-off\",\n  \"led-variant-on\",\n  \"led-variant-outline\",\n  \"leek\",\n  \"less-than\",\n  \"less-than-or-equal\",\n  \"library\",\n  \"library-shelves\",\n  \"license\",\n  \"lifebuoy\",\n  \"light-switch\",\n  \"lightbulb\",\n  \"lightbulb-cfl\",\n  \"lightbulb-cfl-off\",\n  \"lightbulb-cfl-spiral\",\n  \"lightbulb-cfl-spiral-off\",\n  \"lightbulb-group\",\n  \"lightbulb-group-off\",\n  \"lightbulb-group-off-outline\",\n  \"lightbulb-group-outline\",\n  \"lightbulb-multiple\",\n  \"lightbulb-multiple-off\",\n  \"lightbulb-multiple-off-outline\",\n  \"lightbulb-multiple-outline\",\n  \"lightbulb-off\",\n  \"lightbulb-off-outline\",\n  \"lightbulb-on\",\n  \"lightbulb-on-outline\",\n  \"lightbulb-outline\",\n  \"lighthouse\",\n  \"lighthouse-on\",\n  \"link\",\n  \"link-box\",\n  \"link-box-outline\",\n  \"link-box-variant\",\n  \"link-box-variant-outline\",\n  \"link-lock\",\n  \"link-off\",\n  \"link-plus\",\n  \"link-variant\",\n  \"link-variant-minus\",\n  \"link-variant-off\",\n  \"link-variant-plus\",\n  \"link-variant-remove\",\n  \"linkedin\",\n  \"linux\",\n  \"linux-mint\",\n  \"lipstick\",\n  \"litecoin\",\n  \"loading\",\n  \"location-enter\",\n  \"location-exit\",\n  \"lock\",\n  \"lock-alert\",\n  \"lock-check\",\n  \"lock-clock\",\n  \"lock-open\",\n  \"lock-open-alert\",\n  \"lock-open-check\",\n  \"lock-open-outline\",\n  \"lock-open-variant\",\n  \"lock-open-variant-outline\",\n  \"lock-outline\",\n  \"lock-pattern\",\n  \"lock-plus\",\n  \"lock-question\",\n  \"lock-reset\",\n  \"lock-smart\",\n  \"locker\",\n  \"locker-multiple\",\n  \"login\",\n  \"login-variant\",\n  \"logout\",\n  \"logout-variant\",\n  \"longitude\",\n  \"looks\",\n  \"loupe\",\n  \"lumx\",\n  \"lungs\",\n  \"magnet\",\n  \"magnet-on\",\n  \"magnify\",\n  \"magnify-close\",\n  \"magnify-minus\",\n  \"magnify-minus-cursor\",\n  \"magnify-minus-outline\",\n  \"magnify-plus\",\n  \"magnify-plus-cursor\",\n  \"magnify-plus-outline\",\n  \"magnify-remove-cursor\",\n  \"magnify-remove-outline\",\n  \"magnify-scan\",\n  \"mail\",\n  \"mailbox\",\n  \"mailbox-open\",\n  \"mailbox-open-outline\",\n  \"mailbox-open-up\",\n  \"mailbox-open-up-outline\",\n  \"mailbox-outline\",\n  \"mailbox-up\",\n  \"mailbox-up-outline\",\n  \"map\",\n  \"map-check\",\n  \"map-check-outline\",\n  \"map-clock\",\n  \"map-clock-outline\",\n  \"map-legend\",\n  \"map-marker\",\n  \"map-marker-alert\",\n  \"map-marker-alert-outline\",\n  \"map-marker-check\",\n  \"map-marker-check-outline\",\n  \"map-marker-circle\",\n  \"map-marker-distance\",\n  \"map-marker-down\",\n  \"map-marker-left\",\n  \"map-marker-left-outline\",\n  \"map-marker-minus\",\n  \"map-marker-minus-outline\",\n  \"map-marker-multiple\",\n  \"map-marker-multiple-outline\",\n  \"map-marker-off\",\n  \"map-marker-off-outline\",\n  \"map-marker-outline\",\n  \"map-marker-path\",\n  \"map-marker-plus\",\n  \"map-marker-plus-outline\",\n  \"map-marker-question\",\n  \"map-marker-question-outline\",\n  \"map-marker-radius\",\n  \"map-marker-radius-outline\",\n  \"map-marker-remove\",\n  \"map-marker-remove-outline\",\n  \"map-marker-remove-variant\",\n  \"map-marker-right\",\n  \"map-marker-right-outline\",\n  \"map-marker-up\",\n  \"map-minus\",\n  \"map-outline\",\n  \"map-plus\",\n  \"map-search\",\n  \"map-search-outline\",\n  \"mapbox\",\n  \"margin\",\n  \"marker\",\n  \"marker-cancel\",\n  \"marker-check\",\n  \"mastodon\",\n  \"material-design\",\n  \"material-ui\",\n  \"math-compass\",\n  \"math-cos\",\n  \"math-integral\",\n  \"math-integral-box\",\n  \"math-log\",\n  \"math-norm\",\n  \"math-norm-box\",\n  \"math-sin\",\n  \"math-tan\",\n  \"matrix\",\n  \"medal\",\n  \"medal-outline\",\n  \"medical-bag\",\n  \"meditation\",\n  \"memory\",\n  \"menu\",\n  \"menu-down\",\n  \"menu-down-outline\",\n  \"menu-left\",\n  \"menu-left-outline\",\n  \"menu-open\",\n  \"menu-right\",\n  \"menu-right-outline\",\n  \"menu-swap\",\n  \"menu-swap-outline\",\n  \"menu-up\",\n  \"menu-up-outline\",\n  \"merge\",\n  \"message\",\n  \"message-alert\",\n  \"message-alert-outline\",\n  \"message-arrow-left\",\n  \"message-arrow-left-outline\",\n  \"message-arrow-right\",\n  \"message-arrow-right-outline\",\n  \"message-bulleted\",\n  \"message-bulleted-off\",\n  \"message-cog\",\n  \"message-cog-outline\",\n  \"message-draw\",\n  \"message-image\",\n  \"message-image-outline\",\n  \"message-lock\",\n  \"message-lock-outline\",\n  \"message-minus\",\n  \"message-minus-outline\",\n  \"message-outline\",\n  \"message-plus\",\n  \"message-plus-outline\",\n  \"message-processing\",\n  \"message-processing-outline\",\n  \"message-reply\",\n  \"message-reply-text\",\n  \"message-settings\",\n  \"message-settings-outline\",\n  \"message-text\",\n  \"message-text-clock\",\n  \"message-text-clock-outline\",\n  \"message-text-lock\",\n  \"message-text-lock-outline\",\n  \"message-text-outline\",\n  \"message-video\",\n  \"meteor\",\n  \"metronome\",\n  \"metronome-tick\",\n  \"micro-sd\",\n  \"microphone\",\n  \"microphone-minus\",\n  \"microphone-off\",\n  \"microphone-outline\",\n  \"microphone-plus\",\n  \"microphone-settings\",\n  \"microphone-variant\",\n  \"microphone-variant-off\",\n  \"microscope\",\n  \"microsoft\",\n  \"microsoft-access\",\n  \"microsoft-azure\",\n  \"microsoft-azure-devops\",\n  \"microsoft-bing\",\n  \"microsoft-dynamics-365\",\n  \"microsoft-edge\",\n  \"microsoft-edge-legacy\",\n  \"microsoft-excel\",\n  \"microsoft-internet-explorer\",\n  \"microsoft-office\",\n  \"microsoft-onedrive\",\n  \"microsoft-onenote\",\n  \"microsoft-outlook\",\n  \"microsoft-powerpoint\",\n  \"microsoft-sharepoint\",\n  \"microsoft-teams\",\n  \"microsoft-visual-studio\",\n  \"microsoft-visual-studio-code\",\n  \"microsoft-windows\",\n  \"microsoft-windows-classic\",\n  \"microsoft-word\",\n  \"microsoft-xbox\",\n  \"microsoft-xbox-controller\",\n  \"microsoft-xbox-controller-battery-alert\",\n  \"microsoft-xbox-controller-battery-charging\",\n  \"microsoft-xbox-controller-battery-empty\",\n  \"microsoft-xbox-controller-battery-full\",\n  \"microsoft-xbox-controller-battery-low\",\n  \"microsoft-xbox-controller-battery-medium\",\n  \"microsoft-xbox-controller-battery-unknown\",\n  \"microsoft-xbox-controller-menu\",\n  \"microsoft-xbox-controller-off\",\n  \"microsoft-xbox-controller-view\",\n  \"microsoft-yammer\",\n  \"microwave\",\n  \"middleware\",\n  \"middleware-outline\",\n  \"midi\",\n  \"midi-port\",\n  \"mine\",\n  \"minecraft\",\n  \"mini-sd\",\n  \"minidisc\",\n  \"minus\",\n  \"minus-box\",\n  \"minus-box-multiple\",\n  \"minus-box-multiple-outline\",\n  \"minus-box-outline\",\n  \"minus-circle\",\n  \"minus-circle-multiple\",\n  \"minus-circle-multiple-outline\",\n  \"minus-circle-outline\",\n  \"minus-network\",\n  \"minus-network-outline\",\n  \"mirror\",\n  \"mixed-martial-arts\",\n  \"mixed-reality\",\n  \"mixer\",\n  \"molecule\",\n  \"molecule-co\",\n  \"molecule-co2\",\n  \"monitor\",\n  \"monitor-cellphone\",\n  \"monitor-cellphone-star\",\n  \"monitor-clean\",\n  \"monitor-dashboard\",\n  \"monitor-edit\",\n  \"monitor-eye\",\n  \"monitor-lock\",\n  \"monitor-multiple\",\n  \"monitor-off\",\n  \"monitor-screenshot\",\n  \"monitor-speaker\",\n  \"monitor-speaker-off\",\n  \"monitor-star\",\n  \"moon-first-quarter\",\n  \"moon-full\",\n  \"moon-last-quarter\",\n  \"moon-new\",\n  \"moon-waning-crescent\",\n  \"moon-waning-gibbous\",\n  \"moon-waxing-crescent\",\n  \"moon-waxing-gibbous\",\n  \"moped\",\n  \"more\",\n  \"mother-heart\",\n  \"mother-nurse\",\n  \"motion-sensor\",\n  \"motorbike\",\n  \"mouse\",\n  \"mouse-bluetooth\",\n  \"mouse-off\",\n  \"mouse-variant\",\n  \"mouse-variant-off\",\n  \"move-resize\",\n  \"move-resize-variant\",\n  \"movie\",\n  \"movie-edit\",\n  \"movie-edit-outline\",\n  \"movie-filter\",\n  \"movie-filter-outline\",\n  \"movie-open\",\n  \"movie-open-outline\",\n  \"movie-outline\",\n  \"movie-roll\",\n  \"movie-search\",\n  \"movie-search-outline\",\n  \"muffin\",\n  \"multiplication\",\n  \"multiplication-box\",\n  \"mushroom\",\n  \"mushroom-outline\",\n  \"music\",\n  \"music-accidental-double-flat\",\n  \"music-accidental-double-sharp\",\n  \"music-accidental-flat\",\n  \"music-accidental-natural\",\n  \"music-accidental-sharp\",\n  \"music-box\",\n  \"music-box-multiple\",\n  \"music-box-multiple-outline\",\n  \"music-box-outline\",\n  \"music-circle\",\n  \"music-circle-outline\",\n  \"music-clef-alto\",\n  \"music-clef-bass\",\n  \"music-clef-treble\",\n  \"music-note\",\n  \"music-note-bluetooth\",\n  \"music-note-bluetooth-off\",\n  \"music-note-eighth\",\n  \"music-note-eighth-dotted\",\n  \"music-note-half\",\n  \"music-note-half-dotted\",\n  \"music-note-off\",\n  \"music-note-off-outline\",\n  \"music-note-outline\",\n  \"music-note-plus\",\n  \"music-note-quarter\",\n  \"music-note-quarter-dotted\",\n  \"music-note-sixteenth\",\n  \"music-note-sixteenth-dotted\",\n  \"music-note-whole\",\n  \"music-note-whole-dotted\",\n  \"music-off\",\n  \"music-rest-eighth\",\n  \"music-rest-half\",\n  \"music-rest-quarter\",\n  \"music-rest-sixteenth\",\n  \"music-rest-whole\",\n  \"nail\",\n  \"nas\",\n  \"nativescript\",\n  \"nature\",\n  \"nature-people\",\n  \"navigation\",\n  \"near-me\",\n  \"necklace\",\n  \"needle\",\n  \"netflix\",\n  \"network\",\n  \"network-off\",\n  \"network-off-outline\",\n  \"network-outline\",\n  \"network-strength-1\",\n  \"network-strength-1-alert\",\n  \"network-strength-2\",\n  \"network-strength-2-alert\",\n  \"network-strength-3\",\n  \"network-strength-3-alert\",\n  \"network-strength-4\",\n  \"network-strength-4-alert\",\n  \"network-strength-off\",\n  \"network-strength-off-outline\",\n  \"network-strength-outline\",\n  \"new-box\",\n  \"newspaper\",\n  \"newspaper-minus\",\n  \"newspaper-plus\",\n  \"newspaper-variant\",\n  \"newspaper-variant-multiple\",\n  \"newspaper-variant-multiple-outline\",\n  \"newspaper-variant-outline\",\n  \"nfc\",\n  \"nfc-search-variant\",\n  \"nfc-tap\",\n  \"nfc-variant\",\n  \"nfc-variant-off\",\n  \"ninja\",\n  \"nintendo-game-boy\",\n  \"nintendo-switch\",\n  \"nintendo-wii\",\n  \"nintendo-wiiu\",\n  \"nix\",\n  \"nodejs\",\n  \"noodles\",\n  \"not-equal\",\n  \"not-equal-variant\",\n  \"note\",\n  \"note-multiple\",\n  \"note-multiple-outline\",\n  \"note-outline\",\n  \"note-plus\",\n  \"note-plus-outline\",\n  \"note-text\",\n  \"note-text-outline\",\n  \"notebook\",\n  \"notebook-multiple\",\n  \"notebook-outline\",\n  \"notification-clear-all\",\n  \"npm\",\n  \"nuke\",\n  \"null\",\n  \"numeric\",\n  \"numeric-0\",\n  \"numeric-0-box\",\n  \"numeric-0-box-multiple\",\n  \"numeric-0-box-multiple-outline\",\n  \"numeric-0-box-outline\",\n  \"numeric-0-circle\",\n  \"numeric-0-circle-outline\",\n  \"numeric-1\",\n  \"numeric-1-box\",\n  \"numeric-1-box-multiple\",\n  \"numeric-1-box-multiple-outline\",\n  \"numeric-1-box-outline\",\n  \"numeric-1-circle\",\n  \"numeric-1-circle-outline\",\n  \"numeric-10\",\n  \"numeric-10-box\",\n  \"numeric-10-box-multiple\",\n  \"numeric-10-box-multiple-outline\",\n  \"numeric-10-box-outline\",\n  \"numeric-10-circle\",\n  \"numeric-10-circle-outline\",\n  \"numeric-2\",\n  \"numeric-2-box\",\n  \"numeric-2-box-multiple\",\n  \"numeric-2-box-multiple-outline\",\n  \"numeric-2-box-outline\",\n  \"numeric-2-circle\",\n  \"numeric-2-circle-outline\",\n  \"numeric-3\",\n  \"numeric-3-box\",\n  \"numeric-3-box-multiple\",\n  \"numeric-3-box-multiple-outline\",\n  \"numeric-3-box-outline\",\n  \"numeric-3-circle\",\n  \"numeric-3-circle-outline\",\n  \"numeric-4\",\n  \"numeric-4-box\",\n  \"numeric-4-box-multiple\",\n  \"numeric-4-box-multiple-outline\",\n  \"numeric-4-box-outline\",\n  \"numeric-4-circle\",\n  \"numeric-4-circle-outline\",\n  \"numeric-5\",\n  \"numeric-5-box\",\n  \"numeric-5-box-multiple\",\n  \"numeric-5-box-multiple-outline\",\n  \"numeric-5-box-outline\",\n  \"numeric-5-circle\",\n  \"numeric-5-circle-outline\",\n  \"numeric-6\",\n  \"numeric-6-box\",\n  \"numeric-6-box-multiple\",\n  \"numeric-6-box-multiple-outline\",\n  \"numeric-6-box-outline\",\n  \"numeric-6-circle\",\n  \"numeric-6-circle-outline\",\n  \"numeric-7\",\n  \"numeric-7-box\",\n  \"numeric-7-box-multiple\",\n  \"numeric-7-box-multiple-outline\",\n  \"numeric-7-box-outline\",\n  \"numeric-7-circle\",\n  \"numeric-7-circle-outline\",\n  \"numeric-8\",\n  \"numeric-8-box\",\n  \"numeric-8-box-multiple\",\n  \"numeric-8-box-multiple-outline\",\n  \"numeric-8-box-outline\",\n  \"numeric-8-circle\",\n  \"numeric-8-circle-outline\",\n  \"numeric-9\",\n  \"numeric-9-box\",\n  \"numeric-9-box-multiple\",\n  \"numeric-9-box-multiple-outline\",\n  \"numeric-9-box-outline\",\n  \"numeric-9-circle\",\n  \"numeric-9-circle-outline\",\n  \"numeric-9-plus\",\n  \"numeric-9-plus-box\",\n  \"numeric-9-plus-box-multiple\",\n  \"numeric-9-plus-box-multiple-outline\",\n  \"numeric-9-plus-box-outline\",\n  \"numeric-9-plus-circle\",\n  \"numeric-9-plus-circle-outline\",\n  \"numeric-negative-1\",\n  \"nut\",\n  \"nutrition\",\n  \"nuxt\",\n  \"oar\",\n  \"ocarina\",\n  \"oci\",\n  \"ocr\",\n  \"octagon\",\n  \"octagon-outline\",\n  \"octagram\",\n  \"octagram-outline\",\n  \"odnoklassniki\",\n  \"offer\",\n  \"office-building\",\n  \"oil\",\n  \"oil-lamp\",\n  \"oil-level\",\n  \"oil-temperature\",\n  \"omega\",\n  \"one-up\",\n  \"onepassword\",\n  \"opacity\",\n  \"open-in-app\",\n  \"open-in-new\",\n  \"open-source-initiative\",\n  \"openid\",\n  \"opera\",\n  \"orbit\",\n  \"order-alphabetical-ascending\",\n  \"order-alphabetical-descending\",\n  \"order-bool-ascending\",\n  \"order-bool-ascending-variant\",\n  \"order-bool-descending\",\n  \"order-bool-descending-variant\",\n  \"order-numeric-ascending\",\n  \"order-numeric-descending\",\n  \"origin\",\n  \"ornament\",\n  \"ornament-variant\",\n  \"outdoor-lamp\",\n  \"overscan\",\n  \"owl\",\n  \"pac-man\",\n  \"package\",\n  \"package-down\",\n  \"package-up\",\n  \"package-variant\",\n  \"package-variant-closed\",\n  \"page-first\",\n  \"page-last\",\n  \"page-layout-body\",\n  \"page-layout-footer\",\n  \"page-layout-header\",\n  \"page-layout-header-footer\",\n  \"page-layout-sidebar-left\",\n  \"page-layout-sidebar-right\",\n  \"page-next\",\n  \"page-next-outline\",\n  \"page-previous\",\n  \"page-previous-outline\",\n  \"palette\",\n  \"palette-advanced\",\n  \"palette-outline\",\n  \"palette-swatch\",\n  \"palette-swatch-outline\",\n  \"palm-tree\",\n  \"pan\",\n  \"pan-bottom-left\",\n  \"pan-bottom-right\",\n  \"pan-down\",\n  \"pan-horizontal\",\n  \"pan-left\",\n  \"pan-right\",\n  \"pan-top-left\",\n  \"pan-top-right\",\n  \"pan-up\",\n  \"pan-vertical\",\n  \"panda\",\n  \"pandora\",\n  \"panorama\",\n  \"panorama-fisheye\",\n  \"panorama-horizontal\",\n  \"panorama-vertical\",\n  \"panorama-wide-angle\",\n  \"paper-cut-vertical\",\n  \"paper-roll\",\n  \"paper-roll-outline\",\n  \"paperclip\",\n  \"parachute\",\n  \"parachute-outline\",\n  \"parking\",\n  \"party-popper\",\n  \"passport\",\n  \"passport-biometric\",\n  \"pasta\",\n  \"patio-heater\",\n  \"patreon\",\n  \"pause\",\n  \"pause-circle\",\n  \"pause-circle-outline\",\n  \"pause-octagon\",\n  \"pause-octagon-outline\",\n  \"paw\",\n  \"paw-off\",\n  \"pdf-box\",\n  \"peace\",\n  \"peanut\",\n  \"peanut-off\",\n  \"peanut-off-outline\",\n  \"peanut-outline\",\n  \"pen\",\n  \"pen-lock\",\n  \"pen-minus\",\n  \"pen-off\",\n  \"pen-plus\",\n  \"pen-remove\",\n  \"pencil\",\n  \"pencil-box\",\n  \"pencil-box-multiple\",\n  \"pencil-box-multiple-outline\",\n  \"pencil-box-outline\",\n  \"pencil-circle\",\n  \"pencil-circle-outline\",\n  \"pencil-lock\",\n  \"pencil-lock-outline\",\n  \"pencil-minus\",\n  \"pencil-minus-outline\",\n  \"pencil-off\",\n  \"pencil-off-outline\",\n  \"pencil-outline\",\n  \"pencil-plus\",\n  \"pencil-plus-outline\",\n  \"pencil-remove\",\n  \"pencil-remove-outline\",\n  \"pencil-ruler\",\n  \"penguin\",\n  \"pentagon\",\n  \"pentagon-outline\",\n  \"percent\",\n  \"percent-outline\",\n  \"periodic-table\",\n  \"perspective-less\",\n  \"perspective-more\",\n  \"pharmacy\",\n  \"phone\",\n  \"phone-alert\",\n  \"phone-alert-outline\",\n  \"phone-bluetooth\",\n  \"phone-bluetooth-outline\",\n  \"phone-cancel\",\n  \"phone-cancel-outline\",\n  \"phone-check\",\n  \"phone-check-outline\",\n  \"phone-classic\",\n  \"phone-classic-off\",\n  \"phone-forward\",\n  \"phone-forward-outline\",\n  \"phone-hangup\",\n  \"phone-hangup-outline\",\n  \"phone-in-talk\",\n  \"phone-in-talk-outline\",\n  \"phone-incoming\",\n  \"phone-incoming-outline\",\n  \"phone-lock\",\n  \"phone-lock-outline\",\n  \"phone-log\",\n  \"phone-log-outline\",\n  \"phone-message\",\n  \"phone-message-outline\",\n  \"phone-minus\",\n  \"phone-minus-outline\",\n  \"phone-missed\",\n  \"phone-missed-outline\",\n  \"phone-off\",\n  \"phone-off-outline\",\n  \"phone-outgoing\",\n  \"phone-outgoing-outline\",\n  \"phone-outline\",\n  \"phone-paused\",\n  \"phone-paused-outline\",\n  \"phone-plus\",\n  \"phone-plus-outline\",\n  \"phone-return\",\n  \"phone-return-outline\",\n  \"phone-ring\",\n  \"phone-ring-outline\",\n  \"phone-rotate-landscape\",\n  \"phone-rotate-portrait\",\n  \"phone-settings\",\n  \"phone-settings-outline\",\n  \"phone-voip\",\n  \"pi\",\n  \"pi-box\",\n  \"pi-hole\",\n  \"piano\",\n  \"pickaxe\",\n  \"picture-in-picture-bottom-right\",\n  \"picture-in-picture-bottom-right-outline\",\n  \"picture-in-picture-top-right\",\n  \"picture-in-picture-top-right-outline\",\n  \"pier\",\n  \"pier-crane\",\n  \"pig\",\n  \"pig-variant\",\n  \"piggy-bank\",\n  \"pill\",\n  \"pillar\",\n  \"pin\",\n  \"pin-off\",\n  \"pin-off-outline\",\n  \"pin-outline\",\n  \"pine-tree\",\n  \"pine-tree-box\",\n  \"pinterest\",\n  \"pinwheel\",\n  \"pinwheel-outline\",\n  \"pipe\",\n  \"pipe-disconnected\",\n  \"pipe-leak\",\n  \"pipe-wrench\",\n  \"pirate\",\n  \"pistol\",\n  \"piston\",\n  \"pizza\",\n  \"play\",\n  \"play-box\",\n  \"play-box-multiple\",\n  \"play-box-outline\",\n  \"play-circle\",\n  \"play-circle-outline\",\n  \"play-network\",\n  \"play-network-outline\",\n  \"play-outline\",\n  \"play-pause\",\n  \"play-protected-content\",\n  \"play-speed\",\n  \"playlist-check\",\n  \"playlist-edit\",\n  \"playlist-minus\",\n  \"playlist-music\",\n  \"playlist-music-outline\",\n  \"playlist-play\",\n  \"playlist-plus\",\n  \"playlist-remove\",\n  \"playlist-star\",\n  \"plex\",\n  \"plus\",\n  \"plus-box\",\n  \"plus-box-multiple\",\n  \"plus-box-multiple-outline\",\n  \"plus-box-outline\",\n  \"plus-circle\",\n  \"plus-circle-multiple\",\n  \"plus-circle-multiple-outline\",\n  \"plus-circle-outline\",\n  \"plus-minus\",\n  \"plus-minus-box\",\n  \"plus-network\",\n  \"plus-network-outline\",\n  \"plus-one\",\n  \"plus-outline\",\n  \"plus-thick\",\n  \"podcast\",\n  \"podium\",\n  \"podium-bronze\",\n  \"podium-gold\",\n  \"podium-silver\",\n  \"point-of-sale\",\n  \"pokeball\",\n  \"pokemon-go\",\n  \"poker-chip\",\n  \"polaroid\",\n  \"police-badge\",\n  \"police-badge-outline\",\n  \"poll\",\n  \"poll-box\",\n  \"poll-box-outline\",\n  \"polymer\",\n  \"pool\",\n  \"popcorn\",\n  \"post\",\n  \"post-outline\",\n  \"postage-stamp\",\n  \"pot\",\n  \"pot-mix\",\n  \"pot-mix-outline\",\n  \"pot-outline\",\n  \"pot-steam\",\n  \"pot-steam-outline\",\n  \"pound\",\n  \"pound-box\",\n  \"pound-box-outline\",\n  \"power\",\n  \"power-cycle\",\n  \"power-off\",\n  \"power-on\",\n  \"power-plug\",\n  \"power-plug-off\",\n  \"power-settings\",\n  \"power-sleep\",\n  \"power-socket\",\n  \"power-socket-au\",\n  \"power-socket-de\",\n  \"power-socket-eu\",\n  \"power-socket-fr\",\n  \"power-socket-jp\",\n  \"power-socket-uk\",\n  \"power-socket-us\",\n  \"power-standby\",\n  \"powershell\",\n  \"prescription\",\n  \"presentation\",\n  \"presentation-play\",\n  \"printer\",\n  \"printer-3d\",\n  \"printer-3d-nozzle\",\n  \"printer-3d-nozzle-alert\",\n  \"printer-3d-nozzle-alert-outline\",\n  \"printer-3d-nozzle-outline\",\n  \"printer-alert\",\n  \"printer-check\",\n  \"printer-off\",\n  \"printer-pos\",\n  \"printer-settings\",\n  \"printer-wireless\",\n  \"priority-high\",\n  \"priority-low\",\n  \"professional-hexagon\",\n  \"progress-alert\",\n  \"progress-check\",\n  \"progress-clock\",\n  \"progress-close\",\n  \"progress-download\",\n  \"progress-upload\",\n  \"progress-wrench\",\n  \"projector\",\n  \"projector-screen\",\n  \"propane-tank\",\n  \"propane-tank-outline\",\n  \"protocol\",\n  \"publish\",\n  \"pulse\",\n  \"pumpkin\",\n  \"purse\",\n  \"purse-outline\",\n  \"puzzle\",\n  \"puzzle-outline\",\n  \"qi\",\n  \"qqchat\",\n  \"qrcode\",\n  \"qrcode-edit\",\n  \"qrcode-minus\",\n  \"qrcode-plus\",\n  \"qrcode-remove\",\n  \"qrcode-scan\",\n  \"quadcopter\",\n  \"quality-high\",\n  \"quality-low\",\n  \"quality-medium\",\n  \"quora\",\n  \"rabbit\",\n  \"racing-helmet\",\n  \"racquetball\",\n  \"radar\",\n  \"radiator\",\n  \"radiator-disabled\",\n  \"radiator-off\",\n  \"radio\",\n  \"radio-am\",\n  \"radio-fm\",\n  \"radio-handheld\",\n  \"radio-off\",\n  \"radio-tower\",\n  \"radioactive\",\n  \"radioactive-off\",\n  \"radiobox-blank\",\n  \"radiobox-marked\",\n  \"radius\",\n  \"radius-outline\",\n  \"railroad-light\",\n  \"raspberry-pi\",\n  \"ray-end\",\n  \"ray-end-arrow\",\n  \"ray-start\",\n  \"ray-start-arrow\",\n  \"ray-start-end\",\n  \"ray-vertex\",\n  \"react\",\n  \"read\",\n  \"receipt\",\n  \"record\",\n  \"record-circle\",\n  \"record-circle-outline\",\n  \"record-player\",\n  \"record-rec\",\n  \"rectangle\",\n  \"rectangle-outline\",\n  \"recycle\",\n  \"recycle-variant\",\n  \"reddit\",\n  \"redhat\",\n  \"redo\",\n  \"redo-variant\",\n  \"reflect-horizontal\",\n  \"reflect-vertical\",\n  \"refresh\",\n  \"refresh-circle\",\n  \"regex\",\n  \"registered-trademark\",\n  \"relative-scale\",\n  \"reload\",\n  \"reload-alert\",\n  \"reminder\",\n  \"remote\",\n  \"remote-desktop\",\n  \"remote-off\",\n  \"remote-tv\",\n  \"remote-tv-off\",\n  \"rename-box\",\n  \"reorder-horizontal\",\n  \"reorder-vertical\",\n  \"repeat\",\n  \"repeat-off\",\n  \"repeat-once\",\n  \"replay\",\n  \"reply\",\n  \"reply-all\",\n  \"reply-all-outline\",\n  \"reply-circle\",\n  \"reply-outline\",\n  \"reproduction\",\n  \"resistor\",\n  \"resistor-nodes\",\n  \"resize\",\n  \"resize-bottom-right\",\n  \"responsive\",\n  \"restart\",\n  \"restart-alert\",\n  \"restart-off\",\n  \"restore\",\n  \"restore-alert\",\n  \"rewind\",\n  \"rewind-10\",\n  \"rewind-30\",\n  \"rewind-5\",\n  \"rewind-outline\",\n  \"rhombus\",\n  \"rhombus-medium\",\n  \"rhombus-outline\",\n  \"rhombus-split\",\n  \"ribbon\",\n  \"rice\",\n  \"ring\",\n  \"rivet\",\n  \"road\",\n  \"road-variant\",\n  \"robber\",\n  \"robot\",\n  \"robot-industrial\",\n  \"robot-mower\",\n  \"robot-mower-outline\",\n  \"robot-vacuum\",\n  \"robot-vacuum-variant\",\n  \"rocket\",\n  \"rocket-outline\",\n  \"rodent\",\n  \"roller-skate\",\n  \"roller-skate-off\",\n  \"rollerblade\",\n  \"rollerblade-off\",\n  \"rollupjs\",\n  \"roman-numeral-1\",\n  \"roman-numeral-10\",\n  \"roman-numeral-2\",\n  \"roman-numeral-3\",\n  \"roman-numeral-4\",\n  \"roman-numeral-5\",\n  \"roman-numeral-6\",\n  \"roman-numeral-7\",\n  \"roman-numeral-8\",\n  \"roman-numeral-9\",\n  \"room-service\",\n  \"room-service-outline\",\n  \"rotate-3d\",\n  \"rotate-3d-variant\",\n  \"rotate-left\",\n  \"rotate-left-variant\",\n  \"rotate-orbit\",\n  \"rotate-right\",\n  \"rotate-right-variant\",\n  \"rounded-corner\",\n  \"router\",\n  \"router-network\",\n  \"router-wireless\",\n  \"router-wireless-settings\",\n  \"routes\",\n  \"routes-clock\",\n  \"rowing\",\n  \"rss\",\n  \"rss-box\",\n  \"rss-off\",\n  \"rugby\",\n  \"ruler\",\n  \"ruler-square\",\n  \"ruler-square-compass\",\n  \"run\",\n  \"run-fast\",\n  \"rv-truck\",\n  \"sack\",\n  \"sack-percent\",\n  \"safe\",\n  \"safe-square\",\n  \"safe-square-outline\",\n  \"safety-goggles\",\n  \"sail-boat\",\n  \"sale\",\n  \"salesforce\",\n  \"sass\",\n  \"satellite\",\n  \"satellite-uplink\",\n  \"satellite-variant\",\n  \"sausage\",\n  \"saw-blade\",\n  \"saxophone\",\n  \"scale\",\n  \"scale-balance\",\n  \"scale-bathroom\",\n  \"scale-off\",\n  \"scanner\",\n  \"scanner-off\",\n  \"scatter-plot\",\n  \"scatter-plot-outline\",\n  \"school\",\n  \"school-outline\",\n  \"scissors-cutting\",\n  \"scooter\",\n  \"scoreboard\",\n  \"scoreboard-outline\",\n  \"screen-rotation\",\n  \"screen-rotation-lock\",\n  \"screw-flat-top\",\n  \"screw-lag\",\n  \"screw-machine-flat-top\",\n  \"screw-machine-round-top\",\n  \"screw-round-top\",\n  \"screwdriver\",\n  \"script\",\n  \"script-outline\",\n  \"script-text\",\n  \"script-text-outline\",\n  \"sd\",\n  \"seal\",\n  \"seal-variant\",\n  \"search-web\",\n  \"seat\",\n  \"seat-flat\",\n  \"seat-flat-angled\",\n  \"seat-individual-suite\",\n  \"seat-legroom-extra\",\n  \"seat-legroom-normal\",\n  \"seat-legroom-reduced\",\n  \"seat-outline\",\n  \"seat-passenger\",\n  \"seat-recline-extra\",\n  \"seat-recline-normal\",\n  \"seatbelt\",\n  \"security\",\n  \"security-network\",\n  \"seed\",\n  \"seed-outline\",\n  \"segment\",\n  \"select\",\n  \"select-all\",\n  \"select-color\",\n  \"select-compare\",\n  \"select-drag\",\n  \"select-group\",\n  \"select-inverse\",\n  \"select-marker\",\n  \"select-multiple\",\n  \"select-multiple-marker\",\n  \"select-off\",\n  \"select-place\",\n  \"select-search\",\n  \"selection\",\n  \"selection-drag\",\n  \"selection-ellipse\",\n  \"selection-ellipse-arrow-inside\",\n  \"selection-marker\",\n  \"selection-multiple-marker\",\n  \"selection-mutliple\",\n  \"selection-off\",\n  \"selection-search\",\n  \"semantic-web\",\n  \"send\",\n  \"send-check\",\n  \"send-check-outline\",\n  \"send-circle\",\n  \"send-circle-outline\",\n  \"send-clock\",\n  \"send-clock-outline\",\n  \"send-lock\",\n  \"send-lock-outline\",\n  \"send-outline\",\n  \"serial-port\",\n  \"server\",\n  \"server-minus\",\n  \"server-network\",\n  \"server-network-off\",\n  \"server-off\",\n  \"server-plus\",\n  \"server-remove\",\n  \"server-security\",\n  \"set-all\",\n  \"set-center\",\n  \"set-center-right\",\n  \"set-left\",\n  \"set-left-center\",\n  \"set-left-right\",\n  \"set-none\",\n  \"set-right\",\n  \"set-top-box\",\n  \"settings-helper\",\n  \"shaker\",\n  \"shaker-outline\",\n  \"shape\",\n  \"shape-circle-plus\",\n  \"shape-outline\",\n  \"shape-oval-plus\",\n  \"shape-plus\",\n  \"shape-polygon-plus\",\n  \"shape-rectangle-plus\",\n  \"shape-square-plus\",\n  \"share\",\n  \"share-all\",\n  \"share-all-outline\",\n  \"share-circle\",\n  \"share-off\",\n  \"share-off-outline\",\n  \"share-outline\",\n  \"share-variant\",\n  \"sheep\",\n  \"shield\",\n  \"shield-account\",\n  \"shield-account-outline\",\n  \"shield-airplane\",\n  \"shield-airplane-outline\",\n  \"shield-alert\",\n  \"shield-alert-outline\",\n  \"shield-car\",\n  \"shield-check\",\n  \"shield-check-outline\",\n  \"shield-cross\",\n  \"shield-cross-outline\",\n  \"shield-edit\",\n  \"shield-edit-outline\",\n  \"shield-half\",\n  \"shield-half-full\",\n  \"shield-home\",\n  \"shield-home-outline\",\n  \"shield-key\",\n  \"shield-key-outline\",\n  \"shield-link-variant\",\n  \"shield-link-variant-outline\",\n  \"shield-lock\",\n  \"shield-lock-outline\",\n  \"shield-off\",\n  \"shield-off-outline\",\n  \"shield-outline\",\n  \"shield-plus\",\n  \"shield-plus-outline\",\n  \"shield-refresh\",\n  \"shield-refresh-outline\",\n  \"shield-remove\",\n  \"shield-remove-outline\",\n  \"shield-search\",\n  \"shield-star\",\n  \"shield-star-outline\",\n  \"shield-sun\",\n  \"shield-sun-outline\",\n  \"shield-sync\",\n  \"shield-sync-outline\",\n  \"ship-wheel\",\n  \"shoe-formal\",\n  \"shoe-heel\",\n  \"shoe-print\",\n  \"shopping\",\n  \"shopping-music\",\n  \"shopping-outline\",\n  \"shopping-search\",\n  \"shovel\",\n  \"shovel-off\",\n  \"shower\",\n  \"shower-head\",\n  \"shredder\",\n  \"shuffle\",\n  \"shuffle-disabled\",\n  \"shuffle-variant\",\n  \"shuriken\",\n  \"sigma\",\n  \"sigma-lower\",\n  \"sign-caution\",\n  \"sign-direction\",\n  \"sign-direction-minus\",\n  \"sign-direction-plus\",\n  \"sign-direction-remove\",\n  \"sign-real-estate\",\n  \"sign-text\",\n  \"signal\",\n  \"signal-2g\",\n  \"signal-3g\",\n  \"signal-4g\",\n  \"signal-5g\",\n  \"signal-cellular-1\",\n  \"signal-cellular-2\",\n  \"signal-cellular-3\",\n  \"signal-cellular-outline\",\n  \"signal-distance-variant\",\n  \"signal-hspa\",\n  \"signal-hspa-plus\",\n  \"signal-off\",\n  \"signal-variant\",\n  \"signature\",\n  \"signature-freehand\",\n  \"signature-image\",\n  \"signature-text\",\n  \"silo\",\n  \"silverware\",\n  \"silverware-clean\",\n  \"silverware-fork\",\n  \"silverware-fork-knife\",\n  \"silverware-spoon\",\n  \"silverware-variant\",\n  \"sim\",\n  \"sim-alert\",\n  \"sim-off\",\n  \"simple-icons\",\n  \"sina-weibo\",\n  \"sitemap\",\n  \"size-l\",\n  \"size-m\",\n  \"size-s\",\n  \"size-xl\",\n  \"size-xs\",\n  \"size-xxl\",\n  \"size-xxs\",\n  \"size-xxxl\",\n  \"skate\",\n  \"skew-less\",\n  \"skew-more\",\n  \"ski\",\n  \"ski-cross-country\",\n  \"ski-water\",\n  \"skip-backward\",\n  \"skip-backward-outline\",\n  \"skip-forward\",\n  \"skip-forward-outline\",\n  \"skip-next\",\n  \"skip-next-circle\",\n  \"skip-next-circle-outline\",\n  \"skip-next-outline\",\n  \"skip-previous\",\n  \"skip-previous-circle\",\n  \"skip-previous-circle-outline\",\n  \"skip-previous-outline\",\n  \"skull\",\n  \"skull-crossbones\",\n  \"skull-crossbones-outline\",\n  \"skull-outline\",\n  \"skype\",\n  \"skype-business\",\n  \"slack\",\n  \"slash-forward\",\n  \"slash-forward-box\",\n  \"sleep\",\n  \"sleep-off\",\n  \"slope-downhill\",\n  \"slope-uphill\",\n  \"slot-machine\",\n  \"slot-machine-outline\",\n  \"smart-card\",\n  \"smart-card-outline\",\n  \"smart-card-reader\",\n  \"smart-card-reader-outline\",\n  \"smog\",\n  \"smoke-detector\",\n  \"smoking\",\n  \"smoking-off\",\n  \"snapchat\",\n  \"snowboard\",\n  \"snowflake\",\n  \"snowflake-alert\",\n  \"snowflake-melt\",\n  \"snowflake-variant\",\n  \"snowman\",\n  \"soccer\",\n  \"soccer-field\",\n  \"sofa\",\n  \"solar-panel\",\n  \"solar-panel-large\",\n  \"solar-power\",\n  \"soldering-iron\",\n  \"solid\",\n  \"sony-playstation\",\n  \"sort\",\n  \"sort-alphabetical-ascending\",\n  \"sort-alphabetical-ascending-variant\",\n  \"sort-alphabetical-descending\",\n  \"sort-alphabetical-descending-variant\",\n  \"sort-alphabetical-variant\",\n  \"sort-ascending\",\n  \"sort-bool-ascending\",\n  \"sort-bool-ascending-variant\",\n  \"sort-bool-descending\",\n  \"sort-bool-descending-variant\",\n  \"sort-descending\",\n  \"sort-numeric-ascending\",\n  \"sort-numeric-ascending-variant\",\n  \"sort-numeric-descending\",\n  \"sort-numeric-descending-variant\",\n  \"sort-numeric-variant\",\n  \"sort-reverse-variant\",\n  \"sort-variant\",\n  \"sort-variant-lock\",\n  \"sort-variant-lock-open\",\n  \"sort-variant-remove\",\n  \"soundcloud\",\n  \"source-branch\",\n  \"source-commit\",\n  \"source-commit-end\",\n  \"source-commit-end-local\",\n  \"source-commit-local\",\n  \"source-commit-next-local\",\n  \"source-commit-start\",\n  \"source-commit-start-next-local\",\n  \"source-fork\",\n  \"source-merge\",\n  \"source-pull\",\n  \"source-repository\",\n  \"source-repository-multiple\",\n  \"soy-sauce\",\n  \"spa\",\n  \"spa-outline\",\n  \"space-invaders\",\n  \"space-station\",\n  \"spade\",\n  \"speaker\",\n  \"speaker-bluetooth\",\n  \"speaker-multiple\",\n  \"speaker-off\",\n  \"speaker-wireless\",\n  \"speedometer\",\n  \"speedometer-medium\",\n  \"speedometer-slow\",\n  \"spellcheck\",\n  \"spider\",\n  \"spider-thread\",\n  \"spider-web\",\n  \"spotify\",\n  \"spotlight\",\n  \"spotlight-beam\",\n  \"spray\",\n  \"spray-bottle\",\n  \"sprinkler\",\n  \"sprinkler-variant\",\n  \"sprout\",\n  \"sprout-outline\",\n  \"square\",\n  \"square-edit-outline\",\n  \"square-medium\",\n  \"square-medium-outline\",\n  \"square-off\",\n  \"square-off-outline\",\n  \"square-outline\",\n  \"square-root\",\n  \"square-root-box\",\n  \"square-small\",\n  \"squeegee\",\n  \"ssh\",\n  \"stack-exchange\",\n  \"stack-overflow\",\n  \"stackpath\",\n  \"stadium\",\n  \"stadium-variant\",\n  \"stairs\",\n  \"stairs-box\",\n  \"stairs-down\",\n  \"stairs-up\",\n  \"stamper\",\n  \"standard-definition\",\n  \"star\",\n  \"star-box\",\n  \"star-box-multiple\",\n  \"star-box-multiple-outline\",\n  \"star-box-outline\",\n  \"star-circle\",\n  \"star-circle-outline\",\n  \"star-face\",\n  \"star-four-points\",\n  \"star-four-points-outline\",\n  \"star-half\",\n  \"star-half-full\",\n  \"star-off\",\n  \"star-outline\",\n  \"star-three-points\",\n  \"star-three-points-outline\",\n  \"state-machine\",\n  \"steam\",\n  \"steering\",\n  \"steering-off\",\n  \"step-backward\",\n  \"step-backward-2\",\n  \"step-forward\",\n  \"step-forward-2\",\n  \"stethoscope\",\n  \"sticker\",\n  \"sticker-alert\",\n  \"sticker-alert-outline\",\n  \"sticker-check\",\n  \"sticker-check-outline\",\n  \"sticker-circle-outline\",\n  \"sticker-emoji\",\n  \"sticker-minus\",\n  \"sticker-minus-outline\",\n  \"sticker-outline\",\n  \"sticker-plus\",\n  \"sticker-plus-outline\",\n  \"sticker-remove\",\n  \"sticker-remove-outline\",\n  \"stocking\",\n  \"stomach\",\n  \"stop\",\n  \"stop-circle\",\n  \"stop-circle-outline\",\n  \"store\",\n  \"store-24-hour\",\n  \"store-outline\",\n  \"storefront\",\n  \"storefront-outline\",\n  \"stove\",\n  \"strategy\",\n  \"stretch-to-page\",\n  \"stretch-to-page-outline\",\n  \"string-lights\",\n  \"string-lights-off\",\n  \"subdirectory-arrow-left\",\n  \"subdirectory-arrow-right\",\n  \"subtitles\",\n  \"subtitles-outline\",\n  \"subway\",\n  \"subway-alert-variant\",\n  \"subway-variant\",\n  \"summit\",\n  \"sunglasses\",\n  \"surround-sound\",\n  \"surround-sound-2-0\",\n  \"surround-sound-3-1\",\n  \"surround-sound-5-1\",\n  \"surround-sound-7-1\",\n  \"svg\",\n  \"swap-horizontal\",\n  \"swap-horizontal-bold\",\n  \"swap-horizontal-circle\",\n  \"swap-horizontal-circle-outline\",\n  \"swap-horizontal-variant\",\n  \"swap-vertical\",\n  \"swap-vertical-bold\",\n  \"swap-vertical-circle\",\n  \"swap-vertical-circle-outline\",\n  \"swap-vertical-variant\",\n  \"swim\",\n  \"switch\",\n  \"sword\",\n  \"sword-cross\",\n  \"syllabary-hangul\",\n  \"syllabary-hiragana\",\n  \"syllabary-katakana\",\n  \"syllabary-katakana-half-width\",\n  \"symfony\",\n  \"sync\",\n  \"sync-alert\",\n  \"sync-circle\",\n  \"sync-off\",\n  \"tab\",\n  \"tab-minus\",\n  \"tab-plus\",\n  \"tab-remove\",\n  \"tab-unselected\",\n  \"table\",\n  \"table-border\",\n  \"table-chair\",\n  \"table-column\",\n  \"table-column-plus-after\",\n  \"table-column-plus-before\",\n  \"table-column-remove\",\n  \"table-column-width\",\n  \"table-edit\",\n  \"table-eye\",\n  \"table-furniture\",\n  \"table-headers-eye\",\n  \"table-headers-eye-off\",\n  \"table-large\",\n  \"table-large-plus\",\n  \"table-large-remove\",\n  \"table-merge-cells\",\n  \"table-of-contents\",\n  \"table-plus\",\n  \"table-refresh\",\n  \"table-remove\",\n  \"table-row\",\n  \"table-row-height\",\n  \"table-row-plus-after\",\n  \"table-row-plus-before\",\n  \"table-row-remove\",\n  \"table-search\",\n  \"table-settings\",\n  \"table-sync\",\n  \"table-tennis\",\n  \"tablet\",\n  \"tablet-android\",\n  \"tablet-cellphone\",\n  \"tablet-dashboard\",\n  \"tablet-ipad\",\n  \"taco\",\n  \"tag\",\n  \"tag-faces\",\n  \"tag-heart\",\n  \"tag-heart-outline\",\n  \"tag-minus\",\n  \"tag-minus-outline\",\n  \"tag-multiple\",\n  \"tag-multiple-outline\",\n  \"tag-off\",\n  \"tag-off-outline\",\n  \"tag-outline\",\n  \"tag-plus\",\n  \"tag-plus-outline\",\n  \"tag-remove\",\n  \"tag-remove-outline\",\n  \"tag-text\",\n  \"tag-text-outline\",\n  \"tank\",\n  \"tanker-truck\",\n  \"tape-measure\",\n  \"target\",\n  \"target-account\",\n  \"target-variant\",\n  \"taxi\",\n  \"tea\",\n  \"tea-outline\",\n  \"teach\",\n  \"teamviewer\",\n  \"telegram\",\n  \"telescope\",\n  \"television\",\n  \"television-ambient-light\",\n  \"television-box\",\n  \"television-classic\",\n  \"television-classic-off\",\n  \"television-clean\",\n  \"television-guide\",\n  \"television-off\",\n  \"television-pause\",\n  \"television-play\",\n  \"television-stop\",\n  \"temperature-celsius\",\n  \"temperature-fahrenheit\",\n  \"temperature-kelvin\",\n  \"tennis\",\n  \"tennis-ball\",\n  \"tent\",\n  \"terraform\",\n  \"terrain\",\n  \"test-tube\",\n  \"test-tube-empty\",\n  \"test-tube-off\",\n  \"text\",\n  \"text-box\",\n  \"text-box-check\",\n  \"text-box-check-outline\",\n  \"text-box-minus\",\n  \"text-box-minus-outline\",\n  \"text-box-multiple\",\n  \"text-box-multiple-outline\",\n  \"text-box-outline\",\n  \"text-box-plus\",\n  \"text-box-plus-outline\",\n  \"text-box-remove\",\n  \"text-box-remove-outline\",\n  \"text-box-search\",\n  \"text-box-search-outline\",\n  \"text-recognition\",\n  \"text-shadow\",\n  \"text-short\",\n  \"text-subject\",\n  \"text-to-speech\",\n  \"text-to-speech-off\",\n  \"textarea\",\n  \"textbox\",\n  \"textbox-lock\",\n  \"textbox-password\",\n  \"texture\",\n  \"texture-box\",\n  \"theater\",\n  \"theme-light-dark\",\n  \"thermometer\",\n  \"thermometer-alert\",\n  \"thermometer-chevron-down\",\n  \"thermometer-chevron-up\",\n  \"thermometer-high\",\n  \"thermometer-lines\",\n  \"thermometer-low\",\n  \"thermometer-minus\",\n  \"thermometer-plus\",\n  \"thermostat\",\n  \"thermostat-box\",\n  \"thought-bubble\",\n  \"thought-bubble-outline\",\n  \"thumb-down\",\n  \"thumb-down-outline\",\n  \"thumb-up\",\n  \"thumb-up-outline\",\n  \"thumbs-up-down\",\n  \"ticket\",\n  \"ticket-account\",\n  \"ticket-confirmation\",\n  \"ticket-confirmation-outline\",\n  \"ticket-outline\",\n  \"ticket-percent\",\n  \"tie\",\n  \"tilde\",\n  \"timelapse\",\n  \"timeline\",\n  \"timeline-alert\",\n  \"timeline-alert-outline\",\n  \"timeline-clock\",\n  \"timeline-clock-outline\",\n  \"timeline-help\",\n  \"timeline-help-outline\",\n  \"timeline-outline\",\n  \"timeline-plus\",\n  \"timeline-plus-outline\",\n  \"timeline-text\",\n  \"timeline-text-outline\",\n  \"timer\",\n  \"timer-10\",\n  \"timer-3\",\n  \"timer-off\",\n  \"timer-off-outline\",\n  \"timer-outline\",\n  \"timer-sand\",\n  \"timer-sand-empty\",\n  \"timer-sand-full\",\n  \"timetable\",\n  \"toaster\",\n  \"toaster-off\",\n  \"toaster-oven\",\n  \"toggle-switch\",\n  \"toggle-switch-off\",\n  \"toggle-switch-off-outline\",\n  \"toggle-switch-outline\",\n  \"toilet\",\n  \"toolbox\",\n  \"toolbox-outline\",\n  \"tools\",\n  \"tooltip\",\n  \"tooltip-account\",\n  \"tooltip-edit\",\n  \"tooltip-edit-outline\",\n  \"tooltip-image\",\n  \"tooltip-image-outline\",\n  \"tooltip-outline\",\n  \"tooltip-plus\",\n  \"tooltip-plus-outline\",\n  \"tooltip-text\",\n  \"tooltip-text-outline\",\n  \"tooth\",\n  \"tooth-outline\",\n  \"toothbrush\",\n  \"toothbrush-electric\",\n  \"toothbrush-paste\",\n  \"tortoise\",\n  \"toslink\",\n  \"tournament\",\n  \"tow-truck\",\n  \"tower-beach\",\n  \"tower-fire\",\n  \"toy-brick\",\n  \"toy-brick-marker\",\n  \"toy-brick-marker-outline\",\n  \"toy-brick-minus\",\n  \"toy-brick-minus-outline\",\n  \"toy-brick-outline\",\n  \"toy-brick-plus\",\n  \"toy-brick-plus-outline\",\n  \"toy-brick-remove\",\n  \"toy-brick-remove-outline\",\n  \"toy-brick-search\",\n  \"toy-brick-search-outline\",\n  \"track-light\",\n  \"trackpad\",\n  \"trackpad-lock\",\n  \"tractor\",\n  \"trademark\",\n  \"traffic-cone\",\n  \"traffic-light\",\n  \"train\",\n  \"train-car\",\n  \"train-variant\",\n  \"tram\",\n  \"tram-side\",\n  \"transcribe\",\n  \"transcribe-close\",\n  \"transfer\",\n  \"transfer-down\",\n  \"transfer-left\",\n  \"transfer-right\",\n  \"transfer-up\",\n  \"transit-connection\",\n  \"transit-connection-variant\",\n  \"transit-detour\",\n  \"transit-transfer\",\n  \"transition\",\n  \"transition-masked\",\n  \"translate\",\n  \"translate-off\",\n  \"transmission-tower\",\n  \"trash-can\",\n  \"trash-can-outline\",\n  \"tray\",\n  \"tray-alert\",\n  \"tray-full\",\n  \"tray-minus\",\n  \"tray-plus\",\n  \"tray-remove\",\n  \"treasure-chest\",\n  \"tree\",\n  \"tree-outline\",\n  \"trello\",\n  \"trending-down\",\n  \"trending-neutral\",\n  \"trending-up\",\n  \"triangle\",\n  \"triangle-outline\",\n  \"triforce\",\n  \"trophy\",\n  \"trophy-award\",\n  \"trophy-broken\",\n  \"trophy-outline\",\n  \"trophy-variant\",\n  \"trophy-variant-outline\",\n  \"truck\",\n  \"truck-check\",\n  \"truck-check-outline\",\n  \"truck-delivery\",\n  \"truck-delivery-outline\",\n  \"truck-fast\",\n  \"truck-fast-outline\",\n  \"truck-outline\",\n  \"truck-trailer\",\n  \"trumpet\",\n  \"tshirt-crew\",\n  \"tshirt-crew-outline\",\n  \"tshirt-v\",\n  \"tshirt-v-outline\",\n  \"tumble-dryer\",\n  \"tumble-dryer-alert\",\n  \"tumble-dryer-off\",\n  \"tune\",\n  \"tune-vertical\",\n  \"turnstile\",\n  \"turnstile-outline\",\n  \"turtle\",\n  \"twitch\",\n  \"twitter\",\n  \"twitter-retweet\",\n  \"two-factor-authentication\",\n  \"typewriter\",\n  \"ubisoft\",\n  \"ubuntu\",\n  \"ufo\",\n  \"ufo-outline\",\n  \"ultra-high-definition\",\n  \"umbraco\",\n  \"umbrella\",\n  \"umbrella-closed\",\n  \"umbrella-outline\",\n  \"undo\",\n  \"undo-variant\",\n  \"unfold-less-horizontal\",\n  \"unfold-less-vertical\",\n  \"unfold-more-horizontal\",\n  \"unfold-more-vertical\",\n  \"ungroup\",\n  \"unicode\",\n  \"unity\",\n  \"unreal\",\n  \"untappd\",\n  \"update\",\n  \"upload\",\n  \"upload-lock\",\n  \"upload-lock-outline\",\n  \"upload-multiple\",\n  \"upload-network\",\n  \"upload-network-outline\",\n  \"upload-off\",\n  \"upload-off-outline\",\n  \"upload-outline\",\n  \"usb\",\n  \"usb-flash-drive\",\n  \"usb-flash-drive-outline\",\n  \"usb-port\",\n  \"valve\",\n  \"valve-closed\",\n  \"valve-open\",\n  \"van-passenger\",\n  \"van-utility\",\n  \"vanish\",\n  \"vanity-light\",\n  \"variable\",\n  \"variable-box\",\n  \"vector-arrange-above\",\n  \"vector-arrange-below\",\n  \"vector-bezier\",\n  \"vector-circle\",\n  \"vector-circle-variant\",\n  \"vector-combine\",\n  \"vector-curve\",\n  \"vector-difference\",\n  \"vector-difference-ab\",\n  \"vector-difference-ba\",\n  \"vector-ellipse\",\n  \"vector-intersection\",\n  \"vector-line\",\n  \"vector-link\",\n  \"vector-point\",\n  \"vector-polygon\",\n  \"vector-polyline\",\n  \"vector-polyline-edit\",\n  \"vector-polyline-minus\",\n  \"vector-polyline-plus\",\n  \"vector-polyline-remove\",\n  \"vector-radius\",\n  \"vector-rectangle\",\n  \"vector-selection\",\n  \"vector-square\",\n  \"vector-triangle\",\n  \"vector-union\",\n  \"vhs\",\n  \"vibrate\",\n  \"vibrate-off\",\n  \"video\",\n  \"video-3d\",\n  \"video-3d-variant\",\n  \"video-4k-box\",\n  \"video-account\",\n  \"video-box\",\n  \"video-box-off\",\n  \"video-check\",\n  \"video-check-outline\",\n  \"video-image\",\n  \"video-input-antenna\",\n  \"video-input-component\",\n  \"video-input-hdmi\",\n  \"video-input-scart\",\n  \"video-input-svideo\",\n  \"video-minus\",\n  \"video-minus-outline\",\n  \"video-off\",\n  \"video-off-outline\",\n  \"video-outline\",\n  \"video-plus\",\n  \"video-plus-outline\",\n  \"video-stabilization\",\n  \"video-switch\",\n  \"video-switch-outline\",\n  \"video-vintage\",\n  \"video-wireless\",\n  \"video-wireless-outline\",\n  \"view-agenda\",\n  \"view-agenda-outline\",\n  \"view-array\",\n  \"view-carousel\",\n  \"view-column\",\n  \"view-comfy\",\n  \"view-compact\",\n  \"view-compact-outline\",\n  \"view-dashboard\",\n  \"view-dashboard-outline\",\n  \"view-dashboard-variant\",\n  \"view-day\",\n  \"view-grid\",\n  \"view-grid-outline\",\n  \"view-grid-plus\",\n  \"view-grid-plus-outline\",\n  \"view-headline\",\n  \"view-list\",\n  \"view-module\",\n  \"view-parallel\",\n  \"view-quilt\",\n  \"view-sequential\",\n  \"view-split-horizontal\",\n  \"view-split-vertical\",\n  \"view-stream\",\n  \"view-week\",\n  \"vimeo\",\n  \"violin\",\n  \"virtual-reality\",\n  \"vk\",\n  \"vlc\",\n  \"voice-off\",\n  \"voicemail\",\n  \"volleyball\",\n  \"volume-high\",\n  \"volume-low\",\n  \"volume-medium\",\n  \"volume-minus\",\n  \"volume-mute\",\n  \"volume-off\",\n  \"volume-plus\",\n  \"volume-source\",\n  \"volume-variant-off\",\n  \"volume-vibrate\",\n  \"vote\",\n  \"vote-outline\",\n  \"vpn\",\n  \"vuejs\",\n  \"vuetify\",\n  \"walk\",\n  \"wall\",\n  \"wall-sconce\",\n  \"wall-sconce-flat\",\n  \"wall-sconce-flat-variant\",\n  \"wall-sconce-round\",\n  \"wall-sconce-round-variant\",\n  \"wallet\",\n  \"wallet-giftcard\",\n  \"wallet-membership\",\n  \"wallet-outline\",\n  \"wallet-plus\",\n  \"wallet-plus-outline\",\n  \"wallet-travel\",\n  \"wallpaper\",\n  \"wan\",\n  \"wardrobe\",\n  \"wardrobe-outline\",\n  \"warehouse\",\n  \"washing-machine\",\n  \"washing-machine-alert\",\n  \"washing-machine-off\",\n  \"watch\",\n  \"watch-export\",\n  \"watch-export-variant\",\n  \"watch-import\",\n  \"watch-import-variant\",\n  \"watch-variant\",\n  \"watch-vibrate\",\n  \"watch-vibrate-off\",\n  \"water\",\n  \"water-boiler\",\n  \"water-boiler-alert\",\n  \"water-boiler-off\",\n  \"water-off\",\n  \"water-outline\",\n  \"water-percent\",\n  \"water-polo\",\n  \"water-pump\",\n  \"water-pump-off\",\n  \"water-well\",\n  \"water-well-outline\",\n  \"watermark\",\n  \"wave\",\n  \"waves\",\n  \"waze\",\n  \"weather-cloudy\",\n  \"weather-cloudy-alert\",\n  \"weather-cloudy-arrow-right\",\n  \"weather-fog\",\n  \"weather-hail\",\n  \"weather-hazy\",\n  \"weather-hurricane\",\n  \"weather-lightning\",\n  \"weather-lightning-rainy\",\n  \"weather-night\",\n  \"weather-night-partly-cloudy\",\n  \"weather-partly-cloudy\",\n  \"weather-partly-lightning\",\n  \"weather-partly-rainy\",\n  \"weather-partly-snowy\",\n  \"weather-partly-snowy-rainy\",\n  \"weather-pouring\",\n  \"weather-rainy\",\n  \"weather-snowy\",\n  \"weather-snowy-heavy\",\n  \"weather-snowy-rainy\",\n  \"weather-sunny\",\n  \"weather-sunny-alert\",\n  \"weather-sunset\",\n  \"weather-sunset-down\",\n  \"weather-sunset-up\",\n  \"weather-tornado\",\n  \"weather-windy\",\n  \"weather-windy-variant\",\n  \"web\",\n  \"web-box\",\n  \"web-clock\",\n  \"webcam\",\n  \"webhook\",\n  \"webpack\",\n  \"webrtc\",\n  \"wechat\",\n  \"weight\",\n  \"weight-gram\",\n  \"weight-kilogram\",\n  \"weight-lifter\",\n  \"weight-pound\",\n  \"whatsapp\",\n  \"wheelchair-accessibility\",\n  \"whistle\",\n  \"whistle-outline\",\n  \"white-balance-auto\",\n  \"white-balance-incandescent\",\n  \"white-balance-iridescent\",\n  \"white-balance-sunny\",\n  \"widgets\",\n  \"widgets-outline\",\n  \"wifi\",\n  \"wifi-off\",\n  \"wifi-star\",\n  \"wifi-strength-1\",\n  \"wifi-strength-1-alert\",\n  \"wifi-strength-1-lock\",\n  \"wifi-strength-2\",\n  \"wifi-strength-2-alert\",\n  \"wifi-strength-2-lock\",\n  \"wifi-strength-3\",\n  \"wifi-strength-3-alert\",\n  \"wifi-strength-3-lock\",\n  \"wifi-strength-4\",\n  \"wifi-strength-4-alert\",\n  \"wifi-strength-4-lock\",\n  \"wifi-strength-alert-outline\",\n  \"wifi-strength-lock-outline\",\n  \"wifi-strength-off\",\n  \"wifi-strength-off-outline\",\n  \"wifi-strength-outline\",\n  \"wikipedia\",\n  \"wind-turbine\",\n  \"window-close\",\n  \"window-closed\",\n  \"window-closed-variant\",\n  \"window-maximize\",\n  \"window-minimize\",\n  \"window-open\",\n  \"window-open-variant\",\n  \"window-restore\",\n  \"window-shutter\",\n  \"window-shutter-alert\",\n  \"window-shutter-open\",\n  \"wiper\",\n  \"wiper-wash\",\n  \"wordpress\",\n  \"wrap\",\n  \"wrap-disabled\",\n  \"wrench\",\n  \"wrench-outline\",\n  \"xamarin\",\n  \"xamarin-outline\",\n  \"xing\",\n  \"xml\",\n  \"xmpp\",\n  \"y-combinator\",\n  \"yahoo\",\n  \"yeast\",\n  \"yin-yang\",\n  \"yoga\",\n  \"youtube\",\n  \"youtube-gaming\",\n  \"youtube-studio\",\n  \"youtube-subscription\",\n  \"youtube-tv\",\n  \"z-wave\",\n  \"zend\",\n  \"zigbee\",\n  \"zip-box\",\n  \"zip-box-outline\",\n  \"zip-disk\",\n  \"zodiac-aquarius\",\n  \"zodiac-aries\",\n  \"zodiac-cancer\",\n  \"zodiac-capricorn\",\n  \"zodiac-gemini\",\n  \"zodiac-leo\",\n  \"zodiac-libra\",\n  \"zodiac-pisces\",\n  \"zodiac-sagittarius\",\n  \"zodiac-scorpio\",\n  \"zodiac-taurus\",\n  \"zodiac-virgo\"\n]\n"
  },
  {
    "path": "src/data/itemstabledata.json",
    "content": "[\n  {\n    \"name\": \"api_all_client_error_total\",\n    \"color\": \"#4e79a7\",\n    \"data\": 10\n  },\n  {\n    \"name\": \"api_all_errors_total\",\n    \"color\": \"#f28e2c\",\n    \"data\": 47\n  },\n  {\n    \"name\": \"api_all_request_in_processing_total\",\n    \"color\": \"#e15759\",\n    \"data\": 19\n  },\n  {\n    \"name\": \"api_all_request_total\",\n    \"color\": \"#76b7b2\",\n    \"data\": 79\n  },\n  {\n    \"name\": \"api_all_server_error_total\",\n    \"color\": \"#59a14f\",\n    \"data\": 34\n  },\n  {\n    \"name\": \"api_all_success_total\",\n    \"color\": \"#edc949\",\n    \"data\": 44\n  },\n  {\n    \"name\": \"api_request_duration_milliseconds_bucket\",\n    \"color\": \"#af7aa1\",\n    \"data\": 81\n  }\n]\n"
  },
  {
    "path": "src/data/ptabledata.json",
    "content": "{\n  \"layout\": {\n    \"type\": \"grid\"\n  },\n  \"widgets\": [\n    {\n      \"id\": \"w1\",\n      \"type\": \"DbChartjsLine\",\n      \"cspan\": 4,\n      \"height\": 250,\n      \"properties\": {\n        \"options\": {\n          \"test\": \"true\",\n          \"key\": \"value\",\n          \"display\": \"dense\"\n        }\n      }\n    },\n    {\n      \"id\": \"w2\",\n      \"type\": \"DbChartjsBar\",\n      \"cspan\": 4,\n      \"height\": 250\n    }\n  ]\n}\n"
  },
  {
    "path": "src/data/requests.json",
    "content": "{\n  \"startts\": 1588042628346,\n  \"all\": {\n    \"requests\": 2070,\n    \"responses\": 2070,\n    \"errors\": 257,\n    \"info\": 0,\n    \"success\": 1813,\n    \"redirect\": 0,\n    \"client_error\": 186,\n    \"server_error\": 71,\n    \"total_time\": 106076,\n    \"max_time\": 103,\n    \"avg_time\": 51.24444444444445,\n    \"total_req_clength\": 56695,\n    \"max_req_clength\": 210,\n    \"avg_req_clength\": 27,\n    \"total_res_clength\": 203014,\n    \"max_res_clength\": 199,\n    \"avg_res_clength\": 98,\n    \"req_rate\": 5.216707577078744,\n    \"err_rate\": 0.6476781871059117,\n    \"apdex_threshold\": 25,\n    \"apdex_satisfied\": 435,\n    \"apdex_tolerated\": 1362,\n    \"apdex_score\": 0.5391304347826087\n  },\n  \"egress\": {\n    \"requests\": 0,\n    \"responses\": 0,\n    \"errors\": 0,\n    \"info\": 0,\n    \"success\": 0,\n    \"redirect\": 0,\n    \"client_error\": 0,\n    \"server_error\": 0,\n    \"total_time\": 0,\n    \"max_time\": 0,\n    \"avg_time\": 0,\n    \"total_req_clength\": 0,\n    \"max_req_clength\": 0,\n    \"avg_req_clength\": 0,\n    \"total_res_clength\": 0,\n    \"max_res_clength\": 0,\n    \"avg_res_clength\": 0,\n    \"req_rate\": 0,\n    \"err_rate\": 0,\n    \"apdex_threshold\": 25,\n    \"apdex_satisfied\": 0,\n    \"apdex_tolerated\": 0,\n    \"apdex_score\": 0\n  },\n  \"sys\": {\n    \"rss\": 49201152,\n    \"heapTotal\": 23588864,\n    \"heapUsed\": 15191840,\n    \"external\": 1964211,\n    \"cpu\": 3.0941847891073517,\n    \"lag\": 0.149,\n    \"maxlag\": 9.5066\n  },\n  \"name\": \"swagger-stats-hapitest\",\n  \"version\": \"0.95.16\",\n  \"hostname\": \"hostname\",\n  \"ip\": \"127.0.0.1\",\n  \"apdexThreshold\": 25,\n  \"method\": {\n    \"GET\": {\n      \"requests\": 1036,\n      \"responses\": 1036,\n      \"errors\": 128,\n      \"info\": 0,\n      \"success\": 908,\n      \"redirect\": 0,\n      \"client_error\": 94,\n      \"server_error\": 34,\n      \"total_time\": 52592,\n      \"max_time\": 102,\n      \"avg_time\": 50.76447876447877,\n      \"total_req_clength\": 0,\n      \"max_req_clength\": 0,\n      \"avg_req_clength\": 0,\n      \"total_res_clength\": 101353,\n      \"max_res_clength\": 199,\n      \"avg_res_clength\": 97,\n      \"req_rate\": 2.610873937127333,\n      \"err_rate\": 0.3225790192589755,\n      \"apdex_threshold\": 25,\n      \"apdex_satisfied\": 230,\n      \"apdex_tolerated\": 670,\n      \"apdex_score\": 0.5453667953667953\n    },\n    \"POST\": {\n      \"requests\": 509,\n      \"responses\": 509,\n      \"errors\": 67,\n      \"info\": 0,\n      \"success\": 442,\n      \"redirect\": 0,\n      \"client_error\": 47,\n      \"server_error\": 20,\n      \"total_time\": 26591,\n      \"max_time\": 102,\n      \"avg_time\": 52.24165029469548,\n      \"total_req_clength\": 56695,\n      \"max_req_clength\": 210,\n      \"avg_req_clength\": 111,\n      \"total_res_clength\": 50231,\n      \"max_res_clength\": 199,\n      \"avg_res_clength\": 98,\n      \"req_rate\": 1.2827556312720196,\n      \"err_rate\": 0.16884995539336997,\n      \"apdex_threshold\": 25,\n      \"apdex_satisfied\": 95,\n      \"apdex_tolerated\": 345,\n      \"apdex_score\": 0.5255402750491159\n    },\n    \"PUT\": {\n      \"requests\": 0,\n      \"responses\": 0,\n      \"errors\": 0,\n      \"info\": 0,\n      \"success\": 0,\n      \"redirect\": 0,\n      \"client_error\": 0,\n      \"server_error\": 0,\n      \"total_time\": 0,\n      \"max_time\": 0,\n      \"avg_time\": 0,\n      \"total_req_clength\": 0,\n      \"max_req_clength\": 0,\n      \"avg_req_clength\": 0,\n      \"total_res_clength\": 0,\n      \"max_res_clength\": 0,\n      \"avg_res_clength\": 0,\n      \"req_rate\": 0,\n      \"err_rate\": 0,\n      \"apdex_threshold\": 25,\n      \"apdex_satisfied\": 0,\n      \"apdex_tolerated\": 0,\n      \"apdex_score\": 0\n    },\n    \"DELETE\": {\n      \"requests\": 525,\n      \"responses\": 525,\n      \"errors\": 62,\n      \"info\": 0,\n      \"success\": 463,\n      \"redirect\": 0,\n      \"client_error\": 45,\n      \"server_error\": 17,\n      \"total_time\": 26893,\n      \"max_time\": 103,\n      \"avg_time\": 51.224761904761905,\n      \"total_req_clength\": 0,\n      \"max_req_clength\": 0,\n      \"avg_req_clength\": 0,\n      \"total_res_clength\": 51430,\n      \"max_res_clength\": 199,\n      \"avg_res_clength\": 97,\n      \"req_rate\": 1.3230780086793916,\n      \"err_rate\": 0.15624921245356627,\n      \"apdex_threshold\": 25,\n      \"apdex_satisfied\": 110,\n      \"apdex_tolerated\": 347,\n      \"apdex_score\": 0.54\n    }\n  }\n}\n"
  },
  {
    "path": "src/data/summary.json",
    "content": "{\n  \"startts\": 1588035881728,\n  \"all\": {\n    \"requests\": 585,\n    \"responses\": 583,\n    \"errors\": 64,\n    \"info\": 0,\n    \"success\": 519,\n    \"redirect\": 0,\n    \"client_error\": 46,\n    \"server_error\": 18,\n    \"total_time\": 29741,\n    \"max_time\": 101,\n    \"avg_time\": 51.01372212692967,\n    \"total_req_clength\": 14989,\n    \"max_req_clength\": 208,\n    \"avg_req_clength\": 25,\n    \"total_res_clength\": 60458,\n    \"max_res_clength\": 199,\n    \"avg_res_clength\": 103,\n    \"req_rate\": 2.284867748092351,\n    \"err_rate\": 0.2508259620547349,\n    \"apdex_threshold\": 25,\n    \"apdex_satisfied\": 132,\n    \"apdex_tolerated\": 386,\n    \"apdex_score\": 0.5574614065180102\n  },\n  \"egress\": {\n    \"requests\": 0,\n    \"responses\": 0,\n    \"errors\": 0,\n    \"info\": 0,\n    \"success\": 0,\n    \"redirect\": 0,\n    \"client_error\": 0,\n    \"server_error\": 0,\n    \"total_time\": 0,\n    \"max_time\": 0,\n    \"avg_time\": 0,\n    \"total_req_clength\": 0,\n    \"max_req_clength\": 0,\n    \"avg_req_clength\": 0,\n    \"total_res_clength\": 0,\n    \"max_res_clength\": 0,\n    \"avg_res_clength\": 0,\n    \"req_rate\": 0,\n    \"err_rate\": 0,\n    \"apdex_threshold\": 25,\n    \"apdex_satisfied\": 0,\n    \"apdex_tolerated\": 0,\n    \"apdex_score\": 0\n  },\n  \"sys\": {\n    \"rss\": 51396608,\n    \"heapTotal\": 16510976,\n    \"heapUsed\": 14511032,\n    \"external\": 1511235,\n    \"cpu\": 0.9009328978771693,\n    \"lag\": 0.555539,\n    \"maxlag\": 6.407213\n  },\n  \"name\": \"swagger-stats-fastify\",\n  \"version\": \"0.95.17\",\n  \"hostname\": \"sv5\",\n  \"ip\": \"192.168.1.71\",\n  \"apdexThreshold\": 25,\n  \"timeline\": {\n    \"settings\": {\n      \"bucket_duration\": 1000,\n      \"bucket_current\": 1588036136,\n      \"length\": 60\n    },\n    \"data\": {\n      \"1588036077\": {\n        \"stats\": {\n          \"requests\": 7,\n          \"responses\": 7,\n          \"errors\": 1,\n          \"info\": 0,\n          \"success\": 6,\n          \"redirect\": 0,\n          \"client_error\": 0,\n          \"server_error\": 1,\n          \"total_time\": 362,\n          \"max_time\": 93,\n          \"avg_time\": 51.714285714285715,\n          \"total_req_clength\": 179,\n          \"max_req_clength\": 157,\n          \"avg_req_clength\": 25,\n          \"total_res_clength\": 750,\n          \"max_res_clength\": 175,\n          \"avg_res_clength\": 107,\n          \"req_rate\": 7,\n          \"err_rate\": 1,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 1,\n          \"apdex_tolerated\": 5,\n          \"apdex_score\": 0.5\n        },\n        \"sys\": {\n          \"rss\": 49728366,\n          \"heapTotal\": 14675968,\n          \"heapUsed\": 12917919,\n          \"external\": 1470525,\n          \"cpu\": 1.8579307821138102,\n          \"lag\": 0.065874\n        }\n      },\n      \"1588036078\": {\n        \"stats\": {\n          \"requests\": 2,\n          \"responses\": 2,\n          \"errors\": 0,\n          \"info\": 0,\n          \"success\": 2,\n          \"redirect\": 0,\n          \"client_error\": 0,\n          \"server_error\": 0,\n          \"total_time\": 142,\n          \"max_time\": 100,\n          \"avg_time\": 71,\n          \"total_req_clength\": 92,\n          \"max_req_clength\": 92,\n          \"avg_req_clength\": 46,\n          \"total_res_clength\": 285,\n          \"max_res_clength\": 196,\n          \"avg_res_clength\": 142,\n          \"req_rate\": 2,\n          \"err_rate\": 0,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 0,\n          \"apdex_tolerated\": 2,\n          \"apdex_score\": 0.5\n        },\n        \"sys\": {\n          \"rss\": 50035566,\n          \"heapTotal\": 14675968,\n          \"heapUsed\": 13260610,\n          \"external\": 1470883,\n          \"cpu\": 1.219095542384587,\n          \"lag\": 0.446186\n        }\n      },\n      \"1588036079\": {\n        \"stats\": {\n          \"requests\": 8,\n          \"responses\": 8,\n          \"errors\": 0,\n          \"info\": 0,\n          \"success\": 8,\n          \"redirect\": 0,\n          \"client_error\": 0,\n          \"server_error\": 0,\n          \"total_time\": 429,\n          \"max_time\": 94,\n          \"avg_time\": 53.625,\n          \"total_req_clength\": 131,\n          \"max_req_clength\": 116,\n          \"avg_req_clength\": 16,\n          \"total_res_clength\": 683,\n          \"max_res_clength\": 138,\n          \"avg_res_clength\": 85,\n          \"req_rate\": 8,\n          \"err_rate\": 0,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 3,\n          \"apdex_tolerated\": 5,\n          \"apdex_score\": 0.6875\n        },\n        \"sys\": {\n          \"rss\": 49754697,\n          \"heapTotal\": 14675968,\n          \"heapUsed\": 12818088,\n          \"external\": 1470064,\n          \"cpu\": 1.5715433132709409,\n          \"lag\": 0.418594\n        }\n      },\n      \"1588036080\": {\n        \"stats\": {\n          \"requests\": 4,\n          \"responses\": 4,\n          \"errors\": 1,\n          \"info\": 0,\n          \"success\": 3,\n          \"redirect\": 0,\n          \"client_error\": 0,\n          \"server_error\": 1,\n          \"total_time\": 167,\n          \"max_time\": 63,\n          \"avg_time\": 41.75,\n          \"total_req_clength\": 267,\n          \"max_req_clength\": 140,\n          \"avg_req_clength\": 66,\n          \"total_res_clength\": 441,\n          \"max_res_clength\": 191,\n          \"avg_res_clength\": 110,\n          \"req_rate\": 4,\n          \"err_rate\": 1,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 1,\n          \"apdex_tolerated\": 2,\n          \"apdex_score\": 0.5\n        },\n        \"sys\": {\n          \"rss\": 50149669,\n          \"heapTotal\": 14675968,\n          \"heapUsed\": 13219975,\n          \"external\": 1470492,\n          \"cpu\": 2.201301491236212,\n          \"lag\": 0.479239\n        }\n      },\n      \"1588036081\": {\n        \"stats\": {\n          \"requests\": 12,\n          \"responses\": 12,\n          \"errors\": 1,\n          \"info\": 0,\n          \"success\": 11,\n          \"redirect\": 0,\n          \"client_error\": 1,\n          \"server_error\": 0,\n          \"total_time\": 600,\n          \"max_time\": 84,\n          \"avg_time\": 50,\n          \"total_req_clength\": 589,\n          \"max_req_clength\": 206,\n          \"avg_req_clength\": 49,\n          \"total_res_clength\": 1385,\n          \"max_res_clength\": 177,\n          \"avg_res_clength\": 115,\n          \"req_rate\": 12,\n          \"err_rate\": 1,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 2,\n          \"apdex_tolerated\": 9,\n          \"apdex_score\": 0.5416666666666666\n        },\n        \"sys\": {\n          \"rss\": 49991095,\n          \"heapTotal\": 14675968,\n          \"heapUsed\": 13023264,\n          \"external\": 1470496,\n          \"cpu\": 4.087777913503371,\n          \"lag\": 0.492969\n        }\n      },\n      \"1588036082\": {\n        \"stats\": {\n          \"requests\": 3,\n          \"responses\": 3,\n          \"errors\": 1,\n          \"info\": 0,\n          \"success\": 2,\n          \"redirect\": 0,\n          \"client_error\": 1,\n          \"server_error\": 0,\n          \"total_time\": 186,\n          \"max_time\": 98,\n          \"avg_time\": 62,\n          \"total_req_clength\": 54,\n          \"max_req_clength\": 54,\n          \"avg_req_clength\": 18,\n          \"total_res_clength\": 359,\n          \"max_res_clength\": 179,\n          \"avg_res_clength\": 119,\n          \"req_rate\": 3,\n          \"err_rate\": 1,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 0,\n          \"apdex_tolerated\": 2,\n          \"apdex_score\": 0.3333333333333333\n        },\n        \"sys\": {\n          \"rss\": 50164297,\n          \"heapTotal\": 14825765,\n          \"heapUsed\": 13104786,\n          \"external\": 1473009,\n          \"cpu\": 2.9677435233353995,\n          \"lag\": 0.398221\n        }\n      },\n      \"1588036083\": {\n        \"stats\": {\n          \"requests\": 5,\n          \"responses\": 5,\n          \"errors\": 0,\n          \"info\": 0,\n          \"success\": 5,\n          \"redirect\": 0,\n          \"client_error\": 0,\n          \"server_error\": 0,\n          \"total_time\": 313,\n          \"max_time\": 78,\n          \"avg_time\": 62.6,\n          \"total_req_clength\": 0,\n          \"max_req_clength\": 0,\n          \"avg_req_clength\": 0,\n          \"total_res_clength\": 331,\n          \"max_res_clength\": 130,\n          \"avg_res_clength\": 66,\n          \"req_rate\": 5,\n          \"err_rate\": 0,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 0,\n          \"apdex_tolerated\": 5,\n          \"apdex_score\": 0.5\n        },\n        \"sys\": {\n          \"rss\": 50065993,\n          \"heapTotal\": 14938112,\n          \"heapUsed\": 13108877,\n          \"external\": 1478383,\n          \"cpu\": 1.7933468592956903,\n          \"lag\": 0.417035\n        }\n      },\n      \"1588036084\": {\n        \"stats\": {\n          \"requests\": 1,\n          \"responses\": 1,\n          \"errors\": 0,\n          \"info\": 0,\n          \"success\": 1,\n          \"redirect\": 0,\n          \"client_error\": 0,\n          \"server_error\": 0,\n          \"total_time\": 87,\n          \"max_time\": 87,\n          \"avg_time\": 87,\n          \"total_req_clength\": 0,\n          \"max_req_clength\": 0,\n          \"avg_req_clength\": 0,\n          \"total_res_clength\": 197,\n          \"max_res_clength\": 197,\n          \"avg_res_clength\": 197,\n          \"req_rate\": 1,\n          \"err_rate\": 0,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 0,\n          \"apdex_tolerated\": 1,\n          \"apdex_score\": 0.5\n        },\n        \"sys\": {\n          \"rss\": 50281326,\n          \"heapTotal\": 14975561,\n          \"heapUsed\": 13372402,\n          \"external\": 1478359,\n          \"cpu\": 1.0757938550756827,\n          \"lag\": 0.469616\n        }\n      },\n      \"1588036085\": {\n        \"stats\": {\n          \"requests\": 8,\n          \"responses\": 8,\n          \"errors\": 0,\n          \"info\": 0,\n          \"success\": 8,\n          \"redirect\": 0,\n          \"client_error\": 0,\n          \"server_error\": 0,\n          \"total_time\": 310,\n          \"max_time\": 75,\n          \"avg_time\": 38.75,\n          \"total_req_clength\": 150,\n          \"max_req_clength\": 115,\n          \"avg_req_clength\": 18,\n          \"total_res_clength\": 850,\n          \"max_res_clength\": 187,\n          \"avg_res_clength\": 106,\n          \"req_rate\": 8,\n          \"err_rate\": 0,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 3,\n          \"apdex_tolerated\": 5,\n          \"apdex_score\": 0.6875\n        },\n        \"sys\": {\n          \"rss\": 50147913,\n          \"heapTotal\": 15200256,\n          \"heapUsed\": 13080886,\n          \"external\": 1478245,\n          \"cpu\": 2.138643445813946,\n          \"lag\": 0.49306\n        }\n      },\n      \"1588036086\": {\n        \"stats\": {\n          \"requests\": 4,\n          \"responses\": 4,\n          \"errors\": 0,\n          \"info\": 0,\n          \"success\": 4,\n          \"redirect\": 0,\n          \"client_error\": 0,\n          \"server_error\": 0,\n          \"total_time\": 176,\n          \"max_time\": 93,\n          \"avg_time\": 44,\n          \"total_req_clength\": 116,\n          \"max_req_clength\": 116,\n          \"avg_req_clength\": 29,\n          \"total_res_clength\": 479,\n          \"max_res_clength\": 189,\n          \"avg_res_clength\": 119,\n          \"req_rate\": 4,\n          \"err_rate\": 0,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 2,\n          \"apdex_tolerated\": 2,\n          \"apdex_score\": 0.75\n        },\n        \"sys\": {\n          \"rss\": 50391918,\n          \"heapTotal\": 15200256,\n          \"heapUsed\": 13401070,\n          \"external\": 1478741,\n          \"cpu\": 1.4927154465650112,\n          \"lag\": 0.458657\n        }\n      },\n      \"1588036087\": {\n        \"stats\": {\n          \"requests\": 5,\n          \"responses\": 5,\n          \"errors\": 0,\n          \"info\": 0,\n          \"success\": 5,\n          \"redirect\": 0,\n          \"client_error\": 0,\n          \"server_error\": 0,\n          \"total_time\": 246,\n          \"max_time\": 91,\n          \"avg_time\": 49.2,\n          \"total_req_clength\": 165,\n          \"max_req_clength\": 165,\n          \"avg_req_clength\": 33,\n          \"total_res_clength\": 516,\n          \"max_res_clength\": 170,\n          \"avg_res_clength\": 103,\n          \"req_rate\": 5,\n          \"err_rate\": 0,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 2,\n          \"apdex_tolerated\": 3,\n          \"apdex_score\": 0.7\n        },\n        \"sys\": {\n          \"rss\": 50040832,\n          \"heapTotal\": 15200256,\n          \"heapUsed\": 13055997,\n          \"external\": 1478392,\n          \"cpu\": 1.3407032578032514,\n          \"lag\": 0.532719\n        }\n      },\n      \"1588036088\": {\n        \"stats\": {\n          \"requests\": 3,\n          \"responses\": 3,\n          \"errors\": 0,\n          \"info\": 0,\n          \"success\": 3,\n          \"redirect\": 0,\n          \"client_error\": 0,\n          \"server_error\": 0,\n          \"total_time\": 213,\n          \"max_time\": 97,\n          \"avg_time\": 71,\n          \"total_req_clength\": 0,\n          \"max_req_clength\": 0,\n          \"avg_req_clength\": 0,\n          \"total_res_clength\": 244,\n          \"max_res_clength\": 123,\n          \"avg_res_clength\": 81,\n          \"req_rate\": 3,\n          \"err_rate\": 0,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 0,\n          \"apdex_tolerated\": 3,\n          \"apdex_score\": 0.5\n        },\n        \"sys\": {\n          \"rss\": 50427026,\n          \"heapTotal\": 15200256,\n          \"heapUsed\": 13466822,\n          \"external\": 1478509,\n          \"cpu\": 1.4365869514223208,\n          \"lag\": 0.466899\n        }\n      },\n      \"1588036089\": {\n        \"stats\": {\n          \"requests\": 5,\n          \"responses\": 5,\n          \"errors\": 0,\n          \"info\": 0,\n          \"success\": 5,\n          \"redirect\": 0,\n          \"client_error\": 0,\n          \"server_error\": 0,\n          \"total_time\": 410,\n          \"max_time\": 96,\n          \"avg_time\": 82,\n          \"total_req_clength\": 103,\n          \"max_req_clength\": 103,\n          \"avg_req_clength\": 20,\n          \"total_res_clength\": 418,\n          \"max_res_clength\": 198,\n          \"avg_res_clength\": 83,\n          \"req_rate\": 5,\n          \"err_rate\": 0,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 0,\n          \"apdex_tolerated\": 5,\n          \"apdex_score\": 0.5\n        },\n        \"sys\": {\n          \"rss\": 50173659,\n          \"heapTotal\": 15200256,\n          \"heapUsed\": 13232133,\n          \"external\": 1478250,\n          \"cpu\": 1.587239099358113,\n          \"lag\": 1.275879\n        }\n      },\n      \"1588036090\": {\n        \"stats\": {\n          \"requests\": 6,\n          \"responses\": 6,\n          \"errors\": 1,\n          \"info\": 0,\n          \"success\": 5,\n          \"redirect\": 0,\n          \"client_error\": 0,\n          \"server_error\": 1,\n          \"total_time\": 274,\n          \"max_time\": 93,\n          \"avg_time\": 45.666666666666664,\n          \"total_req_clength\": 196,\n          \"max_req_clength\": 183,\n          \"avg_req_clength\": 32,\n          \"total_res_clength\": 572,\n          \"max_res_clength\": 164,\n          \"avg_res_clength\": 95,\n          \"req_rate\": 6,\n          \"err_rate\": 1,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 2,\n          \"apdex_tolerated\": 3,\n          \"apdex_score\": 0.5833333333333334\n        },\n        \"sys\": {\n          \"rss\": 50284837,\n          \"heapTotal\": 15200256,\n          \"heapUsed\": 13313024,\n          \"external\": 1478366,\n          \"cpu\": 2.2609011446944294,\n          \"lag\": 0.394524\n        }\n      },\n      \"1588036091\": {\n        \"stats\": {\n          \"requests\": 4,\n          \"responses\": 4,\n          \"errors\": 0,\n          \"info\": 0,\n          \"success\": 4,\n          \"redirect\": 0,\n          \"client_error\": 0,\n          \"server_error\": 0,\n          \"total_time\": 270,\n          \"max_time\": 94,\n          \"avg_time\": 67.5,\n          \"total_req_clength\": 123,\n          \"max_req_clength\": 123,\n          \"avg_req_clength\": 30,\n          \"total_res_clength\": 340,\n          \"max_res_clength\": 196,\n          \"avg_res_clength\": 85,\n          \"req_rate\": 4,\n          \"err_rate\": 0,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 0,\n          \"apdex_tolerated\": 4,\n          \"apdex_score\": 0.5\n        },\n        \"sys\": {\n          \"rss\": 50056631,\n          \"heapTotal\": 15200256,\n          \"heapUsed\": 13127105,\n          \"external\": 1478223,\n          \"cpu\": 1.2782302974744657,\n          \"lag\": 0.491047\n        }\n      },\n      \"1588036092\": {\n        \"stats\": {\n          \"requests\": 4,\n          \"responses\": 4,\n          \"errors\": 2,\n          \"info\": 0,\n          \"success\": 2,\n          \"redirect\": 0,\n          \"client_error\": 1,\n          \"server_error\": 1,\n          \"total_time\": 170,\n          \"max_time\": 71,\n          \"avg_time\": 42.5,\n          \"total_req_clength\": 35,\n          \"max_req_clength\": 35,\n          \"avg_req_clength\": 8,\n          \"total_res_clength\": 382,\n          \"max_res_clength\": 152,\n          \"avg_res_clength\": 95,\n          \"req_rate\": 4,\n          \"err_rate\": 2,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 1,\n          \"apdex_tolerated\": 1,\n          \"apdex_score\": 0.375\n        },\n        \"sys\": {\n          \"rss\": 50404206,\n          \"heapTotal\": 15200256,\n          \"heapUsed\": 13562662,\n          \"external\": 1478596,\n          \"cpu\": 1.2717498921515509,\n          \"lag\": 0.478788\n        }\n      },\n      \"1588036093\": {\n        \"stats\": {\n          \"requests\": 5,\n          \"responses\": 5,\n          \"errors\": 0,\n          \"info\": 0,\n          \"success\": 5,\n          \"redirect\": 0,\n          \"client_error\": 0,\n          \"server_error\": 0,\n          \"total_time\": 367,\n          \"max_time\": 97,\n          \"avg_time\": 73.4,\n          \"total_req_clength\": 359,\n          \"max_req_clength\": 193,\n          \"avg_req_clength\": 71,\n          \"total_res_clength\": 520,\n          \"max_res_clength\": 187,\n          \"avg_res_clength\": 104,\n          \"req_rate\": 5,\n          \"err_rate\": 0,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 1,\n          \"apdex_tolerated\": 4,\n          \"apdex_score\": 0.6\n        },\n        \"sys\": {\n          \"rss\": 50140306,\n          \"heapTotal\": 15200256,\n          \"heapUsed\": 13194573,\n          \"external\": 1478473,\n          \"cpu\": 1.9808799346814085,\n          \"lag\": 0.585069\n        }\n      },\n      \"1588036094\": {\n        \"stats\": {\n          \"requests\": 6,\n          \"responses\": 6,\n          \"errors\": 0,\n          \"info\": 0,\n          \"success\": 6,\n          \"redirect\": 0,\n          \"client_error\": 0,\n          \"server_error\": 0,\n          \"total_time\": 168,\n          \"max_time\": 37,\n          \"avg_time\": 28,\n          \"total_req_clength\": 426,\n          \"max_req_clength\": 178,\n          \"avg_req_clength\": 71,\n          \"total_res_clength\": 573,\n          \"max_res_clength\": 190,\n          \"avg_res_clength\": 95,\n          \"req_rate\": 6,\n          \"err_rate\": 0,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 2,\n          \"apdex_tolerated\": 4,\n          \"apdex_score\": 0.6666666666666666\n        },\n        \"sys\": {\n          \"rss\": 50394843,\n          \"heapTotal\": 15200256,\n          \"heapUsed\": 13514461,\n          \"external\": 1480443,\n          \"cpu\": 2.038817726980114,\n          \"lag\": 0.674526\n        }\n      },\n      \"1588036095\": {\n        \"stats\": {\n          \"requests\": 4,\n          \"responses\": 4,\n          \"errors\": 0,\n          \"info\": 0,\n          \"success\": 4,\n          \"redirect\": 0,\n          \"client_error\": 0,\n          \"server_error\": 0,\n          \"total_time\": 227,\n          \"max_time\": 84,\n          \"avg_time\": 56.75,\n          \"total_req_clength\": 55,\n          \"max_req_clength\": 55,\n          \"avg_req_clength\": 13,\n          \"total_res_clength\": 259,\n          \"max_res_clength\": 172,\n          \"avg_res_clength\": 64,\n          \"req_rate\": 4,\n          \"err_rate\": 0,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 1,\n          \"apdex_tolerated\": 3,\n          \"apdex_score\": 0.625\n        },\n        \"sys\": {\n          \"rss\": 50331648,\n          \"heapTotal\": 15200256,\n          \"heapUsed\": 13452760,\n          \"external\": 1487158,\n          \"cpu\": 1.7828863611366745,\n          \"lag\": 0.96911\n        }\n      },\n      \"1588036096\": {\n        \"stats\": {\n          \"requests\": 5,\n          \"responses\": 5,\n          \"errors\": 1,\n          \"info\": 0,\n          \"success\": 4,\n          \"redirect\": 0,\n          \"client_error\": 1,\n          \"server_error\": 0,\n          \"total_time\": 189,\n          \"max_time\": 75,\n          \"avg_time\": 37.8,\n          \"total_req_clength\": 119,\n          \"max_req_clength\": 61,\n          \"avg_req_clength\": 23,\n          \"total_res_clength\": 475,\n          \"max_res_clength\": 150,\n          \"avg_res_clength\": 95,\n          \"req_rate\": 5,\n          \"err_rate\": 1,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 1,\n          \"apdex_tolerated\": 3,\n          \"apdex_score\": 0.5\n        },\n        \"sys\": {\n          \"rss\": 50436389,\n          \"heapTotal\": 15200256,\n          \"heapUsed\": 13502057,\n          \"external\": 1486914,\n          \"cpu\": 1.798597087070495,\n          \"lag\": 0.443023\n        }\n      },\n      \"1588036097\": {\n        \"stats\": {\n          \"requests\": 7,\n          \"responses\": 7,\n          \"errors\": 1,\n          \"info\": 0,\n          \"success\": 6,\n          \"redirect\": 0,\n          \"client_error\": 1,\n          \"server_error\": 0,\n          \"total_time\": 395,\n          \"max_time\": 84,\n          \"avg_time\": 56.42857142857143,\n          \"total_req_clength\": 256,\n          \"max_req_clength\": 152,\n          \"avg_req_clength\": 36,\n          \"total_res_clength\": 808,\n          \"max_res_clength\": 199,\n          \"avg_res_clength\": 115,\n          \"req_rate\": 7,\n          \"err_rate\": 1,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 1,\n          \"apdex_tolerated\": 5,\n          \"apdex_score\": 0.5\n        },\n        \"sys\": {\n          \"rss\": 50623049,\n          \"heapTotal\": 15200256,\n          \"heapUsed\": 13680097,\n          \"external\": 1487130,\n          \"cpu\": 2.130396981212194,\n          \"lag\": 0.445876\n        }\n      },\n      \"1588036098\": {\n        \"stats\": {\n          \"requests\": 10,\n          \"responses\": 10,\n          \"errors\": 0,\n          \"info\": 0,\n          \"success\": 10,\n          \"redirect\": 0,\n          \"client_error\": 0,\n          \"server_error\": 0,\n          \"total_time\": 502,\n          \"max_time\": 96,\n          \"avg_time\": 50.2,\n          \"total_req_clength\": 333,\n          \"max_req_clength\": 183,\n          \"avg_req_clength\": 33,\n          \"total_res_clength\": 1298,\n          \"max_res_clength\": 196,\n          \"avg_res_clength\": 129,\n          \"req_rate\": 10,\n          \"err_rate\": 0,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 3,\n          \"apdex_tolerated\": 7,\n          \"apdex_score\": 0.65\n        },\n        \"sys\": {\n          \"rss\": 50478519,\n          \"heapTotal\": 15200256,\n          \"heapUsed\": 13528478,\n          \"external\": 1486995,\n          \"cpu\": 3.3804185449761377,\n          \"lag\": 0.46465\n        }\n      },\n      \"1588036099\": {\n        \"stats\": {\n          \"requests\": 6,\n          \"responses\": 6,\n          \"errors\": 0,\n          \"info\": 0,\n          \"success\": 6,\n          \"redirect\": 0,\n          \"client_error\": 0,\n          \"server_error\": 0,\n          \"total_time\": 235,\n          \"max_time\": 85,\n          \"avg_time\": 39.166666666666664,\n          \"total_req_clength\": 188,\n          \"max_req_clength\": 170,\n          \"avg_req_clength\": 31,\n          \"total_res_clength\": 750,\n          \"max_res_clength\": 184,\n          \"avg_res_clength\": 125,\n          \"req_rate\": 6,\n          \"err_rate\": 0,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 2,\n          \"apdex_tolerated\": 4,\n          \"apdex_score\": 0.6666666666666666\n        },\n        \"sys\": {\n          \"rss\": 50240366,\n          \"heapTotal\": 15200256,\n          \"heapUsed\": 13343061,\n          \"external\": 1486465,\n          \"cpu\": 1.8186508334441733,\n          \"lag\": 0.422577\n        }\n      },\n      \"1588036100\": {\n        \"stats\": {\n          \"requests\": 3,\n          \"responses\": 3,\n          \"errors\": 1,\n          \"info\": 0,\n          \"success\": 2,\n          \"redirect\": 0,\n          \"client_error\": 1,\n          \"server_error\": 0,\n          \"total_time\": 229,\n          \"max_time\": 96,\n          \"avg_time\": 76.33333333333333,\n          \"total_req_clength\": 0,\n          \"max_req_clength\": 0,\n          \"avg_req_clength\": 0,\n          \"total_res_clength\": 279,\n          \"max_res_clength\": 122,\n          \"avg_res_clength\": 93,\n          \"req_rate\": 3,\n          \"err_rate\": 1,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 0,\n          \"apdex_tolerated\": 2,\n          \"apdex_score\": 0.3333333333333333\n        },\n        \"sys\": {\n          \"rss\": 50715502,\n          \"heapTotal\": 15200256,\n          \"heapUsed\": 13823752,\n          \"external\": 1486825,\n          \"cpu\": 1.4875548568234,\n          \"lag\": 1.381639\n        }\n      },\n      \"1588036101\": {\n        \"stats\": {\n          \"requests\": 9,\n          \"responses\": 9,\n          \"errors\": 0,\n          \"info\": 0,\n          \"success\": 9,\n          \"redirect\": 0,\n          \"client_error\": 0,\n          \"server_error\": 0,\n          \"total_time\": 556,\n          \"max_time\": 99,\n          \"avg_time\": 61.77777777777778,\n          \"total_req_clength\": 248,\n          \"max_req_clength\": 134,\n          \"avg_req_clength\": 27,\n          \"total_res_clength\": 757,\n          \"max_res_clength\": 160,\n          \"avg_res_clength\": 84,\n          \"req_rate\": 9,\n          \"err_rate\": 0,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 3,\n          \"apdex_tolerated\": 6,\n          \"apdex_score\": 0.6666666666666666\n        },\n        \"sys\": {\n          \"rss\": 50344521,\n          \"heapTotal\": 15200256,\n          \"heapUsed\": 13470627,\n          \"external\": 1486587,\n          \"cpu\": 2.5661715311824076,\n          \"lag\": 0.450544\n        }\n      },\n      \"1588036102\": {\n        \"stats\": {\n          \"requests\": 4,\n          \"responses\": 4,\n          \"errors\": 0,\n          \"info\": 0,\n          \"success\": 4,\n          \"redirect\": 0,\n          \"client_error\": 0,\n          \"server_error\": 0,\n          \"total_time\": 150,\n          \"max_time\": 83,\n          \"avg_time\": 37.5,\n          \"total_req_clength\": 208,\n          \"max_req_clength\": 208,\n          \"avg_req_clength\": 52,\n          \"total_res_clength\": 493,\n          \"max_res_clength\": 190,\n          \"avg_res_clength\": 123,\n          \"req_rate\": 4,\n          \"err_rate\": 0,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 2,\n          \"apdex_tolerated\": 2,\n          \"apdex_score\": 0.75\n        },\n        \"sys\": {\n          \"rss\": 50702043,\n          \"heapTotal\": 15275154,\n          \"heapUsed\": 13764849,\n          \"external\": 1486786,\n          \"cpu\": 2.046160289967588,\n          \"lag\": 0.850682\n        }\n      },\n      \"1588036103\": {\n        \"stats\": {\n          \"requests\": 3,\n          \"responses\": 3,\n          \"errors\": 1,\n          \"info\": 0,\n          \"success\": 2,\n          \"redirect\": 0,\n          \"client_error\": 1,\n          \"server_error\": 0,\n          \"total_time\": 204,\n          \"max_time\": 94,\n          \"avg_time\": 68,\n          \"total_req_clength\": 30,\n          \"max_req_clength\": 30,\n          \"avg_req_clength\": 10,\n          \"total_res_clength\": 359,\n          \"max_res_clength\": 177,\n          \"avg_res_clength\": 119,\n          \"req_rate\": 3,\n          \"err_rate\": 1,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 0,\n          \"apdex_tolerated\": 2,\n          \"apdex_score\": 0.3333333333333333\n        },\n        \"sys\": {\n          \"rss\": 50382555,\n          \"heapTotal\": 15462400,\n          \"heapUsed\": 13524224,\n          \"external\": 1486467,\n          \"cpu\": 0.9610284669432964,\n          \"lag\": 0.293925\n        }\n      },\n      \"1588036104\": {\n        \"stats\": {\n          \"requests\": 6,\n          \"responses\": 6,\n          \"errors\": 1,\n          \"info\": 0,\n          \"success\": 5,\n          \"redirect\": 0,\n          \"client_error\": 1,\n          \"server_error\": 0,\n          \"total_time\": 221,\n          \"max_time\": 65,\n          \"avg_time\": 36.833333333333336,\n          \"total_req_clength\": 341,\n          \"max_req_clength\": 181,\n          \"avg_req_clength\": 56,\n          \"total_res_clength\": 296,\n          \"max_res_clength\": 110,\n          \"avg_res_clength\": 49,\n          \"req_rate\": 6,\n          \"err_rate\": 1,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 2,\n          \"apdex_tolerated\": 3,\n          \"apdex_score\": 0.5833333333333334\n        },\n        \"sys\": {\n          \"rss\": 50665765,\n          \"heapTotal\": 15462400,\n          \"heapUsed\": 13823369,\n          \"external\": 1489089,\n          \"cpu\": 1.7588396214259965,\n          \"lag\": 0.430725\n        }\n      },\n      \"1588036105\": {\n        \"stats\": {\n          \"requests\": 5,\n          \"responses\": 5,\n          \"errors\": 0,\n          \"info\": 0,\n          \"success\": 5,\n          \"redirect\": 0,\n          \"client_error\": 0,\n          \"server_error\": 0,\n          \"total_time\": 380,\n          \"max_time\": 97,\n          \"avg_time\": 76,\n          \"total_req_clength\": 65,\n          \"max_req_clength\": 65,\n          \"avg_req_clength\": 13,\n          \"total_res_clength\": 582,\n          \"max_res_clength\": 199,\n          \"avg_res_clength\": 116,\n          \"req_rate\": 5,\n          \"err_rate\": 0,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 0,\n          \"apdex_tolerated\": 5,\n          \"apdex_score\": 0.5\n        },\n        \"sys\": {\n          \"rss\": 50356809,\n          \"heapTotal\": 15462400,\n          \"heapUsed\": 13499621,\n          \"external\": 1494697,\n          \"cpu\": 1.4301835323178618,\n          \"lag\": 0.406691\n        }\n      },\n      \"1588036106\": {\n        \"stats\": {\n          \"requests\": 2,\n          \"responses\": 2,\n          \"errors\": 0,\n          \"info\": 0,\n          \"success\": 2,\n          \"redirect\": 0,\n          \"client_error\": 0,\n          \"server_error\": 0,\n          \"total_time\": 79,\n          \"max_time\": 63,\n          \"avg_time\": 39.5,\n          \"total_req_clength\": 93,\n          \"max_req_clength\": 93,\n          \"avg_req_clength\": 46,\n          \"total_res_clength\": 288,\n          \"max_res_clength\": 196,\n          \"avg_res_clength\": 144,\n          \"req_rate\": 2,\n          \"err_rate\": 0,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 1,\n          \"apdex_tolerated\": 1,\n          \"apdex_score\": 0.75\n        },\n        \"sys\": {\n          \"rss\": 50666350,\n          \"heapTotal\": 15649646,\n          \"heapUsed\": 13917962,\n          \"external\": 1494827,\n          \"cpu\": 4.224776568827977,\n          \"lag\": 0.42097\n        }\n      },\n      \"1588036107\": {\n        \"stats\": {\n          \"requests\": 7,\n          \"responses\": 7,\n          \"errors\": 1,\n          \"info\": 0,\n          \"success\": 6,\n          \"redirect\": 0,\n          \"client_error\": 0,\n          \"server_error\": 1,\n          \"total_time\": 406,\n          \"max_time\": 98,\n          \"avg_time\": 58,\n          \"total_req_clength\": 299,\n          \"max_req_clength\": 171,\n          \"avg_req_clength\": 42,\n          \"total_res_clength\": 746,\n          \"max_res_clength\": 193,\n          \"avg_res_clength\": 106,\n          \"req_rate\": 7,\n          \"err_rate\": 1,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 0,\n          \"apdex_tolerated\": 6,\n          \"apdex_score\": 0.42857142857142855\n        },\n        \"sys\": {\n          \"rss\": 50570386,\n          \"heapTotal\": 15724544,\n          \"heapUsed\": 13894890,\n          \"external\": 1494868,\n          \"cpu\": 1.75761814185987,\n          \"lag\": 0.446588\n        }\n      },\n      \"1588036108\": {\n        \"stats\": {\n          \"requests\": 7,\n          \"responses\": 7,\n          \"errors\": 1,\n          \"info\": 0,\n          \"success\": 6,\n          \"redirect\": 0,\n          \"client_error\": 1,\n          \"server_error\": 0,\n          \"total_time\": 432,\n          \"max_time\": 96,\n          \"avg_time\": 61.714285714285715,\n          \"total_req_clength\": 95,\n          \"max_req_clength\": 95,\n          \"avg_req_clength\": 13,\n          \"total_res_clength\": 631,\n          \"max_res_clength\": 191,\n          \"avg_res_clength\": 90,\n          \"req_rate\": 7,\n          \"err_rate\": 1,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 1,\n          \"apdex_tolerated\": 5,\n          \"apdex_score\": 0.5\n        },\n        \"sys\": {\n          \"rss\": 50716672,\n          \"heapTotal\": 15724544,\n          \"heapUsed\": 14051082,\n          \"external\": 1495012,\n          \"cpu\": 1.863596242683904,\n          \"lag\": 0.374464\n        }\n      },\n      \"1588036109\": {\n        \"stats\": {\n          \"requests\": 5,\n          \"responses\": 5,\n          \"errors\": 0,\n          \"info\": 0,\n          \"success\": 5,\n          \"redirect\": 0,\n          \"client_error\": 0,\n          \"server_error\": 0,\n          \"total_time\": 227,\n          \"max_time\": 78,\n          \"avg_time\": 45.4,\n          \"total_req_clength\": 155,\n          \"max_req_clength\": 80,\n          \"avg_req_clength\": 31,\n          \"total_res_clength\": 403,\n          \"max_res_clength\": 170,\n          \"avg_res_clength\": 80,\n          \"req_rate\": 5,\n          \"err_rate\": 0,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 2,\n          \"apdex_tolerated\": 3,\n          \"apdex_score\": 0.7\n        },\n        \"sys\": {\n          \"rss\": 50734226,\n          \"heapTotal\": 15724544,\n          \"heapUsed\": 13740662,\n          \"external\": 1494666,\n          \"cpu\": 1.5227371222634207,\n          \"lag\": 0.454438\n        }\n      },\n      \"1588036110\": {\n        \"stats\": {\n          \"requests\": 5,\n          \"responses\": 5,\n          \"errors\": 0,\n          \"info\": 0,\n          \"success\": 5,\n          \"redirect\": 0,\n          \"client_error\": 0,\n          \"server_error\": 0,\n          \"total_time\": 299,\n          \"max_time\": 84,\n          \"avg_time\": 59.8,\n          \"total_req_clength\": 0,\n          \"max_req_clength\": 0,\n          \"avg_req_clength\": 0,\n          \"total_res_clength\": 373,\n          \"max_res_clength\": 172,\n          \"avg_res_clength\": 74,\n          \"req_rate\": 5,\n          \"err_rate\": 0,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 0,\n          \"apdex_tolerated\": 5,\n          \"apdex_score\": 0.5\n        },\n        \"sys\": {\n          \"rss\": 51092919,\n          \"heapTotal\": 15724544,\n          \"heapUsed\": 14056278,\n          \"external\": 1494987,\n          \"cpu\": 1.6400987184521016,\n          \"lag\": 0.412512\n        }\n      },\n      \"1588036111\": {\n        \"stats\": {\n          \"requests\": 6,\n          \"responses\": 6,\n          \"errors\": 0,\n          \"info\": 0,\n          \"success\": 6,\n          \"redirect\": 0,\n          \"client_error\": 0,\n          \"server_error\": 0,\n          \"total_time\": 249,\n          \"max_time\": 85,\n          \"avg_time\": 41.5,\n          \"total_req_clength\": 0,\n          \"max_req_clength\": 0,\n          \"avg_req_clength\": 0,\n          \"total_res_clength\": 484,\n          \"max_res_clength\": 186,\n          \"avg_res_clength\": 80,\n          \"req_rate\": 6,\n          \"err_rate\": 0,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 2,\n          \"apdex_tolerated\": 4,\n          \"apdex_score\": 0.6666666666666666\n        },\n        \"sys\": {\n          \"rss\": 50696192,\n          \"heapTotal\": 15724544,\n          \"heapUsed\": 13777008,\n          \"external\": 1494510,\n          \"cpu\": 1.7117858322335535,\n          \"lag\": 0.080423\n        }\n      },\n      \"1588036112\": {\n        \"stats\": {\n          \"requests\": 4,\n          \"responses\": 4,\n          \"errors\": 0,\n          \"info\": 0,\n          \"success\": 4,\n          \"redirect\": 0,\n          \"client_error\": 0,\n          \"server_error\": 0,\n          \"total_time\": 173,\n          \"max_time\": 64,\n          \"avg_time\": 43.25,\n          \"total_req_clength\": 49,\n          \"max_req_clength\": 49,\n          \"avg_req_clength\": 12,\n          \"total_res_clength\": 369,\n          \"max_res_clength\": 179,\n          \"avg_res_clength\": 92,\n          \"req_rate\": 4,\n          \"err_rate\": 0,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 1,\n          \"apdex_tolerated\": 3,\n          \"apdex_score\": 0.625\n        },\n        \"sys\": {\n          \"rss\": 51023287,\n          \"heapTotal\": 15724544,\n          \"heapUsed\": 14066379,\n          \"external\": 1494519,\n          \"cpu\": 1.5670041066715465,\n          \"lag\": 0.411171\n        }\n      },\n      \"1588036113\": {\n        \"stats\": {\n          \"requests\": 3,\n          \"responses\": 3,\n          \"errors\": 0,\n          \"info\": 0,\n          \"success\": 3,\n          \"redirect\": 0,\n          \"client_error\": 0,\n          \"server_error\": 0,\n          \"total_time\": 116,\n          \"max_time\": 44,\n          \"avg_time\": 38.666666666666664,\n          \"total_req_clength\": 0,\n          \"max_req_clength\": 0,\n          \"avg_req_clength\": 0,\n          \"total_res_clength\": 206,\n          \"max_res_clength\": 94,\n          \"avg_res_clength\": 68,\n          \"req_rate\": 3,\n          \"err_rate\": 0,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 0,\n          \"apdex_tolerated\": 3,\n          \"apdex_score\": 0.5\n        },\n        \"sys\": {\n          \"rss\": 50578578,\n          \"heapTotal\": 15724544,\n          \"heapUsed\": 13721658,\n          \"external\": 1494521,\n          \"cpu\": 2.5966386588428008,\n          \"lag\": 0.427502\n        }\n      },\n      \"1588036114\": {\n        \"stats\": {\n          \"requests\": 6,\n          \"responses\": 6,\n          \"errors\": 0,\n          \"info\": 0,\n          \"success\": 6,\n          \"redirect\": 0,\n          \"client_error\": 0,\n          \"server_error\": 0,\n          \"total_time\": 250,\n          \"max_time\": 78,\n          \"avg_time\": 41.666666666666664,\n          \"total_req_clength\": 174,\n          \"max_req_clength\": 108,\n          \"avg_req_clength\": 29,\n          \"total_res_clength\": 322,\n          \"max_res_clength\": 101,\n          \"avg_res_clength\": 53,\n          \"req_rate\": 6,\n          \"err_rate\": 0,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 3,\n          \"apdex_tolerated\": 3,\n          \"apdex_score\": 0.75\n        },\n        \"sys\": {\n          \"rss\": 50826679,\n          \"heapTotal\": 15724544,\n          \"heapUsed\": 14118370,\n          \"external\": 1494850,\n          \"cpu\": 1.668030655626392,\n          \"lag\": 0.44438\n        }\n      },\n      \"1588036115\": {\n        \"stats\": {\n          \"requests\": 5,\n          \"responses\": 5,\n          \"errors\": 0,\n          \"info\": 0,\n          \"success\": 5,\n          \"redirect\": 0,\n          \"client_error\": 0,\n          \"server_error\": 0,\n          \"total_time\": 255,\n          \"max_time\": 94,\n          \"avg_time\": 51,\n          \"total_req_clength\": 0,\n          \"max_req_clength\": 0,\n          \"avg_req_clength\": 0,\n          \"total_res_clength\": 441,\n          \"max_res_clength\": 183,\n          \"avg_res_clength\": 88,\n          \"req_rate\": 5,\n          \"err_rate\": 0,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 2,\n          \"apdex_tolerated\": 3,\n          \"apdex_score\": 0.7\n        },\n        \"sys\": {\n          \"rss\": 50664009,\n          \"heapTotal\": 15911790,\n          \"heapUsed\": 13929139,\n          \"external\": 1497075,\n          \"cpu\": 1.7429834713943195,\n          \"lag\": 1.573947\n        }\n      },\n      \"1588036116\": {\n        \"stats\": {\n          \"requests\": 3,\n          \"responses\": 3,\n          \"errors\": 1,\n          \"info\": 0,\n          \"success\": 2,\n          \"redirect\": 0,\n          \"client_error\": 1,\n          \"server_error\": 0,\n          \"total_time\": 152,\n          \"max_time\": 95,\n          \"avg_time\": 50.666666666666664,\n          \"total_req_clength\": 189,\n          \"max_req_clength\": 189,\n          \"avg_req_clength\": 63,\n          \"total_res_clength\": 332,\n          \"max_res_clength\": 172,\n          \"avg_res_clength\": 110,\n          \"req_rate\": 3,\n          \"err_rate\": 1,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 0,\n          \"apdex_tolerated\": 2,\n          \"apdex_score\": 0.3333333333333333\n        },\n        \"sys\": {\n          \"rss\": 50803858,\n          \"heapTotal\": 15986688,\n          \"heapUsed\": 14077215,\n          \"external\": 1502988,\n          \"cpu\": 3.440521946725362,\n          \"lag\": 0.43567\n        }\n      },\n      \"1588036117\": {\n        \"stats\": {\n          \"requests\": 8,\n          \"responses\": 8,\n          \"errors\": 2,\n          \"info\": 0,\n          \"success\": 6,\n          \"redirect\": 0,\n          \"client_error\": 1,\n          \"server_error\": 1,\n          \"total_time\": 443,\n          \"max_time\": 89,\n          \"avg_time\": 55.375,\n          \"total_req_clength\": 22,\n          \"max_req_clength\": 22,\n          \"avg_req_clength\": 2,\n          \"total_res_clength\": 1012,\n          \"max_res_clength\": 184,\n          \"avg_res_clength\": 126,\n          \"req_rate\": 8,\n          \"err_rate\": 2,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 1,\n          \"apdex_tolerated\": 5,\n          \"apdex_score\": 0.4375\n        },\n        \"sys\": {\n          \"rss\": 51013925,\n          \"heapTotal\": 15986688,\n          \"heapUsed\": 14073498,\n          \"external\": 1502880,\n          \"cpu\": 2.2408022463972532,\n          \"lag\": 0.391645\n        }\n      },\n      \"1588036118\": {\n        \"stats\": {\n          \"requests\": 5,\n          \"responses\": 5,\n          \"errors\": 0,\n          \"info\": 0,\n          \"success\": 5,\n          \"redirect\": 0,\n          \"client_error\": 0,\n          \"server_error\": 0,\n          \"total_time\": 210,\n          \"max_time\": 88,\n          \"avg_time\": 42,\n          \"total_req_clength\": 34,\n          \"max_req_clength\": 34,\n          \"avg_req_clength\": 6,\n          \"total_res_clength\": 314,\n          \"max_res_clength\": 111,\n          \"avg_res_clength\": 62,\n          \"req_rate\": 5,\n          \"err_rate\": 0,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 2,\n          \"apdex_tolerated\": 3,\n          \"apdex_score\": 0.7\n        },\n        \"sys\": {\n          \"rss\": 51121591,\n          \"heapTotal\": 15986688,\n          \"heapUsed\": 14193474,\n          \"external\": 1502786,\n          \"cpu\": 1.9150045723840348,\n          \"lag\": 0.445192\n        }\n      },\n      \"1588036119\": {\n        \"stats\": {\n          \"requests\": 5,\n          \"responses\": 5,\n          \"errors\": 0,\n          \"info\": 0,\n          \"success\": 5,\n          \"redirect\": 0,\n          \"client_error\": 0,\n          \"server_error\": 0,\n          \"total_time\": 249,\n          \"max_time\": 89,\n          \"avg_time\": 49.8,\n          \"total_req_clength\": 236,\n          \"max_req_clength\": 150,\n          \"avg_req_clength\": 47,\n          \"total_res_clength\": 523,\n          \"max_res_clength\": 186,\n          \"avg_res_clength\": 104,\n          \"req_rate\": 5,\n          \"err_rate\": 0,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 1,\n          \"apdex_tolerated\": 4,\n          \"apdex_score\": 0.6\n        },\n        \"sys\": {\n          \"rss\": 51004562,\n          \"heapTotal\": 15986688,\n          \"heapUsed\": 14113554,\n          \"external\": 1502985,\n          \"cpu\": 1.7881448835117006,\n          \"lag\": 0.465307\n        }\n      },\n      \"1588036120\": {\n        \"stats\": {\n          \"requests\": 3,\n          \"responses\": 3,\n          \"errors\": 0,\n          \"info\": 0,\n          \"success\": 3,\n          \"redirect\": 0,\n          \"client_error\": 0,\n          \"server_error\": 0,\n          \"total_time\": 184,\n          \"max_time\": 87,\n          \"avg_time\": 61.333333333333336,\n          \"total_req_clength\": 191,\n          \"max_req_clength\": 191,\n          \"avg_req_clength\": 63,\n          \"total_res_clength\": 318,\n          \"max_res_clength\": 146,\n          \"avg_res_clength\": 106,\n          \"req_rate\": 3,\n          \"err_rate\": 0,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 0,\n          \"apdex_tolerated\": 3,\n          \"apdex_score\": 0.5\n        },\n        \"sys\": {\n          \"rss\": 51034405,\n          \"heapTotal\": 15986688,\n          \"heapUsed\": 14124281,\n          \"external\": 1503164,\n          \"cpu\": 1.0705057507568931,\n          \"lag\": 0.417041\n        }\n      },\n      \"1588036121\": {\n        \"stats\": {\n          \"requests\": 4,\n          \"responses\": 4,\n          \"errors\": 1,\n          \"info\": 0,\n          \"success\": 3,\n          \"redirect\": 0,\n          \"client_error\": 0,\n          \"server_error\": 1,\n          \"total_time\": 273,\n          \"max_time\": 91,\n          \"avg_time\": 68.25,\n          \"total_req_clength\": 162,\n          \"max_req_clength\": 162,\n          \"avg_req_clength\": 40,\n          \"total_res_clength\": 523,\n          \"max_res_clength\": 185,\n          \"avg_res_clength\": 130,\n          \"req_rate\": 4,\n          \"err_rate\": 1,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 0,\n          \"apdex_tolerated\": 3,\n          \"apdex_score\": 0.375\n        },\n        \"sys\": {\n          \"rss\": 51185371,\n          \"heapTotal\": 16061586,\n          \"heapUsed\": 14274774,\n          \"external\": 1503200,\n          \"cpu\": 1.5968112227200613,\n          \"lag\": 0.358415\n        }\n      },\n      \"1588036122\": {\n        \"stats\": {\n          \"requests\": 5,\n          \"responses\": 5,\n          \"errors\": 0,\n          \"info\": 0,\n          \"success\": 5,\n          \"redirect\": 0,\n          \"client_error\": 0,\n          \"server_error\": 0,\n          \"total_time\": 236,\n          \"max_time\": 88,\n          \"avg_time\": 47.2,\n          \"total_req_clength\": 0,\n          \"max_req_clength\": 0,\n          \"avg_req_clength\": 0,\n          \"total_res_clength\": 587,\n          \"max_res_clength\": 196,\n          \"avg_res_clength\": 117,\n          \"req_rate\": 5,\n          \"err_rate\": 0,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 2,\n          \"apdex_tolerated\": 3,\n          \"apdex_score\": 0.7\n        },\n        \"sys\": {\n          \"rss\": 51022117,\n          \"heapTotal\": 16248832,\n          \"heapUsed\": 14057023,\n          \"external\": 1502713,\n          \"cpu\": 1.4625092698290458,\n          \"lag\": 0.467472\n        }\n      },\n      \"1588036123\": {\n        \"stats\": {\n          \"requests\": 5,\n          \"responses\": 5,\n          \"errors\": 0,\n          \"info\": 0,\n          \"success\": 5,\n          \"redirect\": 0,\n          \"client_error\": 0,\n          \"server_error\": 0,\n          \"total_time\": 266,\n          \"max_time\": 89,\n          \"avg_time\": 53.2,\n          \"total_req_clength\": 262,\n          \"max_req_clength\": 152,\n          \"avg_req_clength\": 52,\n          \"total_res_clength\": 656,\n          \"max_res_clength\": 161,\n          \"avg_res_clength\": 131,\n          \"req_rate\": 5,\n          \"err_rate\": 0,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 1,\n          \"apdex_tolerated\": 4,\n          \"apdex_score\": 0.6\n        },\n        \"sys\": {\n          \"rss\": 51336923,\n          \"heapTotal\": 16248832,\n          \"heapUsed\": 14382665,\n          \"external\": 1502905,\n          \"cpu\": 2.6371723943603866,\n          \"lag\": 0.434934\n        }\n      },\n      \"1588036124\": {\n        \"stats\": {\n          \"requests\": 6,\n          \"responses\": 6,\n          \"errors\": 0,\n          \"info\": 0,\n          \"success\": 6,\n          \"redirect\": 0,\n          \"client_error\": 0,\n          \"server_error\": 0,\n          \"total_time\": 277,\n          \"max_time\": 93,\n          \"avg_time\": 46.166666666666664,\n          \"total_req_clength\": 14,\n          \"max_req_clength\": 14,\n          \"avg_req_clength\": 2,\n          \"total_res_clength\": 390,\n          \"max_res_clength\": 184,\n          \"avg_res_clength\": 65,\n          \"req_rate\": 6,\n          \"err_rate\": 0,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 3,\n          \"apdex_tolerated\": 3,\n          \"apdex_score\": 0.75\n        },\n        \"sys\": {\n          \"rss\": 50869979,\n          \"heapTotal\": 16248832,\n          \"heapUsed\": 14069679,\n          \"external\": 1502832,\n          \"cpu\": 1.83107078838978,\n          \"lag\": 0.681433\n        }\n      },\n      \"1588036125\": {\n        \"stats\": {\n          \"requests\": 6,\n          \"responses\": 6,\n          \"errors\": 1,\n          \"info\": 0,\n          \"success\": 5,\n          \"redirect\": 0,\n          \"client_error\": 0,\n          \"server_error\": 1,\n          \"total_time\": 349,\n          \"max_time\": 80,\n          \"avg_time\": 58.166666666666664,\n          \"total_req_clength\": 349,\n          \"max_req_clength\": 180,\n          \"avg_req_clength\": 58,\n          \"total_res_clength\": 884,\n          \"max_res_clength\": 183,\n          \"avg_res_clength\": 147,\n          \"req_rate\": 6,\n          \"err_rate\": 1,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 0,\n          \"apdex_tolerated\": 5,\n          \"apdex_score\": 0.4166666666666667\n        },\n        \"sys\": {\n          \"rss\": 51302400,\n          \"heapTotal\": 16248832,\n          \"heapUsed\": 14435155,\n          \"external\": 1503317,\n          \"cpu\": 2.294218929018835,\n          \"lag\": 0.426407\n        }\n      },\n      \"1588036126\": {\n        \"stats\": {\n          \"requests\": 9,\n          \"responses\": 9,\n          \"errors\": 1,\n          \"info\": 0,\n          \"success\": 8,\n          \"redirect\": 0,\n          \"client_error\": 1,\n          \"server_error\": 0,\n          \"total_time\": 444,\n          \"max_time\": 95,\n          \"avg_time\": 49.333333333333336,\n          \"total_req_clength\": 247,\n          \"max_req_clength\": 175,\n          \"avg_req_clength\": 27,\n          \"total_res_clength\": 1180,\n          \"max_res_clength\": 192,\n          \"avg_res_clength\": 131,\n          \"req_rate\": 9,\n          \"err_rate\": 1,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 0,\n          \"apdex_tolerated\": 8,\n          \"apdex_score\": 0.4444444444444444\n        },\n        \"sys\": {\n          \"rss\": 51535872,\n          \"heapTotal\": 16248832,\n          \"heapUsed\": 14272351,\n          \"external\": 1507688,\n          \"cpu\": 3.3007439705395645,\n          \"lag\": 0.387344\n        }\n      },\n      \"1588036127\": {\n        \"stats\": {\n          \"requests\": 6,\n          \"responses\": 6,\n          \"errors\": 2,\n          \"info\": 0,\n          \"success\": 4,\n          \"redirect\": 0,\n          \"client_error\": 2,\n          \"server_error\": 0,\n          \"total_time\": 257,\n          \"max_time\": 75,\n          \"avg_time\": 42.833333333333336,\n          \"total_req_clength\": 40,\n          \"max_req_clength\": 40,\n          \"avg_req_clength\": 6,\n          \"total_res_clength\": 843,\n          \"max_res_clength\": 180,\n          \"avg_res_clength\": 140,\n          \"req_rate\": 6,\n          \"err_rate\": 2,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 1,\n          \"apdex_tolerated\": 3,\n          \"apdex_score\": 0.4166666666666667\n        },\n        \"sys\": {\n          \"rss\": 51657582,\n          \"heapTotal\": 16248832,\n          \"heapUsed\": 14330150,\n          \"external\": 1511274,\n          \"cpu\": 2.350132312879166,\n          \"lag\": 1.160142\n        }\n      },\n      \"1588036128\": {\n        \"stats\": {\n          \"requests\": 6,\n          \"responses\": 6,\n          \"errors\": 1,\n          \"info\": 0,\n          \"success\": 5,\n          \"redirect\": 0,\n          \"client_error\": 1,\n          \"server_error\": 0,\n          \"total_time\": 252,\n          \"max_time\": 69,\n          \"avg_time\": 42,\n          \"total_req_clength\": 0,\n          \"max_req_clength\": 0,\n          \"avg_req_clength\": 0,\n          \"total_res_clength\": 866,\n          \"max_res_clength\": 194,\n          \"avg_res_clength\": 144,\n          \"req_rate\": 6,\n          \"err_rate\": 1,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 1,\n          \"apdex_tolerated\": 4,\n          \"apdex_score\": 0.5\n        },\n        \"sys\": {\n          \"rss\": 51752960,\n          \"heapTotal\": 16248832,\n          \"heapUsed\": 14401704,\n          \"external\": 1511135,\n          \"cpu\": 2.7490711922115465,\n          \"lag\": 0.478808\n        }\n      },\n      \"1588036129\": {\n        \"stats\": {\n          \"requests\": 4,\n          \"responses\": 4,\n          \"errors\": 1,\n          \"info\": 0,\n          \"success\": 3,\n          \"redirect\": 0,\n          \"client_error\": 1,\n          \"server_error\": 0,\n          \"total_time\": 287,\n          \"max_time\": 100,\n          \"avg_time\": 71.75,\n          \"total_req_clength\": 107,\n          \"max_req_clength\": 107,\n          \"avg_req_clength\": 26,\n          \"total_res_clength\": 514,\n          \"max_res_clength\": 166,\n          \"avg_res_clength\": 128,\n          \"req_rate\": 4,\n          \"err_rate\": 1,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 1,\n          \"apdex_tolerated\": 2,\n          \"apdex_score\": 0.5\n        },\n        \"sys\": {\n          \"rss\": 51979410,\n          \"heapTotal\": 16248832,\n          \"heapUsed\": 14686357,\n          \"external\": 1511114,\n          \"cpu\": 2.237339284836614,\n          \"lag\": 0.458961\n        }\n      },\n      \"1588036130\": {\n        \"stats\": {\n          \"requests\": 4,\n          \"responses\": 4,\n          \"errors\": 1,\n          \"info\": 0,\n          \"success\": 3,\n          \"redirect\": 0,\n          \"client_error\": 0,\n          \"server_error\": 1,\n          \"total_time\": 191,\n          \"max_time\": 71,\n          \"avg_time\": 47.75,\n          \"total_req_clength\": 0,\n          \"max_req_clength\": 0,\n          \"avg_req_clength\": 0,\n          \"total_res_clength\": 273,\n          \"max_res_clength\": 170,\n          \"avg_res_clength\": 68,\n          \"req_rate\": 4,\n          \"err_rate\": 1,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 0,\n          \"apdex_tolerated\": 3,\n          \"apdex_score\": 0.375\n        },\n        \"sys\": {\n          \"rss\": 51611941,\n          \"heapTotal\": 16248832,\n          \"heapUsed\": 14362863,\n          \"external\": 1510908,\n          \"cpu\": 1.4212281865926932,\n          \"lag\": 0.401021\n        }\n      },\n      \"1588036131\": {\n        \"stats\": {\n          \"requests\": 8,\n          \"responses\": 8,\n          \"errors\": 1,\n          \"info\": 0,\n          \"success\": 7,\n          \"redirect\": 0,\n          \"client_error\": 1,\n          \"server_error\": 0,\n          \"total_time\": 432,\n          \"max_time\": 92,\n          \"avg_time\": 54,\n          \"total_req_clength\": 94,\n          \"max_req_clength\": 67,\n          \"avg_req_clength\": 11,\n          \"total_res_clength\": 829,\n          \"max_res_clength\": 164,\n          \"avg_res_clength\": 103,\n          \"req_rate\": 8,\n          \"err_rate\": 1,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 2,\n          \"apdex_tolerated\": 5,\n          \"apdex_score\": 0.5625\n        },\n        \"sys\": {\n          \"rss\": 51893394,\n          \"heapTotal\": 16248832,\n          \"heapUsed\": 14700464,\n          \"external\": 1511097,\n          \"cpu\": 3.7085144166966355,\n          \"lag\": 0.45644\n        }\n      },\n      \"1588036132\": {\n        \"stats\": {\n          \"requests\": 4,\n          \"responses\": 4,\n          \"errors\": 2,\n          \"info\": 0,\n          \"success\": 2,\n          \"redirect\": 0,\n          \"client_error\": 2,\n          \"server_error\": 0,\n          \"total_time\": 189,\n          \"max_time\": 94,\n          \"avg_time\": 47.25,\n          \"total_req_clength\": 173,\n          \"max_req_clength\": 107,\n          \"avg_req_clength\": 43,\n          \"total_res_clength\": 575,\n          \"max_res_clength\": 193,\n          \"avg_res_clength\": 143,\n          \"req_rate\": 4,\n          \"err_rate\": 2,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 1,\n          \"apdex_tolerated\": 1,\n          \"apdex_score\": 0.375\n        },\n        \"sys\": {\n          \"rss\": 51584439,\n          \"heapTotal\": 16248832,\n          \"heapUsed\": 14485653,\n          \"external\": 1511333,\n          \"cpu\": 1.2179044535085592,\n          \"lag\": 0.43403\n        }\n      },\n      \"1588036133\": {\n        \"stats\": {\n          \"requests\": 6,\n          \"responses\": 6,\n          \"errors\": 0,\n          \"info\": 0,\n          \"success\": 6,\n          \"redirect\": 0,\n          \"client_error\": 0,\n          \"server_error\": 0,\n          \"total_time\": 261,\n          \"max_time\": 71,\n          \"avg_time\": 43.5,\n          \"total_req_clength\": 137,\n          \"max_req_clength\": 137,\n          \"avg_req_clength\": 22,\n          \"total_res_clength\": 763,\n          \"max_res_clength\": 191,\n          \"avg_res_clength\": 127,\n          \"req_rate\": 6,\n          \"err_rate\": 0,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 2,\n          \"apdex_tolerated\": 4,\n          \"apdex_score\": 0.6666666666666666\n        },\n        \"sys\": {\n          \"rss\": 51630080,\n          \"heapTotal\": 16248832,\n          \"heapUsed\": 14543082,\n          \"external\": 1511360,\n          \"cpu\": 1.7111267883750845,\n          \"lag\": 0.435614\n        }\n      },\n      \"1588036134\": {\n        \"stats\": {\n          \"requests\": 9,\n          \"responses\": 9,\n          \"errors\": 2,\n          \"info\": 0,\n          \"success\": 7,\n          \"redirect\": 0,\n          \"client_error\": 1,\n          \"server_error\": 1,\n          \"total_time\": 537,\n          \"max_time\": 93,\n          \"avg_time\": 59.666666666666664,\n          \"total_req_clength\": 278,\n          \"max_req_clength\": 154,\n          \"avg_req_clength\": 30,\n          \"total_res_clength\": 1032,\n          \"max_res_clength\": 172,\n          \"avg_res_clength\": 114,\n          \"req_rate\": 9,\n          \"err_rate\": 2,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 1,\n          \"apdex_tolerated\": 6,\n          \"apdex_score\": 0.4444444444444444\n        },\n        \"sys\": {\n          \"rss\": 51611941,\n          \"heapTotal\": 16248832,\n          \"heapUsed\": 14581921,\n          \"external\": 1511257,\n          \"cpu\": 3.470801854823579,\n          \"lag\": 0.437355\n        }\n      },\n      \"1588036135\": {\n        \"stats\": {\n          \"requests\": 2,\n          \"responses\": 2,\n          \"errors\": 0,\n          \"info\": 0,\n          \"success\": 2,\n          \"redirect\": 0,\n          \"client_error\": 0,\n          \"server_error\": 0,\n          \"total_time\": 134,\n          \"max_time\": 92,\n          \"avg_time\": 67,\n          \"total_req_clength\": 0,\n          \"max_req_clength\": 0,\n          \"avg_req_clength\": 0,\n          \"total_res_clength\": 48,\n          \"max_res_clength\": 29,\n          \"avg_res_clength\": 24,\n          \"req_rate\": 2,\n          \"err_rate\": 0,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 0,\n          \"apdex_tolerated\": 2,\n          \"apdex_score\": 0.5\n        },\n        \"sys\": {\n          \"rss\": 51811474,\n          \"heapTotal\": 16323730,\n          \"heapUsed\": 14807416,\n          \"external\": 1511396,\n          \"cpu\": 1.0934839660054725,\n          \"lag\": 0.453681\n        }\n      },\n      \"1588036136\": {\n        \"stats\": {\n          \"requests\": 2,\n          \"responses\": 2,\n          \"errors\": 1,\n          \"info\": 0,\n          \"success\": 1,\n          \"redirect\": 0,\n          \"client_error\": 1,\n          \"server_error\": 0,\n          \"total_time\": 43,\n          \"max_time\": 42,\n          \"avg_time\": 21.5,\n          \"total_req_clength\": 127,\n          \"max_req_clength\": 127,\n          \"avg_req_clength\": 63,\n          \"total_res_clength\": 174,\n          \"max_res_clength\": 152,\n          \"avg_res_clength\": 87,\n          \"req_rate\": 2,\n          \"err_rate\": 1,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 0,\n          \"apdex_tolerated\": 1,\n          \"apdex_score\": 0.25\n        },\n        \"sys\": {\n          \"rss\": 51435227,\n          \"heapTotal\": 16510976,\n          \"heapUsed\": 14486603,\n          \"external\": 1511144,\n          \"cpu\": 0.8479732873082219,\n          \"lag\": 0.450826\n        }\n      },\n      \"1588036137\": {\n        \"stats\": {\n          \"requests\": 2,\n          \"responses\": 0,\n          \"errors\": 0,\n          \"info\": 0,\n          \"success\": 0,\n          \"redirect\": 0,\n          \"client_error\": 0,\n          \"server_error\": 0,\n          \"total_time\": 0,\n          \"max_time\": 0,\n          \"avg_time\": 0,\n          \"total_req_clength\": 16,\n          \"max_req_clength\": 16,\n          \"avg_req_clength\": 8,\n          \"total_res_clength\": 0,\n          \"max_res_clength\": 0,\n          \"avg_res_clength\": 0,\n          \"req_rate\": 0,\n          \"err_rate\": 0,\n          \"apdex_threshold\": 25,\n          \"apdex_satisfied\": 0,\n          \"apdex_tolerated\": 0,\n          \"apdex_score\": 0\n        },\n        \"sys\": {\n          \"rss\": 0,\n          \"heapTotal\": 0,\n          \"heapUsed\": 0,\n          \"external\": 0,\n          \"cpu\": 0\n        }\n      }\n    }\n  },\n  \"apidefs\": {\n    \"/pets\": {\n      \"GET\": {\n        \"swagger\": true,\n        \"deprecated\": false,\n        \"description\": \"Returns all pets from the system that the user has access to\\nNam sed condimentum est. Maecenas tempor sagittis sapien, nec rhoncus sem sagittis sit amet. Aenean at gravida augue, ac iaculis sem. Curabitur odio lorem, ornare eget elementum nec, cursus id lectus. Duis mi turpis, pulvinar ac eros ac, tincidunt varius justo. In hac habitasse platea dictumst. Integer at adipiscing ante, a sagittis ligula. Aenean pharetra tempor ante molestie imperdiet. Vivamus id aliquam diam. Cras quis velit non tortor eleifend sagittis. Praesent at enim pharetra urna volutpat venenatis eget eget mauris. In eleifend fermentum facilisis. Praesent enim enim, gravida ac sodales sed, placerat id erat. Suspendisse lacus dolor, consectetur non augue vel, vehicula interdum libero. Morbi euismod sagittis libero sed lacinia.\\n\\nSed tempus felis lobortis leo pulvinar rutrum. Nam mattis velit nisl, eu condimentum ligula luctus nec. Phasellus semper velit eget aliquet faucibus. In a mattis elit. Phasellus vel urna viverra, condimentum lorem id, rhoncus nibh. Ut pellentesque posuere elementum. Sed a varius odio. Morbi rhoncus ligula libero, vel eleifend nunc tristique vitae. Fusce et sem dui. Aenean nec scelerisque tortor. Fusce malesuada accumsan magna vel tempus. Quisque mollis felis eu dolor tristique, sit amet auctor felis gravida. Sed libero lorem, molestie sed nisl in, accumsan tempor nisi. Fusce sollicitudin massa ut lacinia mattis. Sed vel eleifend lorem. Pellentesque vitae felis pretium, pulvinar elit eu, euismod sapien.\\n\",\n        \"operationId\": \"findPets\"\n      },\n      \"POST\": {\n        \"swagger\": true,\n        \"deprecated\": false,\n        \"description\": \"Creates a new pet in the store. Duplicates are allowed\",\n        \"operationId\": \"addPet\"\n      }\n    },\n    \"/pets/{id}\": {\n      \"GET\": {\n        \"swagger\": true,\n        \"deprecated\": false,\n        \"description\": \"Returns a user based on a single ID, if the user does not have access to the pet\",\n        \"operationId\": \"find pet by id\"\n      },\n      \"DELETE\": {\n        \"swagger\": true,\n        \"deprecated\": false,\n        \"description\": \"deletes a single pet based on the ID supplied\",\n        \"operationId\": \"deletePet\"\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "src/layouts/mainlayout.vue",
    "content": "<template>\n  <q-layout view=\"hHh LpR fFf\">\n    <q-header class=\"text-grey-4 db-toolbar\" height-hint=\"98\">\n      <q-toolbar>\n        <q-btn dense flat round icon=\"menu\" @click=\"leftShown = !leftShown\" />\n\n        <q-btn dense flat icon=\"img:dblogo.png\" type=\"a\" href=\"https://dashblocks.io\" target=\"_blank\" />\n\n        <q-toolbar-title v-if=\"!smallScreen\" style=\"padding-left: 4px;\">\n          dashblocks.io\n        </q-toolbar-title>\n\n        <q-space></q-space>\n\n        <q-btn\n          v-if=\"smallScreen\"\n          :text-color=\"showSearchToolbar ? 'primary' : ''\"\n          dense\n          unelevated\n          icon=\"search\"\n          class=\"q-ma-xs\"\n          @click=\"showSearchToolbar = !showSearchToolbar\"\n        ></q-btn>\n\n        <q-input v-if=\"!smallScreen\" :dark=\"true\" v-model=\"searchQuery\" debounce=\"500\" dense filled placeholder=\"Search\" clearable class=\"col-md-3\">\n          <template v-slot:prepend>\n            <q-icon name=\"search\" />\n          </template>\n        </q-input>\n\n        <q-btn dense unelevated icon=\"mdi-bell\" class=\"q-ma-xs\">\n          <q-badge color=\"red\" floating>5</q-badge>\n          <q-menu v-model=\"messagesOpen\">\n            <messages @close=\"messagesOpen = false\"></messages>\n          </q-menu>\n        </q-btn>\n\n        <q-btn-dropdown dense unelevated v-model=\"settingsOpen\" dropdown-icon=\"settings\" class=\"ub-btn-dropdown-bare q-ma-xs\">\n          <settings @close=\"settingsOpen = false\"></settings>\n        </q-btn-dropdown>\n\n        <q-btn-dropdown unelevated v-model=\"userInfoOpen\" no-caps>\n          <template v-slot:label>\n            <div class=\"row items-center no-wrap\">\n              <q-avatar size=\"sm\">\n                <img src=\"images/avatars/male/1.png\" />\n              </q-avatar>\n              <div class=\"text-center q-pa-sm\">\n                John Smith\n              </div>\n            </div>\n          </template>\n          <user-info></user-info>\n        </q-btn-dropdown>\n      </q-toolbar>\n      <q-toolbar v-if=\"smallScreen && showSearchToolbar\">\n        <q-input :dark=\"true\" v-model=\"searchQuery\" debounce=\"500\" dense filled placeholder=\"Search\" clearable class=\"full-width\">\n          <template v-slot:prepend>\n            <q-icon name=\"search\" />\n          </template>\n        </q-input>\n      </q-toolbar>\n    </q-header>\n\n    <menu-drawer v-model=\"leftShown\" :mini.sync=\"menuMini\" :auto-expand=\"menuAutoExpand\">\n      <template v-slot:menu>\n        <menu-list :menu-items=\"menuItems\" v-on:expansionItemClick=\"menuMini = false\"></menu-list>\n      </template>\n    </menu-drawer>\n\n    <q-page-container>\n      <transition :name=\"transitionName\">\n        <router-view />\n      </transition>\n    </q-page-container>\n  </q-layout>\n</template>\n\n<script>\nimport { mapActions, mapState } from 'vuex';\nimport { dbColors } from 'dashblocks';\nimport MenuDrawer from '../components/menu/menudrawer.vue';\nimport MenuList from '../components/menu/menulist.vue';\nimport Settings from '../components/settings/settings.vue';\nimport UserInfo from '../components/user/userinfo.vue';\nimport Messages from '../components/user/messages.vue';\n\nexport default {\n  name: 'MainLayout',\n  components: {\n    MenuDrawer,\n    MenuList,\n    Settings,\n    UserInfo,\n    Messages\n  },\n  data() {\n    return {\n      leftShown: true,\n      rightShown: false,\n      settingsOpen: false,\n      messagesOpen: false,\n      userInfoOpen: false,\n      showSearchToolbar: false,\n      searchQuery: '',\n      transitionName: '',\n      testColors: null,\n      menuItems: [\n        { id: '1', title: 'Dashboard', link: '/', icon: 'dashboard' },\n        {\n          id: 'observability',\n          title: 'Observability Dashboards',\n          icon: 'mdi-eye-check',\n          caption: 'Monitor your Microservices',\n          items: [\n            { id: 'summary', title: 'Summary', link: '/summary', caption: 'Microservice Status', icon: 'mdi-chart-line-variant' },\n            { id: 'requests', title: 'Requests', link: '/requests', icon: 'sync_alt', badge: '2070', badgeColor: 'accent' },\n            { id: 'errors', title: 'Errors', link: '/errors', icon: 'error', caption: 'Errors Trend', badge: '10.62%', badgeColor: 'negative' },\n            { id: 'apiop', title: 'API Operation', link: '/apiop', icon: 'settings_ethernet', caption: 'API Operation Scorecard' },\n            { id: 'timeline', title: 'Timeline', link: '/timeline', icon: 'mdi-chart-bar', caption: 'Visits over time' }\n          ]\n        },\n        //{ id: '3', title: 'Forms', link: '/forms', icon: 'mdi-playlist-edit' },\n        {\n          id: '4',\n          title: 'Tables',\n          icon: 'mdi-table',\n          items: [\n            { id: 'quasartable', title: 'Quasar Tables', link: '/quasartable', icon: 'sync_alt' },\n            { id: 'vgt', title: 'Vue-Good-Table', link: '/vgt', icon: 'sync_alt' }\n          ]\n        },\n        {\n          id: '5',\n          title: 'Charts',\n          icon: 'pie_chart',\n          items: [\n            { id: 'chartjs', title: 'Chart.js', link: '/chartjs', icon: 'mdi-chart-bar' },\n            { id: 'dygraphs', title: 'Dygraphs', link: '/dygraphs', icon: 'mdi-chart-line' }\n          ]\n        },\n        {\n          id: '6',\n          title: 'Style',\n          icon: 'mdi-draw',\n          items: [\n            { id: '7', title: 'Typography', link: '/typography', icon: 'mdi-format-text' },\n            { id: '8', title: 'Icons', link: '/icons', icon: 'mdi-dots-horizontal-circle-outline' },\n            {\n              id: '9',\n              title: 'MDI Icons',\n              caption: 'Material Design Icons',\n              link: '/mdi',\n              icon: 'mdi-dots-horizontal-circle-outline',\n              badge: '5045',\n              badgeColor: 'accent',\n              sideCaption: 'icons'\n            }\n          ]\n        },\n        {\n          id: 'pages',\n          title: 'Pages',\n          icon: 'mdi-link-box-outline',\n          items: [{ id: '7', title: 'Login', link: '/login', icon: 'mdi-login' }]\n        }\n\n        /*\n        { title: 'Requests', link: '/requests', icon: 'sync_alt' },\n        { title: 'Errors', link: '/errors', icon: 'error' },\n        { title: 'API', link: '/api', icon: 'code' },\n        { title: 'API Operation', link: '/apiop', icon: 'settings_ethernet' },\n        { title: 'API Responses', link: '/apiresponses', icon: 'pie_chart' },\n        { title: 'Rates & Durations', link: '/rates', icon: 'schedule' },\n        { title: 'Payload', link: '/payload', icon: 'swap_vert' },\n        { title: 'Last Errors', link: '/lasterrors', icon: 'error_outline' },\n        { title: 'Longest Requests', link: '/longestrequests', icon: 'hourglass_empty' }\n        */\n      ]\n    };\n  },\n  computed: {\n    ...mapState({\n      menuAutoExpand: state => state.layout.menuAutoExpand\n    }),\n    dark: {\n      get() {\n        return this.$store.state.layout.dark;\n      },\n      set(value) {\n        this.setDark({ dark: value });\n      }\n    },\n    menuMini: {\n      get() {\n        return this.$store.state.layout.menuMini;\n      },\n      set(value) {\n        this.setMenuMini({ menuMini: value });\n      }\n    },\n    smallScreen() {\n      return ['xs', 'sm'].includes(this.$q.screen.name);\n    }\n  },\n  watch: {\n    dark: {\n      handler: function(val) {\n        this.$q.dark.set(val);\n      }\n    }\n  },\n  mounted() {\n    this.initialize();\n    this.$q.dark.set(this.dark);\n  },\n  methods: {\n    ...mapActions({\n      setDark: 'layout/setDark',\n      setMenuMini: 'layout/setMenuMini'\n    }),\n    initialize() {\n      let dbc = dbColors;\n\n      //this.testColors = dbColors.getColors(true); // TEMP TODO REMOVE\n      let cSteps = [0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1];\n\n      dbColors.setColorScheme('default', {\n        light: dbColors.d3ScaleChromatic.schemeTableau10,\n        dark: dbColors.grafanaColors\n      });\n\n      dbColors.setColorScheme('Grafana', {\n        light: dbColors.grafanaColors,\n        dark: dbColors.grafanaColors\n      });\n\n      dbColors.setColorScheme('Tableau', {\n        light: dbColors.d3ScaleChromatic.schemeTableau10,\n        dark: dbColors.d3ScaleChromatic.schemeTableau10\n      });\n\n      dbColors.setColorScheme('Diverging', {\n        light: dbColors.d3ScaleChromatic.schemeRdYlBu[10],\n        dark: dbColors.d3ScaleChromatic.schemeRdYlBu[10]\n      });\n\n      dbColors.setColorScheme('Categorical', {\n        light: dbColors.d3ScaleChromatic.schemeDark2,\n        dark: dbColors.d3ScaleChromatic.schemeSet3 // schemeBuGn[9],\n      });\n\n      dbColors.setColorScheme('Warm', {\n        light: cSteps.map(x => dbColors.d3ScaleChromatic.interpolateWarm(x)),\n        dark: cSteps.map(x => dbColors.d3ScaleChromatic.interpolateWarm(x))\n      });\n\n      dbColors.setColorScheme('Cool', {\n        light: cSteps.map(x => dbColors.d3ScaleChromatic.interpolateCool(x)),\n        dark: cSteps.map(x => dbColors.d3ScaleChromatic.interpolateCool(x))\n      });\n\n      dbColors.setColorScheme('Calm', {\n        light: ['#912e4d', '#00bd56', '#f02192', '#acd36d', '#8079ff', '#919200', '#f1adff', '#547600', '#ff8241', '#f8ba7a'],\n        dark: ['#ce4c3a', '#60b14d', '#8162cb', '#bab141', '#c964b5', '#4bb092', '#c25874', '#717e37', '#688ccd', '#c78344']\n      });\n      //['#cc4ba2', '#64ac48', '#8361cd', '#9a963f', '#5f8cce', '#cd5136', '#4aac8d', '#c7596d', '#c78543', '#b578b6']\n      //['#ce4c3a', '#60b14d', '#8162cb', '#bab141', '#c964b5', '#4bb092', '#c25874', '#717e37', '#688ccd', '#c78344']\n\n      dbColors.setColorScheme('Fancy', {\n        light: ['#38646f', '#4e2300', '#274f8e', '#6b5e1f', '#794f81', '#2a2e00', '#00485e', '#7c553f', '#2e0a06', '#2b2219'],\n        dark: ['#b1d8a0', '#74aff3', '#dbcd9d', '#7bcaed', '#ebaba7', '#74d6e0', '#deb1e0', '#a1e9d1', '#adbce9', '#8dc4af']\n      });\n\n      dbColors.setColorScheme('Colorblind Friendly', {\n        light: ['#37efab', '#58006c', '#b3e370', '#9a73ec', '#b1a200', '#0051ab', '#ff9e6a', '#601016', '#685d00', '#de3357'],\n        dark: ['#78a563', '#666fe8', '#c1b01b', '#014ca6', '#ffca5e', '#e2b1ff', '#008418', '#ff77bf', '#811e00', '#ff8c56']\n      });\n    }\n  }\n};\n</script>\n<style lang=\"scss\">\n.fade-enter-active,\n.fade-leave-active {\n  transition: opacity 0.5s;\n}\n.fade-enter, .fade-leave-to /* .fade-leave-active below version 2.1.8 */ {\n  opacity: 0;\n}\n</style>\n"
  },
  {
    "path": "src/main.js",
    "content": "import Vue from 'vue';\nimport App from './App.vue';\nimport router from './router';\nimport store from './store/store';\nimport VueGoodTablePlugin from 'vue-good-table';\nimport 'vue-good-table/dist/vue-good-table.css';\n\nimport {\n  DashBlocks,\n  DbDashboard,\n  DbHorizon,\n  DbSunburst,\n  DbSankey,\n  DbRidgeline,\n  DbChartjsBar,\n  DbChartjsHorizontalBar,\n  DbChartjsDoughnut,\n  DbChartjsLine,\n  DbChartjsPie,\n  DbChartjsPolarArea,\n  DbChartjsRadar,\n  DbChartjsBubble,\n  DbChartjsScatter,\n  DbNumber,\n  DbEasyPie,\n  DbTrendLine,\n  DbTrendBar,\n  DbSparkline,\n  DbDygraphsBar,\n  DbDygraphsLine,\n  DbDygraphsSparkLine,\n  DbDygraphsDateTimeHistogram\n} from 'dashblocks';\n\nVue.use(DashBlocks, {\n  components: {\n    DbDashboard,\n    DbHorizon,\n    DbSunburst,\n    DbSankey,\n    DbRidgeline,\n    DbChartjsBar,\n    DbChartjsHorizontalBar,\n    DbChartjsDoughnut,\n    DbChartjsLine,\n    DbChartjsPie,\n    DbChartjsPolarArea,\n    DbChartjsRadar,\n    DbChartjsBubble,\n    DbChartjsScatter,\n    DbNumber,\n    DbEasyPie,\n    DbTrendLine,\n    DbTrendBar,\n    DbSparkline,\n    DbDygraphsBar,\n    DbDygraphsLine,\n    DbDygraphsSparkLine,\n    DbDygraphsDateTimeHistogram\n  }\n  //components: dashblocksComponents\n});\n\n// Sample: to import all\n/*\nimport { DashBlocks } from 'dashblocks';\nimport * as dashblocksComponents from 'dashblocks';\nVue.use(DashBlocks, {\n  components: dashblocksComponents\n});\n*/\n\n// Dashblocks CSS\nimport 'dashblocks/dist/dashblocks.css';\n\nimport './quasar';\n\n//Vue.config.productionTip = false;\n\nVue.use(VueGoodTablePlugin);\n\nnew Vue({\n  router,\n  store,\n  render: h => h(App)\n}).$mount('#app');\n"
  },
  {
    "path": "src/mixins/demodashboard.js",
    "content": "import { mapState } from 'vuex';\n\nexport const demodashboard = {\n  computed: {\n    ...mapState({\n      dark: state => state.layout.dark,\n      dashboardColorScheme: state => state.layout.dashboardColorScheme\n    })\n  },\n  watch: {\n    dashboardColorScheme(val) {\n      console.log(`dashboardColorScheme changed to ${val}`);\n      this.$set(this.dbspec, 'colorScheme', val);\n    }\n  }\n};\n"
  },
  {
    "path": "src/mixins/vgtmethods.js",
    "content": "// Standard methods for views that use vue-good-table\nexport const vgtMethods = {\n  methods: {\n    formatToFixed2: function(value) {\n      return value.toFixed(2);\n    },\n    formatToFixed0: function(value) {\n      return value.toFixed(0);\n    },\n    tdClassErrors(row) {\n      return row.errors > 0 ? 'sws-td-badge sws-td-badge-neg' : '';\n    },\n    tdClassErrRate(row) {\n      return row.err_rate > 0 ? 'sws-td-badge sws-td-badge-neg' : '';\n    },\n    tdClassCErr(row) {\n      return row.client_error > 0 ? 'sws-td-badge sws-td-badge-neg' : '';\n    },\n    tdClassSErr(row) {\n      return row.server_error > 0 ? 'sws-td-badge sws-td-badge-neg' : '';\n    },\n    tdClassApdex(row) {\n      return 'text-weight-bold ' + (row.apdex_score < 0.6 ? 'sws-td-badge sws-td-badge-warn' : '');\n    }\n  }\n};\n"
  },
  {
    "path": "src/pages/login.vue",
    "content": "<template>\n  <q-layout>\n    <q-page-container>\n      <q-page class=\"flex flex-center\">\n        <q-card class=\"ub-login-card\">\n          <q-card-section class=\"ub-login-hdr text-white text-center\">\n            <q-btn round color=\"deep-purple-7\" icon=\"mdi-google\" class=\"absolute\" style=\"z-index:10; top: 40px; right: 12px; transform: translateY(-50%);\">\n              <q-tooltip>Login With Google</q-tooltip>\n            </q-btn>\n            <q-btn round color=\"deep-purple-7\" icon=\"mdi-facebook\" class=\"absolute\" style=\"z-index:10; top: 100px; right: 12px; transform: translateY(-50%);\">\n              <q-tooltip>Login With Facebook</q-tooltip>\n            </q-btn>\n            <q-btn round color=\"deep-purple-7\" icon=\"mdi-github\" class=\"absolute\" style=\"z-index:10; top: 160px; right: 12px; transform: translateY(-50%);\">\n              <q-tooltip>Login With GitHub</q-tooltip>\n            </q-btn>\n            <q-img src=\"dblogo.png\" style=\"height: 128px; width: 128px;\"></q-img>\n            <div class=\"text-h5 absolute-bottom\" style=\"margin-bottom: 20px;\">dashblocks.io</div>\n          </q-card-section>\n\n          <q-card-section>\n            <q-card-section>\n              <q-input v-model=\"username\" clearable label=\"Username or Email\">\n                <template v-slot:prepend>\n                  <q-icon name=\"mdi-account\" />\n                </template>\n              </q-input>\n              <q-input v-model=\"password\" type=\"password\" clearable label=\"password\">\n                <template v-slot:prepend>\n                  <q-icon name=\"mdi-lock\" />\n                </template>\n              </q-input>\n            </q-card-section>\n          </q-card-section>\n\n          <q-card-actions align=\"right\">\n            <q-btn flat>Register</q-btn>\n            <q-btn color=\"primary\" unelevated>Login</q-btn>\n          </q-card-actions>\n        </q-card>\n      </q-page>\n    </q-page-container>\n  </q-layout>\n</template>\n\n<script>\nexport default {\n  data() {\n    return {\n      username: '',\n      password: ''\n    };\n  },\n  computed: {\n    dark: {\n      get() {\n        return this.$store.state.layout.dark;\n      }\n    }\n  },\n  mounted() {\n    this.$q.dark.set(this.dark);\n  }\n};\n</script>\n\n<style lang=\"scss\">\n.ub-login-card {\n  width: 100%;\n  max-width: 400px;\n  .ub-login-hdr {\n    height: 200px;\n    background: #0f2027; /* fallback for old browsers */\n    background: -webkit-linear-gradient(to right, #2c5364, #203a43, #0f2027); /* Chrome 10-25, Safari 5.1-6 */\n    background: linear-gradient(to right, #2c5364, #203a43, #0f2027); /* W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */\n  }\n}\n</style>\n"
  },
  {
    "path": "src/quasar.js",
    "content": "import Vue from 'vue';\n\nimport './styles/quasar.scss';\nimport '@quasar/extras/roboto-font/roboto-font.css';\nimport '@quasar/extras/material-icons/material-icons.css';\n//import '@quasar/extras/material-icons-outlined/material-icons-outlined.css';\n//import '@quasar/extras/material-icons-round/material-icons-round.css';\n//import '@quasar/extras/material-icons-sharp/material-icons-sharp.css';\n//import '@quasar/extras/fontawesome-v5/fontawesome-v5.css';\n//import '@quasar/extras/ionicons-v4/ionicons-v4.css';\n//import '@quasar/extras/mdi-v4/mdi-v4.css';\nimport '@quasar/extras/mdi-v5/mdi-v5.css';\n\nimport {\n  Quasar,\n  Ripple,\n  ClosePopup,\n  TouchPan,\n  LoadingBar,\n  Notify,\n  Dialog,\n  QLayout,\n  QHeader,\n  QDrawer,\n  QPageContainer,\n  QPage,\n  QPageSticky,\n  QToolbar,\n  QToolbarTitle,\n  QBtn,\n  QBtnDropdown,\n  QBtnGroup,\n  QIcon,\n  QList,\n  QItem,\n  QItemSection,\n  QItemLabel,\n  QSplitter,\n  QScrollArea,\n  QExpansionItem,\n  QAvatar,\n  QBtnToggle,\n  QSeparator,\n  QTooltip,\n  QTable,\n  QTd,\n  QTh,\n  QTr,\n  QCard,\n  QCardSection,\n  QCardActions,\n  QSelect,\n  QToggle,\n  QBadge,\n  QSpace,\n  QInput,\n  QTabs,\n  QTab,\n  QTabPanels,\n  QTabPanel,\n  QDate,\n  QTime,\n  QPopupProxy,\n  QBar,\n  QPopupEdit,\n  QRadio,\n  QResizeObserver,\n  QChip,\n  QCheckbox,\n  QPagination,\n  QDialog,\n  QVirtualScroll,\n  QSkeleton,\n  QImg,\n  QMenu,\n  QBanner\n} from 'quasar';\n\nVue.use(Quasar, {\n  config: {},\n  components: {\n    QLayout,\n    QHeader,\n    QDrawer,\n    QPageContainer,\n    QPage,\n    QPageSticky,\n    QToolbar,\n    QToolbarTitle,\n    QBtn,\n    QBtnDropdown,\n    QBtnGroup,\n    QIcon,\n    QList,\n    QItem,\n    QItemSection,\n    QItemLabel,\n    QSplitter,\n    QScrollArea,\n    QExpansionItem,\n    QAvatar,\n    QBtnToggle,\n    QSeparator,\n    QTooltip,\n    QTable,\n    QTd,\n    QTh,\n    QTr,\n    QCard,\n    QCardSection,\n    QCardActions,\n    QSelect,\n    QToggle,\n    QBadge,\n    QSpace,\n    QInput,\n    QTabs,\n    QTab,\n    QTabPanels,\n    QTabPanel,\n    QDate,\n    QTime,\n    QPopupProxy,\n    QBar,\n    QPopupEdit,\n    QRadio,\n    QResizeObserver,\n    QChip,\n    QCheckbox,\n    QPagination,\n    QDialog,\n    QVirtualScroll,\n    QSkeleton,\n    QImg,\n    QMenu,\n    QBanner\n  },\n  directives: {\n    Ripple,\n    ClosePopup,\n    TouchPan\n  },\n  plugins: {\n    LoadingBar,\n    Notify,\n    Dialog\n  }\n});\n"
  },
  {
    "path": "src/router.js",
    "content": "import Vue from 'vue';\nimport Router from 'vue-router';\nimport MainLayout from './layouts/mainlayout.vue';\nimport Home from './views/Home.vue';\nimport About from './views/About.vue';\nimport DashblocksShowcase from './views/DashblocksShowcase.vue';\nimport Typography from './views/typography.vue';\nimport MaterialIcons from './views/materialicons.vue';\nimport ChartJsShowcase from './views/ChartJsShowcase.vue';\nimport Dygraphs from './views/Dygraphs.vue';\nimport Mdi from './views/mdi.vue';\nimport Tables from './views/tables.vue';\nimport Forms from './views/forms.vue';\nimport Observability from './views/observability.vue';\nimport Summary from './views/summary.vue';\nimport Requests from './views/requests.vue';\nimport VGT from './views/vuegoodtable.vue';\nimport QuasarTable from './views/quasartable.vue';\nimport APIOp from './views/apiop.vue';\nimport Errors from './views/errors.vue';\nimport Timeline from './views/timeline.vue';\n\nimport Login from './pages/login.vue';\n\nVue.use(Router);\n\nexport default new Router({\n  routes: [\n    {\n      path: '/',\n      component: MainLayout,\n      children: [\n        {\n          path: '',\n          name: 'showcase',\n          component: DashblocksShowcase\n        },\n        {\n          path: '/chartjs',\n          name: 'chartjs',\n          component: ChartJsShowcase\n        },\n        {\n          path: '/dygraphs',\n          name: 'dygraphs',\n          component: Dygraphs\n        },\n        {\n          path: '/typography',\n          name: 'typography',\n          component: Typography\n        },\n        {\n          path: '/mdi',\n          name: 'mdi',\n          component: Mdi\n        },\n        {\n          path: '/icons',\n          name: 'icons',\n          component: MaterialIcons\n        },\n        {\n          path: '/tables',\n          name: 'tables',\n          component: Tables\n        },\n        {\n          path: '/forms',\n          name: 'forms',\n          component: Forms\n        },\n        {\n          path: '/observability',\n          name: 'observability',\n          component: Observability\n        },\n        {\n          path: '/summary',\n          name: 'summary',\n          component: Summary\n        },\n        {\n          path: '/requests',\n          name: 'requests',\n          component: Requests\n        },\n        {\n          path: '/vgt',\n          name: 'vgt',\n          component: VGT\n        },\n        {\n          path: '/apiop',\n          name: 'apiop',\n          component: APIOp\n        },\n        {\n          path: '/errors',\n          name: 'errors',\n          component: Errors\n        },\n        {\n          path: '/quasartable',\n          name: 'quasartable',\n          component: QuasarTable\n        },\n        {\n          path: '/timeline',\n          name: 'timeline',\n          component: Timeline\n        }\n      ]\n    },\n    {\n      path: '/login',\n      component: Login\n    }\n  ]\n});\n"
  },
  {
    "path": "src/store/modules/layout.js",
    "content": "/*\n * Layout state Vuex Module\n */\n\n//import { dbColors } from 'dashblocks';\n\nconst state = {\n  dark: (localStorage['ub-dark-mode'] || 'false') === 'true',\n  menuAutoExpand: (localStorage['ub-menu-auto-expand'] || 'false') === 'true',\n  menuMini: (localStorage['ub-menu-mini'] || 'false') === 'true',\n  dashboardColorScheme: localStorage['ub-dashboard-color-scheme'] || 'Standard'\n};\n\nconst getters = {};\n\nconst mutations = {\n  SET_DARK(state, { dark }) {\n    localStorage['ub-dark-mode'] = dark;\n    state.dark = dark;\n  },\n  SET_MENU_AUTO_EXPAND(state, { menuAutoExpand }) {\n    localStorage['ub-menu-auto-expand'] = menuAutoExpand;\n    state.menuAutoExpand = menuAutoExpand;\n  },\n  SET_MENU_MINI(state, { menuMini }) {\n    localStorage['ub-menu-mini'] = menuMini;\n    state.menuMini = menuMini;\n  },\n  SET_DASHBOARD_COLOR_SCHEME(state, { dashboardColorScheme }) {\n    localStorage['ub-dashboard-color-scheme'] = dashboardColorScheme;\n    state.dashboardColorScheme = dashboardColorScheme;\n  }\n};\n\nconst actions = {\n  setDark({ commit }, { dark }) {\n    commit('SET_DARK', { dark: dark });\n  },\n  setMenuAutoExpand({ commit }, { menuAutoExpand }) {\n    commit('SET_MENU_AUTO_EXPAND', { menuAutoExpand: menuAutoExpand });\n  },\n  setMenuMini({ commit }, { menuMini }) {\n    commit('SET_MENU_MINI', { menuMini: menuMini });\n  },\n  setDashboardColorScheme({ commit }, { dashboardColorScheme }) {\n    commit('SET_DASHBOARD_COLOR_SCHEME', { dashboardColorScheme: dashboardColorScheme });\n  }\n};\n\nexport default {\n  namespaced: true,\n  state,\n  getters,\n  mutations,\n  actions\n};\n"
  },
  {
    "path": "src/store/store.js",
    "content": "import Vue from 'vue';\nimport Vuex from 'vuex';\nimport layout from './modules/layout';\nVue.use(Vuex);\n\nexport default new Vuex.Store({\n  state: {},\n  modules: {\n    layout\n  },\n  mutations: {},\n  actions: {}\n});\n"
  },
  {
    "path": "src/styles/quasar.scss",
    "content": "@import './quasar.variables.scss';\n@import '~quasar-styl';\n// @import '~quasar-addon-styl'\n\n// ???\n//@import 'dashblocks/src/assets/scss/dashblocks.scss';\n@import 'textbgcolors.scss';\n@import 'ubbox.scss';\n@import 'ubcode.scss';\n@import 'vgt.scss';\n\n.bg-none {\n  background: none;\n}\n\n.ub-bordered {\n  border: 1px solid rgba(0, 0, 0, 0.12);\n}\n.body--dark .ub-bordered {\n  border-color: rgba(255, 255, 255, 0.28);\n}\n.body--dark .q-menu {\n  -webkit-box-shadow: 0 1px 5px rgba(255, 255, 255, 0.12), 0 1px 1px rgba(255, 255, 255, 0.14), 0 1px 1px -2px rgba(255, 255, 255, 0.28);\n  box-shadow: 0 1px 5px rgba(255, 255, 255, 0.12), 0 1px 1px rgba(255, 255, 255, 0.14), 0 1px 1px -2px rgba(255, 255, 255, 0.28);\n}\n\nbody.body--dark {\n  color: $grey-6;\n}\n\n.q-dark {\n  color: $grey-6;\n}\n\n.q-item {\n  color: $blue-grey-8;\n}\n\n.q-item--dark {\n  color: $blue-grey-4;\n}\n\na {\n  color: $primary;\n  text-decoration: none;\n}\n\na:hover {\n  color: $primary;\n  text-decoration: underline;\n}\n\n.ub-btn-dropdown-bare {\n  .q-btn-dropdown__arrow {\n    margin-left: 0px;\n  }\n}\n\n.db-toolbar {\n  background: #0f2027; /* fallback for old browsers */\n  background: -webkit-linear-gradient(to right, #2c5364, #203a43, #0f2027); /* Chrome 10-25, Safari 5.1-6 */\n  background: linear-gradient(to right, #2c5364, #203a43, #0f2027); /* W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */\n}\n\n\n.ub-page {\n  @media (max-width: $breakpoint-xs-max) {\n    padding: 4px 8px 8px 8px;\n  }\n  @media (min-width: $breakpoint-sm-min) and (max-width: $breakpoint-md-max) {\n    padding: 4px 12px 16px 12px;\n  }\n  @media (min-width: $breakpoint-lg-min) {\n    padding: 4px 12px 24px 12px;\n  }\n}\n\n"
  },
  {
    "path": "src/styles/quasar.variables.scss",
    "content": "// It's highly recommended to change the default colors\n// to match your app's branding.\n\n$primary   : #027BE3;\n$secondary : #26A69A;\n$accent    : #9C27B0;\n\n$dark      : #1D1D1D;\n\n$positive  : #21BA45;\n$negative  : #C10015;\n$info      : #31CCEC;\n$warning   : #F2C037;\n\n@import '~quasar-variables-styl';\n"
  },
  {
    "path": "src/styles/textbgcolors.scss",
    "content": "/* Various text and bg colors */\n\n.text-down1 {\n  color: rgba(128,128,128,0.7);\n}\n\n"
  },
  {
    "path": "src/styles/ubbox.scss",
    "content": "/** UB Flex Box */\n.ub-box {\n  display: flex;\n  flex-flow: column;\n  flex-shrink: 0;\n\n  .ub-row {\n    border: 0px;\n  }\n\n  .ub-row.ub-box-fixed {\n    flex: 0 0 auto;\n    width: 100%;\n  }\n\n  .ub-row.ub-box-expand {\n    flex: 1 1 auto;\n    width: 100%;\n  }\n\n  .ub-row.ub-footer {\n    flex: 0 1 24px;\n    width: 100%;\n  }\n}\n"
  },
  {
    "path": "src/styles/ubcode.scss",
    "content": "/* UBook - code highlighting styles */\n\n.ub-code {\n  font: 14px/normal 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', 'source-code-pro', monospace;\n  color: #757575;\n\n  .ub-v-s {\n    padding: 2px;\n    margin: 1px;\n    background-color: #f5f5f5;\n    border-radius: 2px;\n    color: #1a1aa6;\n  }\n\n  .ub-v-n {\n    padding: 2px;\n    margin: 1px;\n    background-color: #f5f5f5;\n    border-radius: 2px;\n    color: #9a050f;\n  }\n}\n\n.q-dark .ub-code {\n  color: #757575;\n\n  .ub-v-s {\n    background-color: inherit;\n    color: #7986CB;\n  }\n\n  .ub-v-n {\n    background-color: inherit;\n    color: #AD1457;\n  }\n}\n"
  },
  {
    "path": "src/styles/vgt.scss",
    "content": "/* vue-good-table styles */\n\ntable.vgt-table.sws-table {\n  font-size: 14px;\n}\n\ntable.vgt-table.sws-table.nocturnal {\n  background-color: $grey-10;\n}\n\ntable.vgt-table.sws-table.nocturnal td {\n  color: $grey-5;\n}\n\ntable.vgt-table.sws-table.nocturnal th {\n  color: $grey-4;\n}\n\n.sws-td-badge span {\n  border-radius: 8px;\n  padding: 2px 6px;\n  color: white;\n}\n.sws-td-badge-neg span {\n  background-color: $negative;\n  opacity: 0.6;\n}\n\n.sws-td-badge-warn span {\n  background-color: $warning;\n  opacity: 0.7;\n  color: black;\n}\n"
  },
  {
    "path": "src/utils.js",
    "content": "// Utilities\nimport pathOr from 'ramda/src/pathOr';\n\nclass Utils {\n  constructor() {}\n\n  formatBytes(a, b) {\n    if (0 === a) return { value: 0, qualifier: 'Bytes' };\n    let c = 1e3,\n      d = b || 2,\n      e = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'],\n      f = Math.floor(Math.log(a) / Math.log(c));\n    return { value: parseFloat((a / Math.pow(c, f)).toFixed(d)), qualifier: e[f] };\n  }\n\n  bucketsToLabels(buckets) {\n    let labels = [];\n    if (Array.isArray(buckets) && buckets.length > 0) {\n      let prevBucket = 0;\n      for (let bucket of buckets) {\n        labels.push(`${prevBucket}-${bucket}`);\n        prevBucket = bucket;\n      }\n      labels.push(`${prevBucket}-inf`);\n    }\n    return labels;\n  }\n\n  getKVObjSortedArray(obj, asc) {\n    let keys = Object.keys(obj);\n    let data = keys.map(x => {\n      return { k: x, v: obj[x] };\n    });\n    data.sort(function(a, b) {\n      return asc ? a.v - b.v : b.v - a.v;\n    });\n    return data;\n  }\n\n  getApiStatsArray(statsData) {\n    let res = [];\n    let apiStats = pathOr(null, ['apistats'], statsData);\n    let apiDefs = pathOr(null, ['apidefs'], statsData);\n    if (!apiStats) {\n      return res;\n    }\n    for (let apiPath of Object.keys(apiStats)) {\n      let apiMethods = apiStats[apiPath];\n      for (let apiMethod of Object.keys(apiMethods)) {\n        res.push(\n          Object.assign(\n            {\n              path: apiPath,\n              method: apiMethod\n            },\n            apiMethods[apiMethod],\n            {\n              tags: pathOr([], [apiPath, apiMethod, 'tags'], apiDefs).join(',')\n            }\n          )\n        );\n      }\n    }\n    return res;\n  }\n\n  getMethodStatsArray(statsData) {\n    let res = [];\n    let allMethodStats = pathOr(null, ['method'], statsData);\n    if (!allMethodStats) {\n      return res;\n    }\n    for (let methodName of Object.keys(allMethodStats)) {\n      res.push(\n        Object.assign(\n          {\n            method: methodName\n          },\n          allMethodStats[methodName]\n        )\n      );\n    }\n    return res;\n  }\n\n  getCurrentTimelineBucket(statsData) {\n    let timelineSettings = pathOr(null, ['timeline', 'settings'], statsData);\n    let timelineData = pathOr(null, ['timeline', 'data'], statsData);\n    if (timelineData && timelineSettings) {\n      return timelineData[timelineSettings.bucket_current];\n    }\n    return {};\n  }\n\n  // Returns timeline sorted by timestampts asc\n  // TODO add API to return timeline in array already sorted\n  getSortedTimeline(statsData) {\n    let timelineSorted = [];\n    let timelineSettings = pathOr(null, ['timeline', 'settings'], statsData);\n    let timelineData = pathOr(null, ['timeline', 'data'], statsData);\n    if (timelineData && timelineSettings) {\n      for (let key of Object.keys(timelineData)) {\n        let entry = timelineData[key];\n        entry.tc = parseInt(key);\n        entry.ts = entry.tc * (timelineSettings.bucket_duration || 60000);\n        timelineSorted.push(entry);\n      }\n    }\n    // Sort it by timecode ascending\n    timelineSorted.sort(function(a, b) {\n      return a.tc - b.tc;\n    });\n    return timelineSorted;\n  }\n}\n\nconst utils = new Utils();\nexport default utils;\n"
  },
  {
    "path": "src/views/About.vue",
    "content": "<template>\n  <q-page padding>\n    <p>This is an about page</p>\n  </q-page>\n</template>\n\n<script>\nexport default {\n  name: 'PageAbout'\n};\n</script>\n"
  },
  {
    "path": "src/views/ChartJsShowcase.vue",
    "content": "<template>\n  <q-page class=\"ub-page\">\n    <div class=\"row items-center\">\n      <div class=\"col-md-12 q-ma-sm\">\n        <div class=\"text-h3\">Chart.js Showcase</div>\n      </div>\n    </div>\n    <db-dashboard v-if=\"ready\" :dbspec=\"dbspec\" :dbdata=\"dbdata\" :dark=\"dark\"> </db-dashboard>\n    <div class=\"row items-center\">\n      <div class=\"col-md-12 q-ma-sm\"></div>\n    </div>\n  </q-page>\n</template>\n\n<script>\nimport { DbData, DbColors } from 'dashblocks';\nimport { demodashboard } from '../mixins/demodashboard';\n\nexport default {\n  name: 'ChartJsShowcase',\n  components: {},\n  mixins: [demodashboard],\n  data() {\n    return {\n      ready: false,\n      refreshIntervalId: null,\n      dbdata: new DbData(),\n      dbspec: {\n        layout: {\n          type: 'grid'\n        },\n        colorScheme: 'default',\n        widgets: [\n          {\n            id: 'wTrend',\n            type: 'DbChartjsLine',\n            cspan: 16,\n            height: 250,\n            properties: {\n              options: {\n                elements: { point: { radius: 0 } },\n                animation: { duration: 0 },\n                responsive: true,\n                scales: {\n                  xAxes: [{ type: 'time', display: true, time: { unit: 'second' } }],\n                  yAxes: [{ display: true, ticks: { beginAtZero: true, min: 0, max: 1000 } }]\n                }\n              }\n            }\n          },\n          {\n            id: 'w1',\n            type: 'DbChartjsLine',\n            cspan: 4,\n            height: 250,\n            properties: {\n              options: {\n                maintainAspectRatio: false\n              }\n            }\n          },\n          {\n            id: 'w2',\n            type: 'DbChartjsBar',\n            cspan: 4,\n            height: 250\n          },\n          {\n            id: 'w3',\n            type: 'DbChartjsHorizontalBar',\n            cspan: 4\n          },\n          {\n            id: 'w4',\n            type: 'DbChartjsPie',\n            cspan: 4\n          },\n          {\n            id: 'w5',\n            type: 'DbChartjsDoughnut',\n            cspan: 4,\n            height: 250\n          },\n          {\n            id: 'w6',\n            type: 'DbChartjsPolarArea',\n            cspan: 4,\n            height: 250\n          },\n          {\n            id: 'w7',\n            type: 'DbChartjsRadar',\n            cspan: 4,\n            height: 250\n          },\n          {\n            id: 'w8',\n            type: 'DbChartjsBar',\n            cspan: 4,\n            height: 250\n          },\n          {\n            id: 'w9',\n            type: 'DbChartjsBubble',\n            cspan: 8,\n            height: 300\n          },\n          {\n            id: 'w10',\n            type: 'DbChartjsScatter',\n            cspan: 8,\n            height: 300,\n            properties: {\n              options: {\n                scales: {\n                  xAxes: [\n                    {\n                      type: 'linear',\n                      position: 'bottom'\n                    }\n                  ]\n                }\n              }\n            }\n          }\n        ]\n      }\n    };\n  },\n  mounted() {\n    this.initialize();\n    this.ready = true;\n  },\n  beforeDestroy: function() {\n    if (this.refreshIntervalId) {\n      clearInterval(this.refreshIntervalId);\n    }\n  },\n  methods: {\n    initialize: function() {\n      // Init dashboard color scheme from state\n      this.dbspec.colorScheme = this.dashboardColorScheme;\n\n      let dataTrend = {\n        datasets: [\n          {\n            label: 'Number of Requests',\n            data: []\n          }\n        ]\n      };\n\n      let dts = Date.now() - 100 * 1000;\n      for (let i = 0; i < 100; i++) {\n        dataTrend.datasets[0].data.push({\n          t: new Date(dts),\n          y: this.getRandomInt(100, 1000)\n        });\n        dts += 1000;\n      }\n\n      let dataOneSeries = {\n        labels: ['January', 'February', 'March', 'April'],\n        datasets: [\n          {\n            label: 'Data One',\n            data: [10, 20, 30, 100]\n          }\n        ]\n      };\n\n      let dataTwoSeries = {\n        labels: ['January', 'February', 'March', 'April'],\n        datasets: [\n          {\n            label: 'Data One',\n            data: [10, 20, 30, 100]\n          },\n          {\n            label: 'Data Two',\n            data: [50, 10, 70, 11]\n          }\n        ]\n      };\n\n      let dataBubbleTwoSeries = {\n        labels: ['January', 'February', 'March', 'April'],\n        datasets: [\n          {\n            label: 'Data One',\n            data: [\n              { x: 10, y: 20, r: 10 },\n              { x: 20, y: 20, r: 20 },\n              { x: 30, y: 30, r: 30 },\n              { x: 100, y: 200, r: 100 }\n            ]\n          },\n          {\n            label: 'Data Two',\n            data: [\n              { x: 30, y: 50, r: 50 },\n              { x: 60, y: 60, r: 60 },\n              { x: 80, y: 70, r: 70 },\n              { x: 100, y: 200, r: 10 }\n            ]\n          }\n        ]\n      };\n\n      let dataScatterTwoSeries = {\n        labels: ['January', 'February', 'March', 'April'],\n        datasets: [\n          {\n            label: 'Data One',\n            data: [\n              { x: 10, y: 20 },\n              { x: 20, y: 20 },\n              { x: 30, y: 30 },\n              { x: 100, y: 200 }\n            ]\n          },\n          {\n            label: 'Data Two',\n            data: [\n              { x: 30, y: 50 },\n              { x: 60, y: 60 },\n              { x: 80, y: 70 },\n              { x: 100, y: 200 }\n            ]\n          }\n        ]\n      };\n\n      let d1 = JSON.parse(JSON.stringify(dataTwoSeries));\n      let d2 = JSON.parse(JSON.stringify(dataOneSeries));\n      let d3 = JSON.parse(JSON.stringify(dataTwoSeries));\n      let d4 = JSON.parse(JSON.stringify(dataOneSeries));\n      let d5 = JSON.parse(JSON.stringify(dataTwoSeries));\n      let d6 = JSON.parse(JSON.stringify(dataOneSeries));\n      let d7 = JSON.parse(JSON.stringify(dataTwoSeries));\n      let d8 = JSON.parse(JSON.stringify(dataTwoSeries));\n      let d9 = JSON.parse(JSON.stringify(dataBubbleTwoSeries));\n      let d10 = JSON.parse(JSON.stringify(dataScatterTwoSeries));\n\n      this.dbdata.setWData('w1', { data: d1 });\n      this.dbdata.setWData('w2', { data: d2 });\n      this.dbdata.setWData('w3', { data: d3 });\n      this.dbdata.setWData('w4', { data: d4 });\n      this.dbdata.setWData('w5', { data: d5 });\n      this.dbdata.setWData('w6', { data: d6 });\n      this.dbdata.setWData('w7', { data: d7 });\n      this.dbdata.setWData('w8', { data: d8 });\n      this.dbdata.setWData('w9', { data: d9 });\n      this.dbdata.setWData('w10', { data: d10 });\n\n      this.dbdata.setWData('wTrend', { data: dataTrend });\n\n      // Dynamic updates\n      this.refreshIntervalId = setInterval(() => {\n        this.performRefresh();\n      }, 1000);\n    },\n\n    getRandomInt(min, max) {\n      min = Math.ceil(min);\n      max = Math.floor(max);\n      return Math.floor(Math.random() * (max - min)) + min; //The maximum is exclusive and the minimum is inclusive\n    },\n\n    performRefresh() {\n      console.log('Refreshing charts ... ');\n      let v = this.dbdata['w2'].data.datasets[0].data[0];\n      this.dbdata['w2'].data.datasets[0].data[0] = v + 10;\n      // We can add dynamically any prop to dataset entry ...\n      //comp.dbdata['w2'].data.datasets[0].borderWidth = bw++;\n      this.dbdata.touch('w2');\n\n      // Update (shift) trend timeline\n      this.dbdata['wTrend'].data.datasets[0].data.shift();\n      this.dbdata['wTrend'].data.datasets[0].data.push({\n        t: new Date(),\n        y: this.getRandomInt(100, 1000)\n      });\n      this.dbdata.touch('wTrend');\n    }\n  }\n};\n</script>\n"
  },
  {
    "path": "src/views/DashblocksShowcase.vue",
    "content": "<template>\n  <q-page class=\"ub-page\">\n    <db-dashboard v-if=\"ready\" :dbspec=\"dbspec\" :dbdata=\"dbdata\" :dark=\"dark\"> </db-dashboard>\n  </q-page>\n</template>\n\n<script>\nimport { DbData, DbColors } from 'dashblocks';\nimport { demodashboard } from '../mixins/demodashboard';\nimport { mapState } from 'vuex';\n\nexport default {\n  name: 'DashblocksShowcase',\n  mixins: [demodashboard],\n  data() {\n    return {\n      dbdata: new DbData(),\n      dbspec: {\n        layout: {\n          type: 'grid'\n        },\n        colorScheme: 'default',\n        widgets: [\n          {\n            id: 'w2',\n            type: 'DbDygraphsBar',\n            cspan: 16,\n            height: 250,\n            properties: {\n              options: {\n                stackedGraph: true,\n                title: 'Traffic over time',\n                ylabel: 'Requests, Mil.',\n                labels: ['Date', 'Success', 'Error'],\n                legend: 'always'\n              }\n            }\n          },\n\n          { id: 'w51', type: 'DbNumber', cspan: 4, properties: { title: 'Requests', subtitle: 'Total requests received', icon: 'fa fa-signal' } },\n          {\n            id: 'w52',\n            type: 'DbNumber',\n            cspan: 4,\n            properties: {\n              title: 'Apdex Score',\n              subtitle: 'Overall Apdex Score',\n              total: 1,\n              trendMax: 1,\n              format: '%.2f',\n              percentRanges: [\n                { value: 50, color: 'red' },\n                { value: 60, color: 'orange' },\n                { value: 100, color: 'green' }\n              ]\n            }\n          },\n          {\n            id: 'w53',\n            type: 'DbNumber',\n            cspan: 4,\n            properties: { title: 'Current Req Rate', subtitle: 'Requests per second', format: '%.2f', icon: 'fa fa-exchange-alt' }\n          },\n          {\n            id: 'w54',\n            type: 'DbNumber',\n            cspan: 4,\n            properties: { title: 'Current Err Rate', subtitle: 'Errors per second', format: '%.2f', icon: 'fa fa-exclamation' }\n          },\n\n          {\n            id: 'w8',\n            type: 'DbEasyPie',\n            cspan: 2,\n            height: 120,\n            properties: { barColor: '#2ca02c', lineWidth: 8 }\n          },\n          {\n            id: 'w9',\n            type: 'DbEasyPie',\n            cspan: 2,\n            height: 120,\n            properties: { barColor: '#2ca02c', lineWidth: 8 }\n          },\n          {\n            id: 'w10',\n            type: 'DbEasyPie',\n            cspan: 2,\n            height: 120,\n            properties: { barColor: '#ff7f0e', lineWidth: 8 }\n          },\n          {\n            id: 'w11',\n            type: 'DbEasyPie',\n            cspan: 2,\n            height: 120,\n            properties: { barColor: '#ff7f0e', lineWidth: 8 }\n          },\n          {\n            id: 'w12',\n            type: 'DbEasyPie',\n            cspan: 2,\n            height: 120,\n            properties: { barColor: '#2ca02c', lineWidth: 8 }\n          },\n          {\n            id: 'w13',\n            type: 'DbEasyPie',\n            cspan: 2,\n            height: 120,\n            properties: { barColor: '#2ca02c', lineWidth: 8 }\n          },\n          {\n            id: 'w14',\n            type: 'DbEasyPie',\n            cspan: 2,\n            height: 120,\n            properties: { barColor: '#d62728', lineWidth: 8 }\n          },\n          {\n            id: 'w15',\n            type: 'DbEasyPie',\n            cspan: 2,\n            height: 120,\n            properties: { barColor: '#d62728', lineWidth: 8 }\n          },\n          {\n            id: 'w3',\n            type: 'DbChartjsPie',\n            cspan: 4,\n            height: 250\n          },\n          {\n            id: 'w5',\n            type: 'DbChartjsBubble',\n            cspan: 8,\n            rspan: 2\n          },\n          {\n            id: 'w4',\n            type: 'DbChartjsPie',\n            cspan: 4,\n            height: 250\n          },\n          {\n            id: 'w6',\n            type: 'DbChartjsHorizontalBar',\n            cspan: 4,\n            height: 250\n          },\n          {\n            id: 'w7',\n            type: 'DbChartjsBar',\n            cspan: 4,\n            height: 250\n          }\n        ]\n      },\n      ready: false\n    };\n  },\n  mounted() {\n    // Initialize dashboard data\n    this.initialize();\n    this.ready = true;\n  },\n  methods: {\n    initialize: function() {\n      // Init dashboard color scheme from state\n      this.dbspec.colorScheme = this.dashboardColorScheme;\n\n      let totalReq = 0;\n      let trendReq = [];\n      let trendErr = [];\n      let dthData2 = [];\n      let sTS = Date.now() - 100 * 3600 * 1000;\n\n      for (let i = 0; i < 100; i++) {\n        let cTs = sTS + i * 3600 * 1000;\n        let d = new Date(cTs);\n        let r = Math.random();\n        let e = Math.random();\n        totalReq += Math.random() * 1000;\n        trendReq.push(r + e);\n        trendErr.push(e);\n\n        // Make sure we can see all colors in 10-color palette\n        /*\n        let cStep = Math.floor(i/10);\n        let dthEntry = [d,null,null,null,null,null,null,null,null,null,null];\n        dthEntry[cStep+1] = r;\n        dthEntry[cStep+2] = e;\n        */\n        let ss = (Math.sin(i / 3) + 3) * 8 - Math.random() * 3;\n        let se = (Math.sin(i / 3) + 2) * 4 - Math.random() * 2;\n\n        dthData2.push([d, ss, se]);\n      }\n\n      this.dbdata.setWData('w2', {\n        data: dthData2\n      });\n\n      let dataTwoSeries = {\n        labels: ['January', 'February', 'March', 'April'],\n        datasets: [\n          {\n            label: 'Data One',\n            data: [10, 20, 30, 100]\n          },\n          {\n            label: 'Data Two',\n            data: [50, 10, 70, 11]\n          }\n        ]\n      };\n\n      this.dbdata.setWData('w3', {\n        data: {\n          labels: ['January', 'February', 'March', 'April'],\n          datasets: [\n            {\n              label: 'Data One',\n              data: [10, 20, 30, 100]\n            }\n          ]\n        }\n      });\n\n      this.dbdata.setWData('w4', {\n        data: {\n          labels: ['January', 'February', 'March', 'April'],\n          datasets: [\n            {\n              label: 'Data One',\n              data: [50, 10, 67, 45]\n            }\n          ]\n        }\n      });\n\n      let bubbleData = {\n        labels: ['January', 'February', 'March', 'April'],\n        datasets: []\n      };\n\n      for (let j = 0; j < 10; j++) {\n        bubbleData.datasets.push({\n          label: `${j}`,\n          data: []\n        });\n      }\n\n      for (let i = 0; i < 10; i++) {\n        for (let k = 0; k < 10; k++) {\n          bubbleData.datasets[k].data.push({\n            x: this.getRand(200),\n            y: this.getRand(50),\n            r: this.getRand(20)\n          });\n        }\n      }\n\n      this.dbdata.setWData('w5', {\n        data: bubbleData\n      });\n\n      this.dbdata.setWData('w6', {\n        data: JSON.parse(JSON.stringify(dataTwoSeries))\n      });\n      this.dbdata.setWData('w7', {\n        data: JSON.parse(JSON.stringify(dataTwoSeries))\n      });\n\n      this.dbdata.setWData('w51', { value: totalReq, trend: trendReq });\n      this.dbdata.setWData('w52', { value: 0.8, trend: trendReq });\n      this.dbdata.setWData('w53', { value: 10, trend: trendReq });\n      this.dbdata.setWData('w54', { value: 4, trend: trendErr });\n\n      this.dbdata.setWData('w8', { value: 15 });\n      this.dbdata.setWData('w9', { value: 35 });\n      this.dbdata.setWData('w10', { value: 52 });\n      this.dbdata.setWData('w11', { value: 64 });\n      this.dbdata.setWData('w12', { value: 10 });\n      this.dbdata.setWData('w13', { value: 25 });\n      this.dbdata.setWData('w14', { value: 72 });\n      this.dbdata.setWData('w15', { value: 84 });\n    },\n    getRand: function(max) {\n      return Math.floor(Math.random() * Math.floor(max));\n    }\n  }\n};\n</script>\n"
  },
  {
    "path": "src/views/Dygraphs.vue",
    "content": "<template>\n  <q-page class=\"ub-page\">\n    <div class=\"row items-center\">\n      <div class=\"col-md-12 q-ma-sm\">\n        <div class=\"text-h3\">Dygraphs Showcase</div>\n      </div>\n    </div>\n    <db-dashboard v-if=\"ready\" :dbspec=\"dbspec\" :dbdata=\"dbdata\" :dark=\"dark\"> </db-dashboard>\n    <div class=\"row items-center\">\n      <div class=\"col-md-12 q-ma-sm\"></div>\n    </div>\n  </q-page>\n</template>\n\n<script>\nimport { DbData, DbColors } from 'dashblocks';\nimport { demodashboard } from '../mixins/demodashboard';\n\nexport default {\n  name: 'Dygraphs',\n  mixins: [demodashboard],\n  data() {\n    return {\n      cntr: 101,\n      sTS: null,\n      refreshIntervalId: null,\n      dbdata: new DbData(),\n      dbspec: {\n        layout: {\n          type: 'grid'\n        },\n        colorScheme: 'default',\n        widgets: [\n          {\n            id: 'w1',\n            type: 'DbDygraphsBar',\n            cspan: 16,\n            height: 250,\n            properties: {\n              options: {\n                title: 'Bar Chart',\n                ylabel: 'Count',\n                labels: ['Date', 'Success', 'Error'],\n                stackedGraph: true\n              }\n            }\n          },\n          {\n            id: 'w2',\n            type: 'DbDygraphsLine',\n            cspan: 16,\n            height: 250,\n            properties: {\n              options: {\n                stackedGraph: false,\n                title: 'Timeline with Real Time updates',\n                ylabel: 'Request Rate',\n                labels: ['Date', 'Success', 'Error'],\n                legend: 'always'\n              }\n            }\n          },\n          {\n            id: 'w3',\n            type: 'DbDygraphsLine',\n            cspan: 16,\n            height: 250,\n            properties: {\n              options: {\n                title: 'Random value Chart',\n                ylabel: 'Probability',\n                stackedGraph: false\n              }\n            }\n          }\n        ]\n      },\n      ready: false\n    };\n  },\n  mounted() {\n    this.initialize();\n    this.ready = true;\n  },\n  beforeDestroy: function() {\n    if (this.refreshIntervalId) {\n      clearInterval(this.refreshIntervalId);\n    }\n  },\n  methods: {\n    initialize: function() {\n      // Init dashboard color scheme from state\n      this.dbspec.colorScheme = this.dashboardColorScheme;\n\n      let dthData = [];\n      let dthData2 = [];\n      let dthData3 = [];\n      this.sTS = Date.now() - 100 * 3600 * 1000;\n      let sTS = this.sTS;\n\n      for (let i = 0; i < 100; i++) {\n        let cTs = sTS + i * 3600 * 1000;\n        let d = new Date(cTs);\n        let r = Math.random();\n        dthData.push([d, r, r + 0.5]);\n        dthData2.push([d, Math.random(), Math.random()]);\n        dthData3.push(Math.random());\n      }\n\n      this.dbdata.setWData('w1', {\n        data: dthData\n      });\n\n      this.dbdata.setWData('w2', {\n        data: dthData2\n      });\n\n      this.dbdata.setWData('w3', {\n        data: dthData3\n      });\n\n      // Dynamic updates\n      this.refreshIntervalId = setInterval(() => {\n        this.performRefresh();\n      }, 1000);\n    },\n\n    performRefresh() {\n      let newData3 = [];\n      for (let i = 0; i < 100; i++) {\n        newData3.push(Math.random());\n      }\n      this.dbdata.setWData('w3', {\n        data: newData3\n      });\n\n      // Add new value to second chart\n      let x = new Date(this.sTS + this.cntr * 3600 * 1000);\n      this.cntr++;\n      this.dbdata['w2'].data.shift();\n      this.dbdata['w2'].data.push([x, Math.random(), Math.random()]);\n      this.dbdata.touch('w2');\n    }\n  }\n};\n</script>\n"
  },
  {
    "path": "src/views/Home.vue",
    "content": "<template>\n  <q-page class=\"flex flex-center\">\n    <img alt=\"Quasar logo\" src=\"../assets/logo.png\" />\n  </q-page>\n</template>\n\n<style></style>\n\n<script>\nexport default {\n  name: 'PageHome'\n};\n</script>\n"
  },
  {
    "path": "src/views/SampleDashboard.vue",
    "content": "<template>\n  <db-dashboard v-if=\"ready\" :dbspec=\"dbspec\" :dbdata=\"dbdata\" :dark=\"isDark\"> </db-dashboard>\n</template>\n\n<script>\nimport { DbData } from 'dashblocks';\n\nexport default {\n  name: 'SampleDashboard',\n  data() {\n    return {\n      isDark: false,\n      dbdata: new DbData(),\n      // Declare Dashboard Layout. Add widgets to your dashboard, specifying how many columns and rows\n      // each widget takes. Dashblocks provides 16-columns CSS Grid layout.\n      // Pass additional options to widgets to adjust appearance as needed.\n      dbspec: {\n        layout: {\n          type: 'grid'\n        },\n        widgets: [\n          {\n            id: 'w1',\n            type: 'DbDygraphsBar',\n            cspan: 16,\n            height: 250,\n            properties: {\n              options: {\n                stackedGraph: true,\n                title: 'Traffic over time',\n                ylabel: 'Requests, Mil.',\n                labels: ['Date', 'Success', 'Error'],\n                legend: 'always'\n              }\n            }\n          },\n          {\n            id: 'w2',\n            type: 'DbChartjsPie',\n            cspan: 4,\n            height: 250\n          },\n          {\n            id: 'w3',\n            type: 'DbChartjsPie',\n            cspan: 4,\n            properties: {\n              options: {\n                legend: {\n                  position: 'right'\n                }\n              }\n            }\n          },\n          {\n            id: 'w4',\n            type: 'DbChartjsBar',\n            cspan: 4\n          },\n          {\n            id: 'w5',\n            type: 'DbChartjsBar',\n            cspan: 4\n          }\n        ]\n      },\n      ready: false\n    };\n  },\n  mounted() {\n    this.initialize();\n    this.ready = true;\n  },\n  methods: {\n    initialize: function() {\n      // Initialize dashboard data - set data for each dashboard widget\n      // This is obviously a sample that generates random data\n      // In real dashboards you would get data from database, backend APIs, vuex, etc\n      let dthData = [];\n      let sTS = Date.now() - 100 * 3600 * 1000;\n      for (let i = 0; i < 100; i++) {\n        dthData.push([new Date(sTS + i * 3600 * 1000), Math.random(), Math.random()]);\n      }\n\n      this.dbdata.setWData('w1', {\n        data: dthData\n      });\n\n      let dataOneSeries = {\n        labels: ['January', 'February', 'March', 'April'],\n        datasets: [\n          {\n            label: 'Data One',\n            data: [10, 20, 30, 100]\n          }\n        ]\n      };\n\n      let dataTwoSeries = {\n        labels: ['January', 'February', 'March', 'April'],\n        datasets: [\n          {\n            label: 'Data One',\n            data: [10, 20, 30, 100]\n          },\n          {\n            label: 'Data Two',\n            data: [50, 10, 70, 11]\n          }\n        ]\n      };\n\n      this.dbdata.setWData('w2', {\n        data: JSON.parse(JSON.stringify(dataOneSeries))\n      });\n\n      this.dbdata.setWData('w3', {\n        data: JSON.parse(JSON.stringify(dataOneSeries))\n      });\n\n      this.dbdata.setWData('w4', {\n        data: JSON.parse(JSON.stringify(dataOneSeries))\n      });\n      this.dbdata.setWData('w5', {\n        data: JSON.parse(JSON.stringify(dataTwoSeries))\n      });\n    }\n  }\n};\n</script>\n"
  },
  {
    "path": "src/views/apiop.vue",
    "content": "<template>\n  <q-page class=\"ub-page\">\n    <div class=\"row items-center\" style=\"margin-bottom: 10px;\">\n      <div class=\"col-md-12 q-ma-sm\">\n        <div class=\"text-h3\">{{ apiOpMethod }} {{ apiOpPath }}</div>\n        <div class=\"text-subtitle1\">\n          Check out <a href=\"https://github.com/slanatech/swagger-stats\" target=\"_blank\">swagger-stats</a> project to see this dashboard in action\n        </div>\n      </div>\n    </div>\n    <db-dashboard v-if=\"ready\" :dbspec=\"dbspec\" :dbdata=\"dbdata\" :dark=\"dark\"> </db-dashboard>\n  </q-page>\n</template>\n\n<script>\nimport { DbData } from 'dashblocks';\nimport { demodashboard } from '../mixins/demodashboard';\nimport pathOr from 'ramda/src/pathOr';\nimport { mapState } from 'vuex';\nimport utils from '../utils.js';\n\n// File '../data/apioperation.json' contains example dashboard data\nimport dashboardData from '../data/apioperation.json';\n\nexport default {\n  name: 'ApiOperation',\n  mixins: [demodashboard],\n  data() {\n    return {\n      timer: null,\n      apiOpMethod: null,\n      apiOpPath: null,\n      allOptions: null,\n      options: ['None'],\n      selection: null,\n      dbdata: new DbData(),\n      dbspec: {\n        layout: {\n          type: 'grid',\n          size: 12\n        },\n        colorScheme: 'default',\n        // prettier-ignore\n        widgets: [\n          { id: 'w1', height: 100, type: 'DbNumber', cspan: 2, properties: { title: 'Requests', subtitle: 'Total requests received', icon: 'fa fa-signal' } },\n          { id: 'w2', type: 'DbNumber', cspan: 2, properties: {\n            title: 'Apdex Score', subtitle: 'Overall Apdex Score', total: 1, trendMax: 1, format: '%.2f',\n            percentRanges: [\n              { value: 50, color: 'red'},\n              { value: 60, color: 'orange'},\n              { value: 100, color: 'green'},\n            ]}\n          },\n          { id: 'w3', type: 'DbNumber', cspan: 2, properties: { title: 'Req Rate', subtitle: 'Requests per second', format: '%.2f', icon: 'fa fa-exchange-alt' } },\n          { id: 'w4', type: 'DbNumber', cspan: 2, properties: { title: 'Err Rate', subtitle: 'Errors per second', format: '%.2f', icon: 'fa fa-exclamation' } },\n          { id: 'w5', type: 'DbNumber', cspan: 2, properties: { title: 'Avg HT', subtitle: 'Average Handle Time', format: '%.0f %s', icon:'fa fa-hourglass', qualifier: 'ms' } },\n          { id: 'w6', type: 'DbNumber', cspan: 2, properties: { title: 'Avg Req Payload', subtitle: 'Avg Req Content Len', format: '%.2f %s', icon: 'fa fa-sd-card' } },\n\n          { id: 'w7', height: 100, type: 'DbNumber', cspan: 2, properties: { title: 'Errors', subtitle: 'Total Error Responses' } },\n          { id: 'w8', type: 'DbNumber', cspan: 2, properties: {\n            title: '2XX', subtitle: 'Success Responses',\n            percentRanges: [\n              { value: 50, color: 'red'},\n              { value: 70, color: 'orange'},\n              { value: 100, color: 'green'}\n            ]}\n          },\n          { id: 'w9', type: 'DbNumber', cspan: 2, properties: { title: '3XX', subtitle: 'Redirect Responses' } },\n          { id: 'w10', type: 'DbNumber', cspan: 2, properties: { title: '4XX', subtitle: 'Client Error Responses' } },\n          { id: 'w11', type: 'DbNumber', cspan: 2, properties: { title: '5XX', subtitle: 'Server Error Responses' } },\n          { id: 'w12', type: 'DbNumber', cspan: 2, properties: { title: 'Avg Res Payload', subtitle: 'Avg Res Content Len', format: '%.2f %s', icon: 'fa fa-sd-card' } },\n          // TODO\n          {\n            id: 'w25',\n            type: 'DbChartjsBar',\n            cspan: 4,\n            height: 300,\n            properties: {\n              options: {\n                title: { display: true, text: 'Handle Time Histogram', position: 'top'},\n                legend: { display: false },\n                plugins: { labels: {render: ()=>{}}},\n                scales: { xAxes: [{ ticks: {autoSkip: false,maxRotation: 50,minRotation: 50}}]}\n              }\n            }\n          },\n          {\n            id: 'w26',\n            type: 'DbChartjsBar',\n            cspan: 4,\n            height: 300,\n            properties: {\n              options: {\n                title: { display: true, text: 'Request Size Histogram', position: 'top'},\n                legend: { display: false },\n                plugins: { labels: {render: ()=>{}}},\n                scales: { xAxes: [{ ticks: {autoSkip: false,maxRotation: 50,minRotation: 50}}]}\n              }\n            }\n          },\n          {\n            id: 'w27',\n            type: 'DbChartjsBar',\n            cspan: 4,\n            height: 300,\n            properties: {\n              options: {\n                title: { display: true, text: 'Response Size Histogram', position: 'top'},\n                legend: { display: false },\n                plugins: { labels: {render: ()=>{}}},\n                scales: { xAxes: [{ ticks: {autoSkip: false,maxRotation: 50,minRotation: 50}}]}\n              }\n            }\n          },\n\n          {\n            id: 'w28',\n            type: 'DbChartjsDoughnut',\n            cspan: 4,\n            height: 250,\n            properties: {\n              options: {\n                title: {display: true, text: 'Response Codes', position: 'top'},\n                legend: { position: 'right' }\n              }\n            }\n          },\n\n          {\n            id: 'w29',\n            type: 'QTable',\n            cspan: 8,\n            height: 250,\n            properties: {\n              title: \"Parameters\",\n              \"hide-bottom\": true,\n              dense: true,\n              flat: true,\n              columns: [\n                { name: 'name', label: 'Name', classes: 'text-bold', required: true, align: 'left',field: row => row.name,format: val => `${val}`,sortable: true },\n                { name: 'in', label: 'In', required: false, align: 'left',field: row => row.in,format: val => `${val}`,sortable: true },\n                { name: 'description', label: 'Description', required: false, align: 'left',field: row => row.description,format: val => `${val}`,sortable: true },\n                { name: 'hits', label: 'Hits', required: false, align: 'left',field: row => row.hits, format: val => `${val}`,sortable: true },\n                { name: 'misses', label: 'Misses', required: false, align: 'left',field: row => row.misses, format: val => `${val}`,sortable: true },\n                { name: 'required', label: 'Required', required: false, align: 'left',field: row => row.required, format: val => `${val}`,sortable: true }\n              ]\n            }\n          },\n\n        ]\n      },\n      ready: false\n    };\n  },\n  mounted() {\n    this.apiOpMethod = 'POST';\n    this.apiOpPath = '/v2/pet/{petId}/uploadImage';\n    this.initialize();\n    this.ready = true;\n  },\n  methods: {\n    initialize: function() {\n      // Init dashboard color scheme from state\n      this.dbspec.colorScheme = this.dashboardColorScheme;\n\n      // Init dashboard data\n      this.dbdata.setWData('w1', { value: 0 });\n      this.dbdata.setWData('w2', { value: 0 });\n      this.dbdata.setWData('w3', { value: 0 });\n      this.dbdata.setWData('w4', { value: 0 });\n      this.dbdata.setWData('w5', { value: 0 });\n      this.dbdata.setWData('w6', { value: 0, qualifier: '' });\n      this.dbdata.setWData('w7', { value: 0 });\n      this.dbdata.setWData('w8', { value: 0 });\n      this.dbdata.setWData('w9', { value: 0 });\n      this.dbdata.setWData('w10', { value: 0 });\n      this.dbdata.setWData('w11', { value: 0 });\n      this.dbdata.setWData('w12', { value: 0 });\n\n      this.dbdata.setWData('w25', { data: { labels: [], datasets: [{ data: [] }] } });\n      this.dbdata.setWData('w26', { data: { labels: [], datasets: [{ data: [] }] } });\n      this.dbdata.setWData('w27', { data: { labels: [], datasets: [{ data: [] }] } });\n      this.dbdata.setWData('w28', { data: { labels: [], datasets: [{ data: [] }] } });\n\n      this.dbdata.setWData('w29', { data: [] });\n\n      this.updateStats();\n    },\n\n    updateStats: function() {\n      let statsContainer = dashboardData;\n\n      // Update dashboard\n      let apiOpData = pathOr(null, ['apiop', this.apiOpPath, this.apiOpMethod], statsContainer);\n      if (!apiOpData) {\n        return;\n      }\n      let apiOpDefs = apiOpData.defs || null;\n      let apiOpStats = apiOpData.stats || null;\n      let apiOpDetails = apiOpData.details || null;\n\n      // prettier-ignore\n      let sampleTrend = [7,2,8,4,12,3,5,1,8,4,5,3,5,6,4,4,5,6,4,5,7,10,6,3,9,4,3,6,5,2,7,7,5,5,6,4,3,6,5,3,8,5,5,3,4,5,5,6,6,9,6,6,4,4,8,4,6,9,2,2,2];\n\n      // prettier-ignore\n      let apdexTrend = [0.9300832760038666,1.0991677037956888,1.5080733457452664,1.3017662086082953,0.8890979720871215,0.4299388782038658,1.2551497150509354,0.23328255526432873,1.3387578474936919,1.171484610292452,0.985009282390267,1.0972377567501495,1.1822818049445254,0.8216714354136625,0.7139942536635027,0.8524687819377466,0.8957148380635005,1.1791814826194928,0.8734830240640146,0.9373469394290042,0.9557698278513647,1.4338030279355496,1.6945503099423056,1.0435720923655443,1.421588191380935,1.200819983771061,0.25215721191799845,1.3870136577370393,1.1908659885154032,1.5075289911853935,1.398961736351431,1.5701949598995892,1.5406273027924196,0.5802998545050828,0.6718385922714454,1.1469110028022182,0.15772654442718248,1.0710489171273412,0.6907529656071347,1.1008530764033106,1.4366887183599992,0.4768850141039438,1.173959589956373,1.0656065739930713,0.7673044093061918,1.0307239951905622,0.3389022896740752,0.7170379737319517,1.3280924166724772,1.4362652694169207,0.99480786481041,1.4749906786443086,1.672799161196809,1.3533326728513753,0.7592205064106363,1.3511484645046492,0.9690981721689824,0.6148193945887903,0.9807964538273457,1.4229670856883982,1.04916522637735,1.643663308035937,0.47127772164461934,1.1659482229412916,1.255207088739469,0.6503494842079585,1.225824270860796,1.2686921478701063,1.3723389298800022,1.5636843626586703,1.3438985095335851,0.4431949663089141,1.279286387788352,0.7221967036515011,1.3572232285149108,1.089192293820332,1.2283151775422434,0.49938987010220326,0.9763521342726027,0.8244399534970988,0.3590773154814164,0.6112738998035447,0.5111310045686335,0.8857134245247529,1.5018364701672247,1.2629188884006528,0.4314090545795555,0.5521635244069991,1.3682280844985946,0.9557652913910848,0.8733058045080244,1.3399954244411356,1.5940507530992278,1.31354526181789,1.1690908850349404,0.533466159469911,0.5448203973516248,0.9254749056863463,1.0610640413995536,1.73656132513935];\n\n      let requestsTotal = pathOr(0, ['requests'], apiOpStats);\n      this.dbdata.setWData('w1', { value: requestsTotal, trend: sampleTrend });\n      this.dbdata.setWData('w2', { value: pathOr(0, ['apdex_score'], apiOpStats), trend: apdexTrend });\n      this.dbdata.setWData('w3', { value: pathOr(0, ['req_rate'], apiOpStats), trend: sampleTrend });\n      this.dbdata.setWData('w4', { value: pathOr(0, ['err_rate'], apiOpStats), trend: sampleTrend });\n      this.dbdata.setWData('w5', { value: pathOr(0, ['avg_time'], apiOpStats), trend: sampleTrend, trendMax: 100 });\n      let { value, qualifier } = utils.formatBytes(pathOr(0, ['avg_req_clength'], apiOpStats), 2);\n      this.dbdata.setWData('w6', { value: value, qualifier: qualifier, trend: sampleTrend, trendMax: 80 });\n\n      this.dbdata.setWData('w7', { value: pathOr(0, ['errors'], apiOpStats), total: requestsTotal, trend: sampleTrend });\n      this.dbdata.setWData('w8', { value: pathOr(0, ['success'], apiOpStats), total: requestsTotal, trend: sampleTrend });\n      this.dbdata.setWData('w9', { value: pathOr(0, ['redirect'], apiOpStats), total: requestsTotal });\n      this.dbdata.setWData('w10', { value: pathOr(0, ['client_error'], apiOpStats), total: requestsTotal, trend: sampleTrend });\n      this.dbdata.setWData('w11', { value: pathOr(0, ['server_error'], apiOpStats), total: requestsTotal, trend: sampleTrend });\n      ({ value, qualifier } = utils.formatBytes(pathOr(0, ['avg_res_clength'], apiOpStats), 2));\n      this.dbdata.setWData('w12', { value: value, qualifier: qualifier, trend: sampleTrend, trendMax: 30 });\n\n      this.dbdata['w25'].data.labels = utils.bucketsToLabels(pathOr([], ['duration', 'buckets'], apiOpDetails));\n      this.dbdata['w25'].data.datasets[0].data = pathOr([], ['duration', 'values'], apiOpDetails);\n      this.dbdata.touch('w25');\n\n      this.dbdata['w26'].data.labels = utils.bucketsToLabels(pathOr([], ['req_size', 'buckets'], apiOpDetails));\n      this.dbdata['w26'].data.datasets[0].data = pathOr([], ['req_size', 'values'], apiOpDetails);\n      this.dbdata.touch('w26');\n\n      this.dbdata['w27'].data.labels = utils.bucketsToLabels(pathOr([], ['res_size', 'buckets'], apiOpDetails));\n      this.dbdata['w27'].data.datasets[0].data = pathOr([], ['res_size', 'values'], apiOpDetails);\n      this.dbdata.touch('w27');\n\n      let codes = Object.keys(pathOr({}, ['code'], apiOpDetails));\n      this.dbdata['w28'].data.labels = codes;\n      this.dbdata['w28'].data.datasets[0].data = codes.map(x => pathOr(0, ['code', x, 'count'], apiOpDetails));\n      this.dbdata.touch('w28');\n\n      let paramNames = Object.keys(pathOr({}, ['parameters'], apiOpDetails));\n      this.dbdata['w29'].data = paramNames.map(x => pathOr(0, ['parameters', x], apiOpDetails));\n      this.dbdata.touch('w29');\n    }\n  }\n};\n</script>\n"
  },
  {
    "path": "src/views/errors.vue",
    "content": "<template>\n  <q-page class=\"ub-page\">\n    <div class=\"row items-center\" style=\"margin-bottom: 10px;\">\n      <div class=\"col-md-12 q-ma-sm\">\n        <div class=\"text-h3\">Errors Trend</div>\n        <div class=\"text-subtitle1\">\n          Check out <a href=\"https://github.com/slanatech/swagger-stats\" target=\"_blank\">swagger-stats</a> project to see this dashboard in action\n        </div>\n      </div>\n    </div>\n    <db-dashboard v-if=\"ready\" :dbspec=\"dbspec\" :dbdata=\"dbdata\" :dark=\"dark\"> </db-dashboard>\n  </q-page>\n</template>\n\n<script>\nimport { DbData } from 'dashblocks';\nimport pathOr from 'ramda/src/pathOr';\nimport { mapState } from 'vuex';\nimport utils from '../utils.js';\n\n// File '../data/errors.json' contains example dashboard data\nimport dashboardData from '../data/errors.json';\nimport { demodashboard } from '../mixins/demodashboard';\n\nexport default {\n  name: 'Errors',\n  mixins: [demodashboard],\n  data() {\n    return {\n      timer: null,\n      isDark: false,\n      apiOpMethod: null,\n      apiOpPath: null,\n      dbdata: new DbData(),\n      dbspec: {\n        layout: {\n          type: 'grid',\n          size: 12\n        },\n        colorScheme: 'default',\n        // prettier-ignore\n        widgets: [\n          {\n            id: 'w1',\n            type: 'DbDygraphsBar',\n            cspan: 12,\n            height: 250,\n            properties: {\n              options: {\n                stackedGraph: true,\n                ylabel: 'Errors',\n                labels: ['Date', 'Client Error','Server Error'],\n                legend: 'always'\n              }\n            }\n          },\n\n          { id: 'wR', type: 'DbNumber', cspan: 2, properties: { title: 'Requests', subtitle: 'Total requests received', icon: 'fa fa-signal' } },\n          { id: 'wE', type: 'DbNumber', cspan: 2, properties: { title: 'Errors', subtitle: 'Total Error Responses' } },\n\n          {\n            id: 'w21',\n            type: 'DbChartjsHorizontalBar',\n            cspan: 4,\n            rspan: 3,\n            height: 300,\n            properties: {\n              options: {\n                title: {display: true, text: 'Top Not Found (404)', position: 'top'},\n                legend: { display: false }\n              }\n            }\n          },\n          {\n            id: 'w22',\n            type: 'DbChartjsHorizontalBar',\n            cspan: 4,\n            rspan: 3,\n            height: 300,\n            properties: {\n              options: {\n                title: {display: true, text: 'Top Server Error (500)', position: 'top'},\n                legend: { display: false }\n              }\n            }\n          },\n          { id: 'wE4', type: 'DbNumber', cspan: 2, properties: { title: '4XX', subtitle: 'Client Error Responses' } },\n          { id: 'wE5', type: 'DbNumber', cspan: 2, properties: { title: '5XX', subtitle: 'Server Error Responses' } },\n          {\n            id: 'w20',\n            type: 'DbChartjsDoughnut',\n            cspan: 4,\n            height: 300,\n            properties: {\n              options: {\n                title: {display: true, text: 'Error Codes', position: 'top'},\n                legend: { position: 'right' }\n              }\n            }\n          },\n          {\n            id: 'w29',\n            type: 'QTable',\n            cspan: 6,\n            properties: {\n              title: \"Top Not Found (404)\",\n              \"hide-bottom\": false,\n              color: 'primary',\n              dense: true,\n              flat: true,\n              columns: [\n                { name: 'path', label: 'Path', classes: 'text-bold', required: true, align: 'left',field: row => row.k,format: val => `${val}`,sortable: true },\n                { name: 'count', label: 'Count', classes: 'text-bold text-negative', required: false, align: 'left',field: row => row.v,format: val => `${val}`,sortable: true },\n              ]\n            }\n          },\n\n          {\n            id: 'w30',\n            type: 'QTable',\n            cspan: 6,\n            properties: {\n              title: \"Top Server Error (500)\",\n              \"hide-bottom\": false,\n              dense: true,\n              flat: true,\n              columns: [\n                { name: 'path', label: 'Path', classes: 'text-bold', required: true, align: 'left',field: row => row.k,format: val => `${val}`,sortable: true },\n                { name: 'count', label: 'Count', classes: 'text-bold text-negative', required: false, align: 'left',field: row => row.v,format: val => `${val}`,sortable: true },\n              ]\n            }\n          },\n\n        ]\n      },\n      ready: false\n    };\n  },\n  computed: {\n    ...mapState({\n      dark: state => state.layout.dark\n    })\n  },\n  watch: {},\n  mounted() {\n    this.initialize();\n    this.ready = true;\n  },\n  methods: {\n    initialize: function() {\n      // Init dashboard color scheme from state\n      this.dbspec.colorScheme = this.dashboardColorScheme;\n\n      this.dbdata.setWData('w1', { data: [] });\n\n      this.dbdata.setWData('wR', { value: 0, trend: [] });\n      this.dbdata.setWData('wE', { value: 0, trend: [] });\n      this.dbdata.setWData('wE4', { value: 0, trend: [] });\n      this.dbdata.setWData('wE5', { value: 0, trend: [] });\n\n      this.dbdata.setWData('w20', { data: { labels: [], datasets: [{ data: [] }] } });\n      this.dbdata.setWData('w21', { data: { labels: [], datasets: [{ data: [] }] } });\n      this.dbdata.setWData('w22', { data: { labels: [], datasets: [{ data: [] }] } });\n\n      this.dbdata.setWData('w29', { data: [] });\n      this.dbdata.setWData('w30', { data: [] });\n\n      this.updateStats();\n    },\n\n    updateStats: function() {\n      let dthData = [];\n      let trendsData = [[], [], [], []];\n      let statsContainer = dashboardData;\n      let timelineSorted = utils.getSortedTimeline(statsContainer);\n      for (let entry of timelineSorted) {\n        dthData.push([new Date(entry.ts), pathOr(0, ['stats', 'client_error'], entry), pathOr(0, ['stats', 'server_error'], entry)]);\n        trendsData[0].push(pathOr(0, ['stats', 'requests'], entry));\n        trendsData[1].push(pathOr(0, ['stats', 'errors'], entry));\n        trendsData[2].push(pathOr(0, ['stats', 'client_error'], entry));\n        trendsData[3].push(pathOr(0, ['stats', 'server_error'], entry));\n      }\n      this.dbdata.setWData('w1', { data: dthData });\n\n      let requestsTotal = pathOr(0, ['all', 'requests'], statsContainer);\n      let reqTrendMax = Math.max(...trendsData[0]);\n      this.dbdata.setWData('wR', { value: requestsTotal, trend: trendsData[0] });\n      this.dbdata.setWData('wE', { value: pathOr(0, ['all', 'errors'], statsContainer), trend: trendsData[1], trendMax: reqTrendMax, total: requestsTotal });\n      this.dbdata.setWData('wE4', {\n        value: pathOr(0, ['all', 'client_error'], statsContainer),\n        trend: trendsData[2],\n        trendMax: reqTrendMax,\n        total: requestsTotal\n      });\n      this.dbdata.setWData('wE5', {\n        value: pathOr(0, ['all', 'server_error'], statsContainer),\n        trend: trendsData[3],\n        trendMax: reqTrendMax,\n        total: requestsTotal\n      });\n\n      let errorsData = pathOr(null, ['errors'], statsContainer);\n      if (!errorsData) {\n        return;\n      }\n\n      let codesData = utils.getKVObjSortedArray(pathOr({}, ['statuscode'], errorsData), false);\n      this.dbdata['w20'].data.labels = codesData.map(x => x.k);\n      this.dbdata['w20'].data.datasets[0].data = codesData.map(x => x.v);\n      this.dbdata.touch('w20');\n\n      let topNotFound = utils.getKVObjSortedArray(pathOr({}, ['topnotfound'], errorsData), false);\n      this.dbdata['w21'].data.labels = topNotFound.map(x => x.k);\n      this.dbdata['w21'].data.datasets[0].data = topNotFound.map(x => x.v);\n      this.dbdata.touch('w21');\n\n      let topServerError = utils.getKVObjSortedArray(pathOr({}, ['topservererror'], errorsData), false);\n      this.dbdata['w22'].data.labels = topServerError.map(x => x.k);\n      this.dbdata['w22'].data.datasets[0].data = topServerError.map(x => x.v);\n      this.dbdata.touch('w22');\n\n      this.dbdata['w29'].data = topNotFound;\n      this.dbdata.touch('w29');\n\n      this.dbdata['w30'].data = topServerError;\n      this.dbdata.touch('w30');\n    }\n  }\n};\n</script>\n"
  },
  {
    "path": "src/views/forms.vue",
    "content": "<template>\n  <q-page class=\"ub-page\">\n    <div class=\"row items-center\">\n      <div class=\"col-md-10 offset-md-1 q-ma-lg\">\n        <div class=\"text-h3\">Forms</div>\n      </div>\n    </div>\n    <div class=\"row items-center\">\n      <div class=\"col-md-10 offset-md-1 q-ma-md\">\n        <q-banner dense class=\"bg-purple-8 text-white\">\n          <template v-slot:avatar>\n            <q-icon name=\"mdi-information-outline\" />\n          </template>\n          Work in progress ...\n        </q-banner>\n      </div>\n    </div>\n    <div class=\"row\">\n      <div class=\"col-md-6\">\n        <q-list padding>\n          <q-item tag=\"label\" v-ripple>\n            <q-item-section>\n              <q-item-label>Dark Mode</q-item-label>\n            </q-item-section>\n            <q-item-section side>\n              <q-toggle v-model=\"dark\" icon=\"brightness_medium\" />\n            </q-item-section>\n          </q-item>\n\n          <q-item tag=\"label\" v-ripple>\n            <q-item-section>\n              <q-item-label>Minimize Menu</q-item-label>\n              <q-item-label caption>Minimize menu sidebar</q-item-label>\n            </q-item-section>\n            <q-item-section side top>\n              <q-toggle v-model=\"menuMini\" icon=\"menu\" />\n            </q-item-section>\n          </q-item>\n\n          <q-item tag=\"label\" v-ripple>\n            <q-item-section>\n              <q-item-label>Auto-Expand Menu</q-item-label>\n              <q-item-label caption>Auto-expand menu when hovering</q-item-label>\n            </q-item-section>\n            <q-item-section side top>\n              <q-toggle v-model=\"menuAutoExpand\" icon=\"menu\" />\n            </q-item-section>\n          </q-item>\n\n          <q-separator spaced />\n        </q-list>\n      </div>\n      <div class=\"col-md-6\">\n        <q-form class=\"q-gutter-md\">\n          <q-input\n            filled\n            v-model=\"name\"\n            label=\"Your name *\"\n            hint=\"Name and surname\"\n            lazy-rules\n            :rules=\"[val => (val && val.length > 0) || 'Please type something']\"\n          />\n\n          <q-input\n            filled\n            type=\"number\"\n            v-model=\"age\"\n            label=\"Your age *\"\n            lazy-rules\n            :rules=\"[val => (val !== null && val !== '') || 'Please type your age', val => (val > 0 && val < 100) || 'Please type a real age']\"\n          />\n\n          <q-toggle v-model=\"accept\" label=\"I accept the license and terms\" />\n\n          <div>\n            <q-btn label=\"Submit\" type=\"submit\" color=\"primary\" />\n            <q-btn label=\"Reset\" type=\"reset\" color=\"primary\" flat class=\"q-ml-sm\" />\n          </div>\n        </q-form>\n      </div>\n    </div>\n  </q-page>\n</template>\n\n<script>\nexport default {\n  name: 'Forms',\n  data() {\n    return {};\n  },\n  watch: {},\n  mounted() {},\n  methods: {}\n};\n</script>\n"
  },
  {
    "path": "src/views/materialicons.vue",
    "content": "<template>\n  <q-page class=\"ub-page\">\n    <div class=\"row items-center\">\n      <div class=\"col-md-10 offset-md-1 q-ma-lg\">\n        <div class=\"text-h3\">Material Icons</div>\n      </div>\n    </div>\n    <div class=\"row items-center\">\n      <div class=\"col-md-10 offset-md-1 q-ma-md\">\n        <div class=\"text-subtitle1\">\n          MDI icons by <a href=\"https://materialdesignicons.com/\">https://materialdesignicons.com/</a>. See detailed documentation on using icons in Quasar at\n          <a href=\"https://quasar.dev/style/icon\">https://quasar.dev/style/icon</a>\n        </div>\n      </div>\n    </div>\n  </q-page>\n</template>\n\n<script>\nexport default {\n  name: 'MaterialIcons',\n  data() {\n    return {};\n  },\n  watch: {},\n  mounted() {},\n  methods: {}\n};\n</script>\n"
  },
  {
    "path": "src/views/mdi.vue",
    "content": "<template>\n  <q-page class=\"ub-page\">\n    <div class=\"row items-center\">\n      <div class=\"col-md-10 offset-md-1 q-ma-lg\">\n        <div class=\"text-h3\">Material Design Icons</div>\n      </div>\n    </div>\n    <div class=\"row items-center\">\n      <q-input v-model=\"searchQuery\" debounce=\"300\" label=\"Search Icons\" clearable class=\"col-md-4 offset-md-4\">\n        <template v-slot:prepend>\n          <q-icon name=\"search\" />\n        </template>\n      </q-input>\n    </div>\n    <div class=\"row items-center\">\n      <div class=\"col-md-10 offset-md-1 ub-icons-set\" v-on:click=\"onIconClick\">\n        <!--<q-icon v-for=\"icon in icons\" v-bind:key=\"icon\" :name=\"`mdi-${icon}`\" :title=\"`mdi-${icon}`\" size=\"xl\" class=\"q-pa-md q-ma-lg\"></q-icon>-->\n        <i v-for=\"icon in icons\" v-bind:key=\"icon\" :class=\"`mdi mdi-${icon}`\" :title=\"`mdi-${icon}`\"></i>\n      </div>\n    </div>\n    <q-drawer v-model=\"showDetails\" side=\"right\" bordered class=\"ub-drawer-transparent\">\n      <div style=\"text-align: center;\" class=\"q-ma-lg\">\n        <q-icon v-if=\"currentIcon\" :name=\"currentIcon\" style=\"font-size: 240px;\"></q-icon>\n      </div>\n      <div style=\"text-align: center;\" class=\"text-subtitle1 q-ma-md\">\n        {{ currentIcon }}\n      </div>\n      <div style=\"text-align: center;\" class=\"q-ma-md\">\n        <q-btn dense color=\"accent\" title=\"Copy\" icon=\"mdi-clipboard-text-multiple-outline\" @click=\"onCopy\">Copy</q-btn>\n      </div>\n    </q-drawer>\n  </q-page>\n</template>\n\n<script>\nimport iconsmdiv5 from '../data/iconsmdiv5.json';\n\nexport default {\n  name: 'MDIIcons',\n  data() {\n    return {\n      icons: [],\n      searchQuery: '',\n      currentIcon: null,\n      showDetails: false\n    };\n  },\n  watch: {\n    searchQuery: function(val) {\n      if (!val || val === '') {\n        this.icons = Object.freeze(iconsmdiv5);\n        return;\n      }\n      const needle = val.toLowerCase();\n      this.icons = Object.freeze(iconsmdiv5.filter(v => v.toLowerCase().indexOf(needle) > -1));\n    }\n  },\n  mounted() {\n    this.icons = Object.freeze(iconsmdiv5);\n  },\n  methods: {\n    onIconClick(e) {\n      if (e.target && e.target.title) {\n        this.currentIcon = e.target.title;\n        this.showDetails = true;\n      }\n    },\n    onCopy(index) {\n      let tempInput = document.createElement('textarea');\n      tempInput.style = 'position: absolute; left: -1000px; top: -1000px';\n      tempInput.value = this.currentIcon;\n      document.body.appendChild(tempInput);\n      tempInput.select();\n      document.execCommand('copy');\n      document.body.removeChild(tempInput);\n    }\n  }\n};\n</script>\n<style lang=\"scss\">\n.ub-icons-set {\n  font-size: 48px;\n  font-style: normal;\n  color: rgba(69, 90, 100, 0.8);\n\n  i {\n    padding: 20px;\n    margin: 10px;\n    cursor: pointer;\n  }\n}\n\n.body--dark .ub-icons-set {\n  color: rgba(144, 164, 174, 0.5);\n}\n\n.ub-drawer-transparent {\n  .q-drawer {\n    background: #fff;\n  }\n}\n.body--dark .ub-drawer-transparent {\n  .q-drawer {\n    background: #121212;\n  }\n}\n</style>\n"
  },
  {
    "path": "src/views/observability.vue",
    "content": "<template>\n  <q-page class=\"ub-page\">\n    <div class=\"row items-center\">\n      <div class=\"col-md-10 offset-md-1 q-ma-lg\">\n        <div class=\"text-h3\">Observability Dashboards</div>\n      </div>\n    </div>\n    <div class=\"row items-center\">\n      <div class=\"col-md-10 offset-md-1 q-ma-md\">\n        <q-banner dense class=\"bg-purple-8 text-white\">\n          <template v-slot:avatar>\n            <q-icon name=\"mdi-information-outline\" />\n          </template>\n          Work in progress ...\n        </q-banner>\n      </div>\n    </div>\n  </q-page>\n</template>\n\n<script>\nexport default {\n  name: 'Observability',\n  data() {\n    return {};\n  },\n  watch: {},\n  mounted() {},\n  methods: {}\n};\n</script>\n"
  },
  {
    "path": "src/views/quasartable.vue",
    "content": "<template>\n  <q-page class=\"ub-page\">\n    <div class=\"row items-center\">\n      <div class=\"col-md-12 q-ma-sm\">\n        <div class=\"text-h3\">Quasar Tables</div>\n        <div class=\"text-subtitle1\">\n          <a href=\"https://quasar.dev/vue-components/table\" target=\"_blank\">https://quasar.dev/vue-components/table</a>\n        </div>\n      </div>\n    </div>\n    <div class=\"row items-center\">\n      <div class=\"col-md-6 col-sm-6 col-xs-12 q-pa-sm\">\n        <div class=\"text-h5\">Simple table</div>\n        <p-table :obj=\"pTableData\" style=\"height: 400px;\"></p-table>\n      </div>\n      <div class=\"col-md-6 col-sm-6 col-xs-12 q-pa-sm\">\n        <div class=\"text-h5\">Filtering, Row Selection, Sorting</div>\n        <i-table\n          :items=\"iTableItems\"\n          :selected-items.sync=\"selectedItems\"\n          :highlighted-item.sync=\"highlightedItems\"\n          value-prop=\"name\"\n          active-prop=\"active\"\n          value-title=\"Name\"\n          selection=\"multiple\"\n          :selection-toggle=\"true\"\n          :show-data=\"true\"\n          data-prop=\"data\"\n          data-title=\"Value\"\n          style=\"height: 400px;\"\n        />\n      </div>\n    </div>\n    <div class=\"row items-center\" style=\"margin-top: 20px;\">\n      <div class=\"col-md-12 q-ma-sm\">\n        <div class=\"text-h5\">Advanced Table: Filtering, Pagination, Sorting, Preview, Full Screen, Click on Row</div>\n        <h-table :hits=\"hitsTableData\" :display-fields=\"hitsDisplayFields\" v-on:rowClick=\"onRowClick\" />\n      </div>\n    </div>\n    <q-dialog v-model=\"hitDetails\">\n      <q-card>\n        <q-card-section>\n          <div class=\"text-h6\">Properties</div>\n        </q-card-section>\n\n        <q-separator />\n\n        <q-card-section style=\"max-height: 50vh\" class=\"scroll\">\n          <p-table :obj=\"selectedHit\"></p-table>\n        </q-card-section>\n\n        <q-separator />\n\n        <q-card-actions align=\"right\">\n          <q-btn flat label=\"Close\" color=\"primary\" v-close-popup />\n        </q-card-actions>\n      </q-card>\n    </q-dialog>\n  </q-page>\n</template>\n\n<script>\nimport pathOr from 'ramda/src/pathOr';\nimport { vgtMethods } from '../mixins/vgtmethods';\nimport { mapState } from 'vuex';\nimport utils from '../utils.js';\nimport PTable from '../components/tables/ptable.vue';\nimport ITable from '../components/tables/itable.vue';\nimport HTable from '../components/tables/htable.vue';\n\n// File '../data/api.json' contains example data for the table\nimport dashboardData from '../data/api.json';\nimport requestsData from '../data/requests.json';\nimport PTableData from '../data/ptabledata.json';\nimport ItemsTableData from '../data/itemstabledata.json';\nimport HitsData from '../data/hitsdata.json';\n\nexport default {\n  name: 'QuasarTable',\n  components: { PTable, ITable, HTable },\n  mixins: [vgtMethods],\n  data() {\n    return {\n      timer: null,\n      selectedItems: [],\n      highlightedItems: null,\n      pTableData: PTableData,\n      selectedHit: null,\n      hitDetails: false,\n      hitsDisplayFields: {\n        'api.query': ['api', 'query'],\n        'http.response.code': ['http', 'response', 'code'],\n        'http.response.phrase': ['http', 'response', 'phrase'],\n        responsetime: ['responsetime'],\n        'api.operationId': ['api', 'operationId']\n      },\n      rows: []\n    };\n  },\n  computed: {\n    iTableItems: function() {\n      return ItemsTableData;\n    },\n    hitsTableData: function() {\n      return HitsData;\n    }\n  },\n  watch: {},\n  methods: {\n    onRowClick: function(row) {\n      this.selectedHit = row;\n      this.hitDetails = true;\n    }\n  }\n};\n</script>\n"
  },
  {
    "path": "src/views/requests.vue",
    "content": "<template>\n  <q-page class=\"ub-page\">\n    <div class=\"row items-center\" style=\"margin-bottom: 10px;\">\n      <div class=\"col-md-12 q-ma-sm\">\n        <div class=\"text-h3\">Requests</div>\n        <div class=\"text-subtitle1\">\n          Check out <a href=\"https://github.com/slanatech/swagger-stats\" target=\"_blank\">swagger-stats</a> project to see this dashboard in action\n        </div>\n      </div>\n    </div>\n    <div style=\"padding: 4px;margin-bottom: 20px;\">\n      <vue-good-table :columns=\"columns\" :rows=\"rows\" :theme=\"vgtTheme\" styleClass=\"vgt-table condensed bordered striped sws-table\"> </vue-good-table>\n    </div>\n    <db-dashboard v-if=\"ready\" :dbspec=\"dbspec\" :dbdata=\"dbdata\" :dark=\"dark\"> </db-dashboard>\n  </q-page>\n</template>\n\n<script>\nimport { DbData } from 'dashblocks';\nimport pathOr from 'ramda/src/pathOr';\nimport { vgtMethods } from '../mixins/vgtmethods';\nimport { mapState } from 'vuex';\nimport utils from '../utils.js';\n\n// File '../data/requests.json' contains example dashboard data\nimport dashboardData from '../data/requests.json';\nimport { demodashboard } from '../mixins/demodashboard';\n\nexport default {\n  name: 'ApiView',\n  components: {},\n  mixins: [vgtMethods, demodashboard],\n  data() {\n    return {\n      timer: null,\n      columns: [\n        { label: 'Method', field: 'method', tdClass: 'text-weight-bold' },\n        { label: 'Requests', field: 'requests', type: 'number', tdClass: 'text-weight-bold' },\n        { label: 'Responses', field: 'responses', type: 'number' },\n        { label: 'Apdex Score', field: 'apdex_score', type: 'number', formatFn: this.formatToFixed2, tdClass: this.tdClassApdex },\n        { label: 'Errors', field: 'errors', type: 'number', tdClass: this.tdClassErrors },\n        { label: 'Req rate', field: 'req_rate', type: 'number', formatFn: this.formatToFixed2 },\n        { label: 'Err rate', field: 'err_rate', type: 'number', formatFn: this.formatToFixed2, tdClass: this.tdClassErrRate },\n        { label: 'Success', field: 'success', type: 'number' },\n        { label: 'Redirect', field: 'redirect', type: 'number' },\n        { label: 'Client Error', field: 'client_error', type: 'number', tdClass: this.tdClassCErr },\n        { label: 'Server Error', field: 'server_error', type: 'number', tdClass: this.tdClassSErr },\n        { label: 'Max Time (ms)', field: 'max_time', type: 'number' },\n        { label: 'Avg Time (ms)', field: 'avg_time', type: 'number', formatFn: this.formatToFixed2 },\n        { label: 'Avg Req Size', field: 'avg_req_clength', type: 'number', formatFn: this.formatToFixed0 },\n        { label: 'Avg Res Size', field: 'avg_res_clength', type: 'number', formatFn: this.formatToFixed0 }\n      ],\n      rows: [],\n      dbdata: new DbData(),\n      dbspec: {\n        layout: {\n          type: 'grid',\n          size: 12\n        },\n        colorScheme: 'default',\n        // prettier-ignore\n        widgets: [\n          { id: 'w1', type: 'DbNumber', cspan: 3, properties: { title: 'GET', subtitle: 'GET Requests' } },\n          { id: 'w2', type: 'DbNumber', cspan: 3, properties: { title: 'POST', subtitle: 'POST Requests' } },\n          { id: 'w3', type: 'DbNumber', cspan: 3, properties: { title: 'PUT', subtitle: 'PUT Requests' } },\n          { id: 'w4', type: 'DbNumber', cspan: 3, properties: { title: 'DELETE', subtitle: 'DELETE Requests' } },\n          {\n            id: 'w23',\n            type: 'DbChartjsDoughnut',\n            cspan: 4,\n            height: 250,\n            properties: {\n              options: {\n                title: {display: true, text: 'Requests by method', position: 'top'},\n                legend: { position: 'right' }\n              }\n            }\n          },\n          {\n            id: 'w24',\n            type: 'DbChartjsDoughnut',\n            cspan: 4,\n            height: 250,\n            properties: {\n              options: {\n                title: {display: true, text: 'Errors by method', position: 'top'},\n                legend: { position: 'right' }\n              }\n            }\n          },\n          {\n            id: 'w25',\n            type: 'DbChartjsBar',\n            cspan: 4,\n            height: 250,\n            properties: {\n              options: {\n                title: { display: true, text: 'Apdex Score', position: 'top'},\n                legend: { display: false },\n                plugins: { labels: {render: ()=>{}}}\n              }\n            }\n          },\n          {\n            id: 'w26',\n            type: 'DbChartjsBar',\n            cspan: 4,\n            height: 250,\n            properties: {\n              options: {\n                title: { display: true, text: 'Request Rate', position: 'top'},\n                legend: { display: false },\n                plugins: { labels: {render: ()=>{}}}\n              }\n            }\n          },\n          {\n            id: 'w27',\n            type: 'DbChartjsBar',\n            cspan: 4,\n            properties: {\n              options: {\n                title: { display: true, text: 'Error Rate', position: 'top'},\n                legend: { display: false },\n                plugins: { labels: {render: ()=>{}}}\n              }\n            }\n          },\n          {\n            id: 'w28',\n            type: 'DbChartjsBar',\n            cspan: 4,\n            properties: {\n              options: {\n                title: { display: true, text: 'Avg Handle Time', position: 'top'},\n                legend: { display: false },\n                plugins: { labels: {render: ()=>{}}}\n              }\n            }\n          }\n        ]\n      },\n      ready: false\n    };\n  },\n  computed: {\n    vgtTheme: function() {\n      return this.dark ? 'nocturnal' : 'default';\n    }\n  },\n  watch: {},\n  mounted() {\n    this.initialize();\n    this.ready = true;\n  },\n  methods: {\n    initialize: function() {\n      // Init dashboard color scheme from state\n      this.dbspec.colorScheme = this.dashboardColorScheme;\n\n      // Init dashboard data\n      this.dbdata.setWData('w1', { value: 0, total: 0 });\n      this.dbdata.setWData('w2', { value: 0, total: 0 });\n      this.dbdata.setWData('w3', { value: 0, total: 0 });\n      this.dbdata.setWData('w4', { value: 0, total: 0 });\n\n      this.dbdata.setWData('w23', { data: { labels: [], datasets: [{ data: [] }] } });\n      this.dbdata.setWData('w24', { data: { labels: [], datasets: [{ data: [] }] } });\n      this.dbdata.setWData('w25', { data: { labels: [], datasets: [{ data: [] }] } });\n      this.dbdata.setWData('w26', { data: { labels: [], datasets: [{ data: [] }] } });\n      this.dbdata.setWData('w27', { data: { labels: [], datasets: [{ data: [] }] } });\n      this.dbdata.setWData('w28', { data: { labels: [], datasets: [{ data: [] }] } });\n\n      this.updateStats();\n    },\n\n    updateStats: function() {\n      // Update table\n      let statsContainer = dashboardData;\n      this.rows = utils.getMethodStatsArray(statsContainer);\n      let totalRequests = pathOr(0, ['all', 'requests'], statsContainer);\n      let sampleTrend = [\n        7,\n        2,\n        8,\n        4,\n        12,\n        3,\n        5,\n        1,\n        8,\n        4,\n        5,\n        3,\n        5,\n        6,\n        4,\n        4,\n        5,\n        6,\n        4,\n        5,\n        7,\n        10,\n        6,\n        3,\n        9,\n        4,\n        3,\n        6,\n        5,\n        2,\n        7,\n        7,\n        5,\n        5,\n        6,\n        4,\n        3,\n        6,\n        5,\n        3,\n        8,\n        5,\n        5,\n        3,\n        4,\n        5,\n        5,\n        6,\n        6,\n        9,\n        6,\n        6,\n        4,\n        4,\n        8,\n        4,\n        6,\n        9,\n        2,\n        2,\n        2\n      ];\n      this.dbdata.setWData('w1', { value: pathOr(0, ['method', 'GET', 'requests'], statsContainer), trend: sampleTrend, total: totalRequests });\n      this.dbdata.setWData('w2', { value: pathOr(0, ['method', 'POST', 'requests'], statsContainer), trend: sampleTrend, total: totalRequests });\n      this.dbdata.setWData('w3', { value: pathOr(0, ['method', 'PUT', 'requests'], statsContainer), total: totalRequests });\n      this.dbdata.setWData('w4', { value: pathOr(0, ['method', 'DELETE', 'requests'], statsContainer), trend: sampleTrend, total: totalRequests });\n\n      let allMethods = Object.keys(pathOr({}, ['method'], statsContainer));\n      this.dbdata['w23'].data.labels = allMethods;\n      this.dbdata['w23'].data.datasets[0].data = allMethods.map(x => statsContainer.method[x].requests);\n      this.dbdata.touch('w23');\n\n      this.dbdata['w24'].data.labels = allMethods;\n      this.dbdata['w24'].data.datasets[0].data = allMethods.map(x => statsContainer.method[x].errors);\n      this.dbdata.touch('w24');\n\n      this.dbdata['w25'].data.labels = allMethods;\n      this.dbdata['w25'].data.datasets[0].data = allMethods.map(x => statsContainer.method[x].apdex_score);\n      this.dbdata.touch('w25');\n\n      this.dbdata['w26'].data.labels = allMethods;\n      this.dbdata['w26'].data.datasets[0].data = allMethods.map(x => statsContainer.method[x].req_rate);\n      this.dbdata.touch('w26');\n\n      this.dbdata['w27'].data.labels = allMethods;\n      this.dbdata['w27'].data.datasets[0].data = allMethods.map(x => statsContainer.method[x].err_rate);\n      this.dbdata.touch('w27');\n\n      this.dbdata['w28'].data.labels = allMethods;\n      this.dbdata['w28'].data.datasets[0].data = allMethods.map(x => statsContainer.method[x].avg_time);\n      this.dbdata.touch('w28');\n    }\n  }\n};\n</script>\n"
  },
  {
    "path": "src/views/summary.vue",
    "content": "<template>\n  <q-page class=\"ub-page\">\n    <div class=\"row items-center\" style=\"margin-bottom: 10px;\">\n      <div class=\"col-md-12 q-ma-sm\">\n        <div class=\"text-h3\">Status Summary</div>\n        <div class=\"text-subtitle1\">\n          Check out <a href=\"https://github.com/slanatech/swagger-stats\" target=\"_blank\">swagger-stats</a> project to see this dashboard in action\n        </div>\n      </div>\n    </div>\n    <db-dashboard v-if=\"ready\" :dbspec=\"dbspec\" :dbdata=\"dbdata\" :dark=\"dark\"> </db-dashboard>\n  </q-page>\n</template>\n\n<script>\nimport { DbData } from 'dashblocks';\nimport pathOr from 'ramda/src/pathOr';\nimport { mapState } from 'vuex';\nimport utils from '../utils.js';\n\n// File '../data/summary.json' contains example dashboard data\nimport dashboardData from '../data/summary.json';\nimport { demodashboard } from '../mixins/demodashboard';\n\nexport default {\n  name: 'SummaryView',\n  mixins: [demodashboard],\n  data() {\n    return {\n      timer: null,\n      dbdata: new DbData(),\n      dbspec: {\n        layout: {\n          type: 'grid',\n          size: 12\n        },\n        colorScheme: 'default',\n        // prettier-ignore\n        widgets: [\n          {\n            id: 'w16',\n            type: 'DbDygraphsBar',\n            cspan: 12,\n            height: 250,\n            properties: {\n              options: {\n                stackedGraph: true,\n                ylabel: 'Requests',\n                labels: ['Date', 'Success', 'Redirect', 'Client Error','Server Error'],\n                legend: 'follow',\n              },\n              opacity: 0.5\n            }\n          },\n          { id: 'w1', type: 'DbNumber', cspan: 2, properties: { title: 'Requests', subtitle: 'Total requests received', icon: 'fa fa-signal' } },\n          { id: 'w2', type: 'DbNumber', cspan: 2, properties: {\n            title: 'Apdex Score', subtitle: 'Overall Apdex Score', total: 1, trendMax: 1, format: '%.2f',\n            percentRanges: [\n              { value: 50, color: 'red'},\n              { value: 60, color: 'orange'},\n              { value: 100, color: 'green'},\n            ]}\n          },\n          { id: 'w3', type: 'DbNumber', cspan: 2, properties: { title: 'Current Req Rate', subtitle: 'Requests per second', footer: 'On last time interval',format: '%.2f', icon: 'fa fa-exchange-alt' } },\n          { id: 'w4', type: 'DbNumber', cspan: 2, properties: { title: 'Current Err Rate', subtitle: 'Errors per second', format: '%.2f', icon: 'fa fa-exclamation' } },\n          { id: 'w5', type: 'DbNumber', cspan: 2, properties: { title: 'CPU', subtitle: 'CPU Usage', total: 100, trendMax: 100, format: '%.2f %s', qualifier: '%' } },\n          { id: 'w6', type: 'DbNumber', cspan: 2, properties: { title: 'Memory', subtitle: 'heapUsed', format: '%.2f %s', icon: 'fa fa-sd-card' } },\n\n          { id: 'w7', type: 'DbNumber', cspan: 2, properties: { title: 'Errors', subtitle: 'Total Error Responses' } },\n          { id: 'w8', type: 'DbNumber', cspan: 2, properties: {\n            title: '2XX', subtitle: 'Success Responses',\n            percentRanges: [\n              { value: 50, color: 'red'},\n              { value: 70, color: 'orange'},\n              { value: 100, color: 'green'}\n            ]}\n          },\n          { id: 'w9', type: 'DbNumber', cspan: 2, properties: { title: '3XX', subtitle: 'Redirect Responses' } },\n          { id: 'w10', type: 'DbNumber', cspan: 2, properties: { title: '4XX', subtitle: 'Client Error Responses' } },\n          { id: 'w11', type: 'DbNumber', cspan: 2, properties: { title: '5XX', subtitle: 'Server Error Responses' } },\n          { id: 'w12', type: 'DbNumber', cspan: 2, properties: { title: 'Event Loop Lag', subtitle: 'Current Event Loop Lag', format: '%.3f ms',icon: 'fa fa-hourglass-half' } },\n          {\n            id: 'w14',\n            type: 'DbDygraphsLine',\n            cspan: 6,\n            height: 180,\n            properties: {\n              options: {\n                stackedGraph: false,\n                title: 'CPU',\n                ylabel: 'CPU, %',\n                labels: ['Date','CPU']\n              }\n            }\n          },\n          {\n            id: 'w18',\n            type: 'DbDygraphsLine',\n            cspan: 6,\n            height: 180,\n            properties: {\n              options: {\n                stackedGraph: false,\n                title: 'Apdex Score',\n                ylabel: 'Score',\n                labels: ['Date','Apdex Score']\n              }\n            }\n          },\n          {\n            id: 'w15',\n            type: 'DbDygraphsLine',\n            cspan: 6,\n            height: 180,\n            properties: {\n              options: {\n                stackedGraph: false,\n                title: 'Memory',\n                ylabel: 'MB',\n                labels: ['Date','heapTotal', 'heapUsed']\n              }\n            }\n          },\n          {\n            id: 'w17',\n            type: 'DbDygraphsLine',\n            cspan: 6,\n            height: 180,\n            properties: {\n              options: {\n                stackedGraph: false,\n                title: 'Event Loop Lag',\n                ylabel: 'msec',\n                labels: ['Date','Lag']\n              }\n            }\n          },\n        ]\n      },\n      ready: false\n    };\n  },\n  mounted() {\n    this.initialize();\n    this.ready = true;\n  },\n\n  methods: {\n    initialize: function() {\n      this.dbspec.colorScheme = this.dashboardColorScheme;\n      this.updateStats();\n    },\n\n    updateStats: function() {\n      // Update numbers\n      let statsContainer = dashboardData;\n      let requestsTotal = pathOr(0, ['all', 'requests'], statsContainer);\n\n      let trendsData = [[], [], [], [], [], [], [], [], [], [], [], []];\n      let dthData = [];\n      let cpuData = [];\n      let memData = [];\n      let lagData = [];\n      let asData = [];\n\n      let timelineSorted = utils.getSortedTimeline(statsContainer);\n      //let trendReqData =  [];\n      for (let entry of timelineSorted) {\n        dthData.push([\n          new Date(entry.ts),\n          pathOr(0, ['stats', 'success'], entry),\n          pathOr(0, ['stats', 'redirect'], entry),\n          pathOr(0, ['stats', 'client_error'], entry),\n          pathOr(0, ['stats', 'server_error'], entry)\n        ]);\n        asData.push([new Date(entry.ts), pathOr(0, ['stats', 'apdex_score'], entry)]);\n        cpuData.push([new Date(entry.ts), pathOr(0, ['sys', 'cpu'], entry)]);\n        memData.push([new Date(entry.ts), pathOr(0, ['sys', 'heapTotal'], entry) / 1048576, pathOr(0, ['sys', 'heapUsed'], entry) / 1048576]);\n        lagData.push([new Date(entry.ts), pathOr(0, ['sys', 'lag'], entry)]);\n        // Trends\n        trendsData[0].push(pathOr(0, ['stats', 'requests'], entry));\n        trendsData[1].push(pathOr(0, ['stats', 'apdex_score'], entry));\n        trendsData[2].push(pathOr(0, ['stats', 'req_rate'], entry));\n        trendsData[3].push(pathOr(0, ['stats', 'err_rate'], entry));\n        trendsData[4].push(pathOr(0, ['sys', 'cpu'], entry));\n        trendsData[5].push(pathOr(0, ['sys', 'heapUsed'], entry));\n        trendsData[6].push(pathOr(0, ['stats', 'errors'], entry));\n        trendsData[7].push(pathOr(0, ['stats', 'success'], entry));\n        trendsData[8].push(pathOr(0, ['stats', 'redirect'], entry));\n        trendsData[9].push(pathOr(0, ['stats', 'client_error'], entry));\n        trendsData[10].push(pathOr(0, ['stats', 'server_error'], entry));\n        trendsData[11].push(pathOr(0, ['sys', 'lag'], entry));\n      }\n\n      let lastTimeBucket = utils.getCurrentTimelineBucket(statsContainer);\n      let requestRate = pathOr(0, ['stats', 'req_rate'], lastTimeBucket);\n      let errRate = pathOr(0, ['stats', 'err_rate'], lastTimeBucket);\n\n      let reqTrendMax = Math.max(...trendsData[0]);\n      let reqRateTrendMax = Math.max(...trendsData[2]);\n      this.dbdata.setWData('w1', { value: requestsTotal, trend: trendsData[0] });\n      this.dbdata.setWData('w2', { value: pathOr(0, ['all', 'apdex_score'], statsContainer), trend: trendsData[1] });\n      this.dbdata.setWData('w3', { value: requestRate, trend: trendsData[2] });\n      this.dbdata.setWData('w4', { value: errRate, trend: trendsData[3], trendMax: reqRateTrendMax });\n      this.dbdata.setWData('w5', { value: pathOr(0, ['sys', 'cpu'], statsContainer), trend: trendsData[4] });\n      let { value, qualifier } = utils.formatBytes(pathOr(0, ['sys', 'heapUsed'], statsContainer), 2);\n      this.dbdata.setWData('w6', { value: value, qualifier: qualifier, trend: trendsData[5] });\n\n      this.dbdata.setWData('w7', { value: pathOr(0, ['all', 'errors'], statsContainer), trend: trendsData[6], trendMax: reqTrendMax, total: requestsTotal });\n      this.dbdata.setWData('w8', { value: pathOr(0, ['all', 'success'], statsContainer), trend: trendsData[7], trendMax: reqTrendMax, total: requestsTotal });\n      this.dbdata.setWData('w9', { value: pathOr(0, ['all', 'redirect'], statsContainer), trend: trendsData[8], trendMax: reqTrendMax, total: requestsTotal });\n      this.dbdata.setWData('w10', {\n        value: pathOr(0, ['all', 'client_error'], statsContainer),\n        trend: trendsData[9],\n        trendMax: reqTrendMax,\n        total: requestsTotal\n      });\n      this.dbdata.setWData('w11', {\n        value: pathOr(0, ['all', 'server_error'], statsContainer),\n        trend: trendsData[10],\n        trendMax: reqTrendMax,\n        total: requestsTotal\n      });\n      this.dbdata.setWData('w12', { value: pathOr(0, ['sys', 'lag'], statsContainer), trend: trendsData[11] });\n\n      this.dbdata.setWData('w14', { data: cpuData });\n      this.dbdata.setWData('w15', { data: memData });\n      this.dbdata.setWData('w16', { data: dthData });\n      this.dbdata.setWData('w17', { data: lagData });\n      this.dbdata.setWData('w18', { data: asData });\n    }\n  }\n};\n</script>\n"
  },
  {
    "path": "src/views/tables.vue",
    "content": "<template>\n  <q-page class=\"ub-page\">\n    <div class=\"row items-center\">\n      <div class=\"col-md-10 offset-md-1 q-ma-lg\">\n        <div class=\"text-h3\">Tables</div>\n      </div>\n    </div>\n    <div class=\"row items-center\">\n      <div class=\"col-md-10 offset-md-1 q-ma-md\">\n        <q-banner dense class=\"bg-purple-8 text-white\">\n          <template v-slot:avatar>\n            <q-icon name=\"mdi-information-outline\" />\n          </template>\n          Work in progress ...\n        </q-banner>\n      </div>\n    </div>\n  </q-page>\n</template>\n\n<script>\nexport default {\n  name: 'Tables',\n  data() {\n    return {};\n  },\n  watch: {},\n  mounted() {},\n  methods: {}\n};\n</script>\n"
  },
  {
    "path": "src/views/timeline.vue",
    "content": "<template>\n  <q-page class=\"ub-page\">\n    <div class=\"row items-center\">\n      <div class=\"col-md-12 q-ma-xs\">\n        <div class=\"text-h3\">Timeline</div>\n      </div>\n    </div>\n    <div class=\"row items-center\">\n      <div class=\"col-md-12 q-ma-xs\">\n        <db-dashboard v-if=\"ready\" :dbspec=\"dbspec\" :dbdata=\"dbdata\" :dark=\"dark\"> </db-dashboard>\n      </div>\n    </div>\n    <div class=\"row items-center\">\n      <div class=\"col-md-12 q-ma-sm\">\n        <h-table :hits=\"hitsTableData\" :display-fields=\"hitsDisplayFields\" :preview=\"true\" v-on:rowClick=\"onRowClick\" />\n      </div>\n    </div>\n    <q-dialog v-model=\"hitDetails\" position=\"right\" seamless>\n      <q-card style=\"width: 800px; max-width: 80vw;\">\n        <q-card-section>\n          <div class=\"text-h6\">Visits Analysis</div>\n        </q-card-section>\n\n        <db-dashboard :dbspec=\"dbspecAnalysis\" :dbdata=\"dbdata\" :dark=\"dark\" style=\"width: 800px;\"> </db-dashboard>\n\n        <q-card-actions align=\"right\">\n          <q-btn flat label=\"Close\" color=\"primary\" v-close-popup />\n        </q-card-actions>\n      </q-card>\n    </q-dialog>\n  </q-page>\n</template>\n\n<script>\nimport { vgtMethods } from '../mixins/vgtmethods';\nimport HTable from '../components/tables/htable.vue';\nimport { demodashboard } from '../mixins/demodashboard';\nimport PTableData from '../data/ptabledata.json';\nimport ItemsTableData from '../data/itemstabledata.json';\nimport HitsData from '../data/hitsdata.json';\nimport { DbData } from 'dashblocks';\n\nexport default {\n  name: 'QuasarTable',\n  components: { HTable },\n  mixins: [demodashboard],\n  data() {\n    return {\n      dbdata: new DbData(),\n      dbspec: {\n        layout: {\n          type: 'grid'\n        },\n        colorScheme: 'default',\n        widgets: [\n          {\n            id: 'w2',\n            type: 'DbDygraphsBar',\n            cspan: 16,\n            height: 250,\n            properties: {\n              options: {\n                stackedGraph: true,\n                title: 'Traffic over time',\n                ylabel: 'Visits, Mil.',\n                labels: ['Date', 'Organic', 'Search', 'Social', 'Ads'],\n                legend: 'always'\n              }\n            }\n          }\n        ]\n      },\n      dbspecAnalysis: {\n        layout: {\n          type: 'grid'\n        },\n        colorScheme: 'Diverging',\n        widgets: [\n          {\n            id: 'wD',\n            type: 'DbChartjsDoughnut',\n            cspan: 8,\n            height: 200\n          },\n          {\n            id: 'wB',\n            type: 'DbChartjsBar',\n            cspan: 8,\n            height: 200\n          }\n        ]\n      },\n      ready: false,\n      timer: null,\n      selectedItems: [],\n      highlightedItems: null,\n      pTableData: PTableData,\n      selectedHit: null,\n      hitDetails: false,\n      hitsDisplayFields: {\n        'api.query': ['api', 'query'],\n        'http.response.code': ['http', 'response', 'code'],\n        'http.response.phrase': ['http', 'response', 'phrase'],\n        responsetime: ['responsetime'],\n        'api.operationId': ['api', 'operationId']\n      },\n      rows: []\n    };\n  },\n  computed: {\n    iTableItems: function() {\n      return ItemsTableData;\n    },\n    hitsTableData: function() {\n      return HitsData;\n    }\n  },\n  watch: {},\n  mounted() {\n    this.initialize();\n  },\n  methods: {\n    onRowClick: function(row) {\n      this.selectedHit = row;\n      this.hitDetails = true;\n    },\n    initialize: function() {\n      // Init dashboard color scheme from state\n      this.dbspec.colorScheme = this.dashboardColorScheme;\n\n      let totalReq = 0;\n      let trendReq = [];\n      let trendErr = [];\n      let dthData2 = [];\n      let sTS = Date.now() - 100 * 3600 * 1000;\n\n      for (let i = 0; i < 100; i++) {\n        let cTs = sTS + i * 3600 * 1000;\n        let d = new Date(cTs);\n        let r = Math.random();\n        let e = Math.random();\n        totalReq += Math.random() * 1000;\n        trendReq.push(r + e);\n        trendErr.push(e);\n\n        // Make sure we can see all colors in 10-color palette\n        /*\n        let cStep = Math.floor(i/10);\n        let dthEntry = [d,null,null,null,null,null,null,null,null,null,null];\n        dthEntry[cStep+1] = r;\n        dthEntry[cStep+2] = e;\n        */\n        let coeff = Math.abs(i - 50);\n        coeff = coeff < 30 ? 30 : coeff;\n        let ss = ((Math.sin(i / 3) + 3) * 8 - Math.random() * 3) * coeff;\n        let se = ((Math.sin(i / 3) + 2) * 4 - Math.random() * 2) * coeff;\n        let sa = ((Math.sin(i / 3) + 2.5) * 4 - Math.random() * 2.5) * coeff;\n        let sb = ((Math.sin(i / 3) + 1.5) * 4 - Math.random() * 1.7) * coeff;\n\n        dthData2.push([d, ss, se, sa, sb]);\n      }\n\n      this.dbdata.setWData('w2', {\n        data: dthData2\n      });\n\n      this.dbdata.setWData('wD', {\n        data: {\n          labels: ['Central', 'East', 'South', 'West'],\n          datasets: [{ data: [2000, 2000, 8000, 1000] }]\n        }\n      });\n\n      this.dbdata.setWData('wB', {\n        data: {\n          labels: ['Furniture', 'Office Supplies', 'Technology'],\n          datasets: [{ data: [2000, 1000, 8000] }]\n        },\n        options: {\n          plugins: { labels: { render: () => {} } },\n          legend: { display: false },\n          scales: {\n            yAxes: [\n              {\n                ticks: {\n                  beginAtZero: true\n                }\n              }\n            ]\n          }\n        }\n      });\n\n      this.ready = true;\n    }\n  }\n};\n</script>\n"
  },
  {
    "path": "src/views/typography.vue",
    "content": "<template>\n  <q-page class=\"ub-page\">\n    <div class=\"row items-center\">\n      <div class=\"col-md-10 offset-md-1 q-ma-lg\">\n        <div class=\"text-h3\">Typography</div>\n      </div>\n    </div>\n    <div class=\"row items-center\">\n      <div class=\"col-md-10 offset-md-1 q-ma-md\">\n        <div class=\"text-body1\">\n          Typography by <a href=\"https://quasar.dev/\">Quasar</a>. See detailed documentation at\n          <a href=\"https://quasar.dev/style/typography\">https://quasar.dev/style/typography</a>\n        </div>\n      </div>\n    </div>\n    <div class=\"row items-center\">\n      <div class=\"col-md-10 offset-md-1 q-ma-md\">\n        <div class=\"row items-center q-mb-lg\">\n          <div class=\"col-sm-3 col-12\">\n            <div role=\"alert\" class=\"q-badge flex inline items-center no-wrap q-badge--single-line bg-primary\">text-h1</div>\n            <div role=\"alert\" class=\"q-ml-sm q-badge flex inline items-center no-wrap q-badge--single-line bg-secondary\">h1</div>\n          </div>\n          <div class=\"col-sm-9 col-12 text-h1\">Dashblocks</div>\n        </div>\n        <div class=\"row items-center q-mb-lg\">\n          <div class=\"col-sm-3 col-12\">\n            <div role=\"alert\" class=\"q-badge flex inline items-center no-wrap q-badge--single-line bg-primary\">text-h2</div>\n            <div role=\"alert\" class=\"q-ml-sm q-badge flex inline items-center no-wrap q-badge--single-line bg-secondary\">h2</div>\n          </div>\n          <div class=\"col-sm-9 col-12 text-h2\">Dashblocks</div>\n        </div>\n        <div class=\"row items-center q-mb-lg\">\n          <div class=\"col-sm-3 col-12\">\n            <div role=\"alert\" class=\"q-badge flex inline items-center no-wrap q-badge--single-line bg-primary\">text-h3</div>\n            <div role=\"alert\" class=\"q-ml-sm q-badge flex inline items-center no-wrap q-badge--single-line bg-secondary\">h3</div>\n          </div>\n          <div class=\"col-sm-9 col-12 text-h3\">Dashblocks</div>\n        </div>\n        <div class=\"row items-center q-mb-lg\">\n          <div class=\"col-sm-3 col-12\">\n            <div role=\"alert\" class=\"q-badge flex inline items-center no-wrap q-badge--single-line bg-primary\">text-h4</div>\n            <div role=\"alert\" class=\"q-ml-sm q-badge flex inline items-center no-wrap q-badge--single-line bg-secondary\">h4</div>\n          </div>\n          <div class=\"col-sm-9 col-12 text-h4\">Dashblocks</div>\n        </div>\n        <div class=\"row items-center q-mb-lg\">\n          <div class=\"col-sm-3 col-12\">\n            <div role=\"alert\" class=\"q-badge flex inline items-center no-wrap q-badge--single-line bg-primary\">text-h5</div>\n            <div role=\"alert\" class=\"q-ml-sm q-badge flex inline items-center no-wrap q-badge--single-line bg-secondary\">h5</div>\n          </div>\n          <div class=\"col-sm-9 col-12 text-h5\">Dashblocks Material Admin Template</div>\n        </div>\n        <div class=\"row items-center q-mb-lg\">\n          <div class=\"col-sm-3 col-12\">\n            <div role=\"alert\" class=\"q-badge flex inline items-center no-wrap q-badge--single-line bg-primary\">text-h6</div>\n            <div role=\"alert\" class=\"q-ml-sm q-badge flex inline items-center no-wrap q-badge--single-line bg-secondary\">h6</div>\n          </div>\n          <div class=\"col-sm-9 col-12 text-h6\">Dashblocks Material Admin Template</div>\n        </div>\n        <div class=\"row items-center q-mb-lg\">\n          <div class=\"col-sm-3 col-12\">\n            <div role=\"alert\" class=\"q-badge flex inline items-center no-wrap q-badge--single-line bg-primary\">text-subtitle1</div>\n            <!---->\n          </div>\n          <div class=\"col-sm-9 col-12 text-subtitle1\">Dashblocks Material Admin Template</div>\n        </div>\n        <div class=\"row items-center q-mb-lg\">\n          <div class=\"col-sm-3 col-12\">\n            <div role=\"alert\" class=\"q-badge flex inline items-center no-wrap q-badge--single-line bg-primary\">text-subtitle2</div>\n            <!---->\n          </div>\n          <div class=\"col-sm-9 col-12 text-subtitle2\">Dashblocks Material Admin Template</div>\n        </div>\n        <div class=\"row items-center q-mb-lg\">\n          <div class=\"col-sm-3 col-12\">\n            <div role=\"alert\" class=\"q-badge flex inline items-center no-wrap q-badge--single-line bg-primary\">text-body1</div>\n            <!---->\n          </div>\n          <div class=\"col-sm-9 col-12 text-body1\">\n            Dashblocks enables easily creating sophisticated interactive dashboards simply by declaring dashboard structure as json or javascript object.\n          </div>\n        </div>\n        <div class=\"row items-center q-mb-lg\">\n          <div class=\"col-sm-3 col-12\">\n            <div role=\"alert\" class=\"q-badge flex inline items-center no-wrap q-badge--single-line bg-primary\">text-body2</div>\n            <!---->\n          </div>\n          <div class=\"col-sm-9 col-12 text-body2\">\n            Dashblocks uses popular charting libraries to render charts: d3, Chart.js, Dygraphs, Plotly.js.\n          </div>\n        </div>\n        <div class=\"row items-center q-mb-lg\">\n          <div class=\"col-sm-3 col-12\">\n            <div role=\"alert\" class=\"q-badge flex inline items-center no-wrap q-badge--single-line bg-primary\">text-caption</div>\n            <!---->\n          </div>\n          <div class=\"col-sm-9 col-12 text-caption\">Caption text</div>\n        </div>\n        <div class=\"row items-center q-mb-lg\">\n          <div class=\"col-sm-3 col-12\">\n            <div role=\"alert\" class=\"q-badge flex inline items-center no-wrap q-badge--single-line bg-primary\">text-overline</div>\n            <!---->\n          </div>\n          <div class=\"col-sm-9 col-12 text-overline\">Overline</div>\n        </div>\n      </div>\n    </div>\n  </q-page>\n</template>\n\n<script>\nexport default {\n  name: 'DashblocksTypography',\n  data() {\n    return {};\n  },\n  mounted() {},\n  methods: {}\n};\n</script>\n"
  },
  {
    "path": "src/views/vuegoodtable.vue",
    "content": "<template>\n  <q-page class=\"ub-page\">\n    <div class=\"row items-center\">\n      <div class=\"col-md-12 q-ma-sm\">\n        <div class=\"text-h3\">vue-good-table</div>\n        <div class=\"text-subtitle1\">\n          <a href=\"https://xaksis.github.io/vue-good-table/\" target=\"_blank\">https://xaksis.github.io/vue-good-table/</a>\n        </div>\n      </div>\n    </div>\n    <div class=\"row items-center\">\n      <div class=\"col-md-12 q-ma-sm\">\n        <div class=\"text-h5\">Simple table</div>\n      </div>\n    </div>\n    <div style=\"padding: 4px;margin-bottom: 20px;margin-top: 10px;\">\n      <vue-good-table :columns=\"columnsRequests\" :rows=\"rowsRequests\" :theme=\"vgtTheme\" styleClass=\"vgt-table condensed bordered striped sws-table\">\n      </vue-good-table>\n    </div>\n    <div class=\"row items-center\">\n      <div class=\"col-md-12 q-ma-sm\">\n        <div class=\"text-h5\">Advanced table</div>\n        <div class=\"text-subtitle1\">\n          Search, pagination\n        </div>\n      </div>\n    </div>\n    <div style=\"padding: 4px;\">\n      <vue-good-table\n        :columns=\"columns\"\n        :rows=\"rows\"\n        :theme=\"vgtTheme\"\n        styleClass=\"vgt-table condensed bordered striped sws-table\"\n        :search-options=\"{\n          enabled: true,\n          skipDiacritics: true\n        }\"\n        :pagination-options=\"{\n          enabled: true,\n          mode: 'records',\n          perPage: 30,\n          perPageDropdown: [10, 20, 30, 50, 80, 100],\n          dropdownAllowAll: true\n        }\"\n      >\n        <template slot=\"table-row\" slot-scope=\"props\">\n          <span v-if=\"props.column.field == 'expand'\">\n            <!--<q-btn flat round color=\"secondary\" icon=\"play_arrow\" size=\"xs\" @click=\"handleShow(props.row.originalIndex)\" />-->\n          </span>\n          <span v-else-if=\"props.column.field == 'method'\">\n            <router-link :to=\"{ path: 'apiop' }\">{{ props.row.method }}</router-link>\n          </span>\n          <span v-else-if=\"props.column.field == 'path'\">\n            <router-link :to=\"{ path: 'apiop' }\">{{ props.row.path }}</router-link>\n          </span>\n          <span v-else>\n            {{ props.formattedRow[props.column.field] }}\n          </span>\n        </template>\n      </vue-good-table>\n    </div>\n  </q-page>\n</template>\n\n<script>\nimport pathOr from 'ramda/src/pathOr';\nimport { vgtMethods } from '../mixins/vgtmethods';\nimport { mapState } from 'vuex';\nimport utils from '../utils.js';\n\n// File '../data/api.json' contains example data for the table\nimport dashboardData from '../data/api.json';\nimport requestsData from '../data/requests.json';\n\nexport default {\n  name: 'VGT',\n  components: {},\n  mixins: [vgtMethods],\n  data() {\n    return {\n      timer: null,\n      isDark: false,\n      columnsRequests: [\n        { label: 'Method', field: 'method', tdClass: 'text-weight-bold' },\n        { label: 'Requests', field: 'requests', type: 'number', tdClass: 'text-weight-bold' },\n        { label: 'Responses', field: 'responses', type: 'number' },\n        { label: 'Apdex Score', field: 'apdex_score', type: 'number', formatFn: this.formatToFixed2, tdClass: this.tdClassApdex },\n        { label: 'Errors', field: 'errors', type: 'number', tdClass: this.tdClassErrors },\n        { label: 'Req rate', field: 'req_rate', type: 'number', formatFn: this.formatToFixed2 },\n        { label: 'Err rate', field: 'err_rate', type: 'number', formatFn: this.formatToFixed2, tdClass: this.tdClassErrRate },\n        { label: 'Success', field: 'success', type: 'number' },\n        { label: 'Redirect', field: 'redirect', type: 'number' },\n        { label: 'Client Error', field: 'client_error', type: 'number', tdClass: this.tdClassCErr },\n        { label: 'Server Error', field: 'server_error', type: 'number', tdClass: this.tdClassSErr },\n        { label: 'Max Time (ms)', field: 'max_time', type: 'number' },\n        { label: 'Avg Time (ms)', field: 'avg_time', type: 'number', formatFn: this.formatToFixed2 },\n        { label: 'Avg Req Size', field: 'avg_req_clength', type: 'number', formatFn: this.formatToFixed0 },\n        { label: 'Avg Res Size', field: 'avg_res_clength', type: 'number', formatFn: this.formatToFixed0 }\n      ],\n      rowsRequests: [],\n      columns: [\n        //{ label: '', field: 'expand', width: '1%', tdClass: 'text-center pointer' },\n        { label: 'Method', field: 'method', tdClass: 'text-weight-bold' },\n        { label: 'Path', field: 'path', tdClass: 'text-weight-bold' },\n        { label: 'Requests', field: 'requests', type: 'number', tdClass: 'text-weight-bold' },\n        { label: 'Responses', field: 'responses', type: 'number' },\n        { label: 'Apdex Score', field: 'apdex_score', type: 'number', formatFn: this.formatToFixed2, tdClass: this.tdClassApdex },\n        { label: 'Errors', field: 'errors', type: 'number', tdClass: this.tdClassErrors },\n        { label: 'Req rate', field: 'req_rate', type: 'number', formatFn: this.formatToFixed2 },\n        { label: 'Err rate', field: 'err_rate', type: 'number', formatFn: this.formatToFixed2, tdClass: this.tdClassErrRate },\n        { label: 'Success', field: 'success', type: 'number' },\n        { label: 'Redirect', field: 'redirect', type: 'number' },\n        { label: 'Client Error', field: 'client_error', type: 'number', tdClass: this.tdClassCErr },\n        { label: 'Server Error', field: 'server_error', type: 'number', tdClass: this.tdClassSErr },\n        { label: 'Max Time (ms)', field: 'max_time', type: 'number' },\n        { label: 'Avg Time (ms)', field: 'avg_time', type: 'number', formatFn: this.formatToFixed2 },\n        { label: 'Avg Req Size', field: 'avg_req_clength', type: 'number', formatFn: this.formatToFixed0 },\n        { label: 'Avg Res Size', field: 'avg_res_clength', type: 'number', formatFn: this.formatToFixed0 },\n        { label: 'Tags', field: 'tags', type: 'string' }\n      ],\n      rows: []\n    };\n  },\n  computed: {\n    ...mapState({\n      dark: state => state.layout.dark\n    }),\n    vgtTheme: function() {\n      return this.dark ? 'nocturnal' : 'default';\n    }\n  },\n  watch: {},\n  mounted() {\n    this.initialize();\n    this.ready = true;\n  },\n  methods: {\n    initialize: function() {\n      this.updateStats();\n    },\n    updateStats: function() {\n      // Update tables\n      this.rowsRequests = utils.getMethodStatsArray(requestsData);\n      this.rows = utils.getApiStatsArray(dashboardData);\n    }\n  }\n};\n</script>\n"
  },
  {
    "path": "tests/e2e/.eslintrc.js",
    "content": "module.exports = {\n  plugins: [\"cypress\"],\n  env: {\n    mocha: true,\n    \"cypress/globals\": true\n  },\n  rules: {\n    strict: \"off\"\n  }\n};\n"
  },
  {
    "path": "tests/e2e/plugins/index.js",
    "content": "// https://docs.cypress.io/guides/guides/plugins-guide.html\n\n// if you need a custom webpack configuration you can uncomment the following import\n// and then use the `file:preprocessor` event\n// as explained in the cypress docs\n// https://docs.cypress.io/api/plugins/preprocessors-api.html#Examples\n\n/* eslint-disable import/no-extraneous-dependencies, global-require, arrow-body-style */\n// const webpack = require('@cypress/webpack-preprocessor')\n\nmodule.exports = (on, config) => {\n  // on('file:preprocessor', webpack({\n  //  webpackOptions: require('@vue/cli-service/webpack.config'),\n  //  watchOptions: {}\n  // }))\n\n  return Object.assign({}, config, {\n    fixturesFolder: 'tests/e2e/fixtures',\n    integrationFolder: 'tests/e2e/specs',\n    screenshotsFolder: 'tests/e2e/screenshots',\n    videosFolder: 'tests/e2e/videos',\n    supportFile: 'tests/e2e/support/index.js'\n  });\n};\n"
  },
  {
    "path": "tests/e2e/specs/test.js",
    "content": "// https://docs.cypress.io/api/introduction/api.html\n\ndescribe('My First Test', () => {\n  it('Visits the app root url', () => {\n    cy.visit('/');\n  });\n});\n"
  },
  {
    "path": "tests/e2e/support/commands.js",
    "content": "// ***********************************************\n// This example commands.js shows you how to\n// create various custom commands and overwrite\n// existing commands.\n//\n// For more comprehensive examples of custom\n// commands please read more here:\n// https://on.cypress.io/custom-commands\n// ***********************************************\n//\n//\n// -- This is a parent command --\n// Cypress.Commands.add(\"login\", (email, password) => { ... })\n//\n//\n// -- This is a child command --\n// Cypress.Commands.add(\"drag\", { prevSubject: 'element'}, (subject, options) => { ... })\n//\n//\n// -- This is a dual command --\n// Cypress.Commands.add(\"dismiss\", { prevSubject: 'optional'}, (subject, options) => { ... })\n//\n//\n// -- This is will overwrite an existing command --\n// Cypress.Commands.overwrite(\"visit\", (originalFn, url, options) => { ... })\n"
  },
  {
    "path": "tests/e2e/support/index.js",
    "content": "// ***********************************************************\n// This example support/index.js is processed and\n// loaded automatically before your test files.\n//\n// This is a great place to put global configuration and\n// behavior that modifies Cypress.\n//\n// You can change the location of this file or turn off\n// automatically serving support files with the\n// 'supportFile' configuration option.\n//\n// You can read more here:\n// https://on.cypress.io/configuration\n// ***********************************************************\n\n// Import commands.js using ES2015 syntax:\nimport './commands';\n\n// Alternatively you can use CommonJS syntax:\n// require('./commands')\n"
  },
  {
    "path": "tests/unit/.eslintrc.js",
    "content": "module.exports = {\n  env: {\n    jest: true\n  }\n};\n"
  },
  {
    "path": "vue.config.js",
    "content": "// vue.config.js\nconst webpack = require('webpack');\nconst BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin;\n\nmodule.exports = {\n  publicPath: '/dashblocks-template/',\n\n  configureWebpack: {\n    plugins: [\n      // Ignore all locale files of moment.js\n      new webpack.IgnorePlugin(/^\\.\\/locale$/, /moment$/)\n      //new BundleAnalyzerPlugin({ analyzerMode: 'static' })\n    ]\n  },\n\n  pluginOptions: {\n    quasar: {\n      importStrategy: 'manual',\n      rtlSupport: false,\n      treeShake: true\n    }\n  },\n\n  transpileDependencies: ['quasar']\n};\n"
  }
]