{"version":3,"sources":["webpack:///./node_modules/react-icons/fi/index.esm.js"],"names":["FiExternalLink","props"],"mappings":"2FAAA,kDAy8FO,SAASA,EAAeC,GAC7B,OAAO,YAAQ,CACb,IAAO,MACP,KAAQ,CACN,QAAW,YACX,KAAQ,OACR,OAAU,eACV,YAAe,IACf,cAAiB,QACjB,eAAkB,SAEpB,MAAS,CAAC,CACR,IAAO,OACP,KAAQ,CACN,EAAK,6DAEN,CACD,IAAO,WACP,KAAQ,CACN,OAAU,mBAEX,CACD,IAAO,OACP,KAAQ,CACN,GAAM,KACN,GAAM,KACN,GAAM,KACN,GAAM,QA1BL,CA6BJA","file":"5e2a4920-a9a1a0777b8b3bf4672a.js","sourcesContent":["// THIS FILE IS AUTO GENERATED\nimport { GenIcon } from '../lib';\nexport function FiActivity(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"22 12 18 12 15 21 9 3 6 12 2 12\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiAirplay(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M5 17H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2h-1\"\n      }\n    }, {\n      \"tag\": \"polygon\",\n      \"attr\": {\n        \"points\": \"12 15 17 21 7 21 12 15\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiAlertCircle(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"circle\",\n      \"attr\": {\n        \"cx\": \"12\",\n        \"cy\": \"12\",\n        \"r\": \"10\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"12\",\n        \"y1\": \"8\",\n        \"x2\": \"12\",\n        \"y2\": \"12\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"12\",\n        \"y1\": \"16\",\n        \"x2\": \"12\",\n        \"y2\": \"16\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiAlertOctagon(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"polygon\",\n      \"attr\": {\n        \"points\": \"7.86 2 16.14 2 22 7.86 22 16.14 16.14 22 7.86 22 2 16.14 2 7.86 7.86 2\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"12\",\n        \"y1\": \"8\",\n        \"x2\": \"12\",\n        \"y2\": \"12\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"12\",\n        \"y1\": \"16\",\n        \"x2\": \"12\",\n        \"y2\": \"16\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiAlertTriangle(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"12\",\n        \"y1\": \"9\",\n        \"x2\": \"12\",\n        \"y2\": \"13\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"12\",\n        \"y1\": \"17\",\n        \"x2\": \"12\",\n        \"y2\": \"17\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiAlignCenter(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"18\",\n        \"y1\": \"10\",\n        \"x2\": \"6\",\n        \"y2\": \"10\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"21\",\n        \"y1\": \"6\",\n        \"x2\": \"3\",\n        \"y2\": \"6\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"21\",\n        \"y1\": \"14\",\n        \"x2\": \"3\",\n        \"y2\": \"14\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"18\",\n        \"y1\": \"18\",\n        \"x2\": \"6\",\n        \"y2\": \"18\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiAlignJustify(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"21\",\n        \"y1\": \"10\",\n        \"x2\": \"3\",\n        \"y2\": \"10\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"21\",\n        \"y1\": \"6\",\n        \"x2\": \"3\",\n        \"y2\": \"6\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"21\",\n        \"y1\": \"14\",\n        \"x2\": \"3\",\n        \"y2\": \"14\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"21\",\n        \"y1\": \"18\",\n        \"x2\": \"3\",\n        \"y2\": \"18\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiAlignLeft(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"17\",\n        \"y1\": \"10\",\n        \"x2\": \"3\",\n        \"y2\": \"10\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"21\",\n        \"y1\": \"6\",\n        \"x2\": \"3\",\n        \"y2\": \"6\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"21\",\n        \"y1\": \"14\",\n        \"x2\": \"3\",\n        \"y2\": \"14\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"17\",\n        \"y1\": \"18\",\n        \"x2\": \"3\",\n        \"y2\": \"18\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiAlignRight(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"21\",\n        \"y1\": \"10\",\n        \"x2\": \"7\",\n        \"y2\": \"10\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"21\",\n        \"y1\": \"6\",\n        \"x2\": \"3\",\n        \"y2\": \"6\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"21\",\n        \"y1\": \"14\",\n        \"x2\": \"3\",\n        \"y2\": \"14\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"21\",\n        \"y1\": \"18\",\n        \"x2\": \"7\",\n        \"y2\": \"18\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiAnchor(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"circle\",\n      \"attr\": {\n        \"cx\": \"12\",\n        \"cy\": \"5\",\n        \"r\": \"3\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"12\",\n        \"y1\": \"22\",\n        \"x2\": \"12\",\n        \"y2\": \"8\"\n      }\n    }, {\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M5 12H2a10 10 0 0 0 20 0h-3\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiAperture(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"circle\",\n      \"attr\": {\n        \"cx\": \"12\",\n        \"cy\": \"12\",\n        \"r\": \"10\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"14.31\",\n        \"y1\": \"8\",\n        \"x2\": \"20.05\",\n        \"y2\": \"17.94\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"9.69\",\n        \"y1\": \"8\",\n        \"x2\": \"21.17\",\n        \"y2\": \"8\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"7.38\",\n        \"y1\": \"12\",\n        \"x2\": \"13.12\",\n        \"y2\": \"2.06\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"9.69\",\n        \"y1\": \"16\",\n        \"x2\": \"3.95\",\n        \"y2\": \"6.06\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"14.31\",\n        \"y1\": \"16\",\n        \"x2\": \"2.83\",\n        \"y2\": \"16\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"16.62\",\n        \"y1\": \"12\",\n        \"x2\": \"10.88\",\n        \"y2\": \"21.94\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiArchive(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"21 8 21 21 3 21 3 8\"\n      }\n    }, {\n      \"tag\": \"rect\",\n      \"attr\": {\n        \"x\": \"1\",\n        \"y\": \"3\",\n        \"width\": \"22\",\n        \"height\": \"5\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"10\",\n        \"y1\": \"12\",\n        \"x2\": \"14\",\n        \"y2\": \"12\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiArrowDownCircle(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"circle\",\n      \"attr\": {\n        \"cx\": \"12\",\n        \"cy\": \"12\",\n        \"r\": \"10\"\n      }\n    }, {\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"8 12 12 16 16 12\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"12\",\n        \"y1\": \"8\",\n        \"x2\": \"12\",\n        \"y2\": \"16\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiArrowDownLeft(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"17\",\n        \"y1\": \"7\",\n        \"x2\": \"7\",\n        \"y2\": \"17\"\n      }\n    }, {\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"17 17 7 17 7 7\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiArrowDownRight(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"7\",\n        \"y1\": \"7\",\n        \"x2\": \"17\",\n        \"y2\": \"17\"\n      }\n    }, {\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"17 7 17 17 7 17\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiArrowDown(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"12\",\n        \"y1\": \"5\",\n        \"x2\": \"12\",\n        \"y2\": \"19\"\n      }\n    }, {\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"19 12 12 19 5 12\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiArrowLeftCircle(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"circle\",\n      \"attr\": {\n        \"cx\": \"12\",\n        \"cy\": \"12\",\n        \"r\": \"10\"\n      }\n    }, {\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"12 8 8 12 12 16\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"16\",\n        \"y1\": \"12\",\n        \"x2\": \"8\",\n        \"y2\": \"12\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiArrowLeft(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"19\",\n        \"y1\": \"12\",\n        \"x2\": \"5\",\n        \"y2\": \"12\"\n      }\n    }, {\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"12 19 5 12 12 5\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiArrowRightCircle(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"circle\",\n      \"attr\": {\n        \"cx\": \"12\",\n        \"cy\": \"12\",\n        \"r\": \"10\"\n      }\n    }, {\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"12 16 16 12 12 8\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"8\",\n        \"y1\": \"12\",\n        \"x2\": \"16\",\n        \"y2\": \"12\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiArrowRight(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"5\",\n        \"y1\": \"12\",\n        \"x2\": \"19\",\n        \"y2\": \"12\"\n      }\n    }, {\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"12 5 19 12 12 19\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiArrowUpCircle(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"circle\",\n      \"attr\": {\n        \"cx\": \"12\",\n        \"cy\": \"12\",\n        \"r\": \"10\"\n      }\n    }, {\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"16 12 12 8 8 12\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"12\",\n        \"y1\": \"16\",\n        \"x2\": \"12\",\n        \"y2\": \"8\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiArrowUpLeft(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"17\",\n        \"y1\": \"17\",\n        \"x2\": \"7\",\n        \"y2\": \"7\"\n      }\n    }, {\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"7 17 7 7 17 7\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiArrowUpRight(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"7\",\n        \"y1\": \"17\",\n        \"x2\": \"17\",\n        \"y2\": \"7\"\n      }\n    }, {\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"7 7 17 7 17 17\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiArrowUp(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"12\",\n        \"y1\": \"19\",\n        \"x2\": \"12\",\n        \"y2\": \"5\"\n      }\n    }, {\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"5 12 12 5 19 12\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiAtSign(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"circle\",\n      \"attr\": {\n        \"cx\": \"12\",\n        \"cy\": \"12\",\n        \"r\": \"4\"\n      }\n    }, {\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M16 8v5a3 3 0 0 0 6 0v-1a10 10 0 1 0-3.92 7.94\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiAward(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"circle\",\n      \"attr\": {\n        \"cx\": \"12\",\n        \"cy\": \"8\",\n        \"r\": \"7\"\n      }\n    }, {\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"8.21 13.89 7 23 12 20 17 23 15.79 13.88\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiBarChart2(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"18\",\n        \"y1\": \"20\",\n        \"x2\": \"18\",\n        \"y2\": \"10\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"12\",\n        \"y1\": \"20\",\n        \"x2\": \"12\",\n        \"y2\": \"4\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"6\",\n        \"y1\": \"20\",\n        \"x2\": \"6\",\n        \"y2\": \"14\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiBarChart(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"12\",\n        \"y1\": \"20\",\n        \"x2\": \"12\",\n        \"y2\": \"10\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"18\",\n        \"y1\": \"20\",\n        \"x2\": \"18\",\n        \"y2\": \"4\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"6\",\n        \"y1\": \"20\",\n        \"x2\": \"6\",\n        \"y2\": \"16\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiBatteryCharging(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M5 18H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h3.19M15 6h2a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2h-3.19\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"23\",\n        \"y1\": \"13\",\n        \"x2\": \"23\",\n        \"y2\": \"11\"\n      }\n    }, {\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"11 6 7 12 13 12 9 18\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiBattery(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"rect\",\n      \"attr\": {\n        \"x\": \"1\",\n        \"y\": \"6\",\n        \"width\": \"18\",\n        \"height\": \"12\",\n        \"rx\": \"2\",\n        \"ry\": \"2\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"23\",\n        \"y1\": \"13\",\n        \"x2\": \"23\",\n        \"y2\": \"11\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiBellOff(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M13.73 21a2 2 0 0 1-3.46 0\"\n      }\n    }, {\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M18.63 13A17.89 17.89 0 0 1 18 8\"\n      }\n    }, {\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M6.26 6.26A5.86 5.86 0 0 0 6 8c0 7-3 9-3 9h14\"\n      }\n    }, {\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M18 8a6 6 0 0 0-9.33-5\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"1\",\n        \"y1\": \"1\",\n        \"x2\": \"23\",\n        \"y2\": \"23\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiBell(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M18 8A6 6 0 0 0 6 8c0 7-3 9-3 9h18s-3-2-3-9\"\n      }\n    }, {\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M13.73 21a2 2 0 0 1-3.46 0\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiBluetooth(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"6.5 6.5 17.5 17.5 12 23 12 1 17.5 6.5 6.5 17.5\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiBold(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M6 4h8a4 4 0 0 1 4 4 4 4 0 0 1-4 4H6z\"\n      }\n    }, {\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M6 12h9a4 4 0 0 1 4 4 4 4 0 0 1-4 4H6z\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiBookOpen(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z\"\n      }\n    }, {\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiBook(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M4 19.5A2.5 2.5 0 0 1 6.5 17H20\"\n      }\n    }, {\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M6.5 2H20v20H6.5A2.5 2.5 0 0 1 4 19.5v-15A2.5 2.5 0 0 1 6.5 2z\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiBookmark(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M19 21l-7-5-7 5V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2z\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiBox(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z\"\n      }\n    }, {\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"3.27 6.96 12 12.01 20.73 6.96\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"12\",\n        \"y1\": \"22.08\",\n        \"x2\": \"12\",\n        \"y2\": \"12\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiBriefcase(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"rect\",\n      \"attr\": {\n        \"x\": \"2\",\n        \"y\": \"7\",\n        \"width\": \"20\",\n        \"height\": \"14\",\n        \"rx\": \"2\",\n        \"ry\": \"2\"\n      }\n    }, {\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M16 21V5a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiCalendar(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"rect\",\n      \"attr\": {\n        \"x\": \"3\",\n        \"y\": \"4\",\n        \"width\": \"18\",\n        \"height\": \"18\",\n        \"rx\": \"2\",\n        \"ry\": \"2\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"16\",\n        \"y1\": \"2\",\n        \"x2\": \"16\",\n        \"y2\": \"6\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"8\",\n        \"y1\": \"2\",\n        \"x2\": \"8\",\n        \"y2\": \"6\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"3\",\n        \"y1\": \"10\",\n        \"x2\": \"21\",\n        \"y2\": \"10\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiCameraOff(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"1\",\n        \"y1\": \"1\",\n        \"x2\": \"23\",\n        \"y2\": \"23\"\n      }\n    }, {\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M21 21H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h3m3-3h6l2 3h4a2 2 0 0 1 2 2v9.34m-7.72-2.06a4 4 0 1 1-5.56-5.56\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiCamera(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M23 19a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h4l2-3h6l2 3h4a2 2 0 0 1 2 2z\"\n      }\n    }, {\n      \"tag\": \"circle\",\n      \"attr\": {\n        \"cx\": \"12\",\n        \"cy\": \"13\",\n        \"r\": \"4\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiCast(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M2 16.1A5 5 0 0 1 5.9 20M2 12.05A9 9 0 0 1 9.95 20M2 8V6a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2h-6\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"2\",\n        \"y1\": \"20\",\n        \"x2\": \"2\",\n        \"y2\": \"20\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiCheckCircle(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M22 11.08V12a10 10 0 1 1-5.93-9.14\"\n      }\n    }, {\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"22 4 12 14.01 9 11.01\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiCheckSquare(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"9 11 12 14 22 4\"\n      }\n    }, {\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M21 12v7a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiCheck(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"20 6 9 17 4 12\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiChevronDown(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"6 9 12 15 18 9\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiChevronLeft(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"15 18 9 12 15 6\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiChevronRight(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"9 18 15 12 9 6\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiChevronUp(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"18 15 12 9 6 15\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiChevronsDown(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"7 13 12 18 17 13\"\n      }\n    }, {\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"7 6 12 11 17 6\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiChevronsLeft(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"11 17 6 12 11 7\"\n      }\n    }, {\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"18 17 13 12 18 7\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiChevronsRight(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"13 17 18 12 13 7\"\n      }\n    }, {\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"6 17 11 12 6 7\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiChevronsUp(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"17 11 12 6 7 11\"\n      }\n    }, {\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"17 18 12 13 7 18\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiChrome(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"circle\",\n      \"attr\": {\n        \"cx\": \"12\",\n        \"cy\": \"12\",\n        \"r\": \"10\"\n      }\n    }, {\n      \"tag\": \"circle\",\n      \"attr\": {\n        \"cx\": \"12\",\n        \"cy\": \"12\",\n        \"r\": \"4\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"21.17\",\n        \"y1\": \"8\",\n        \"x2\": \"12\",\n        \"y2\": \"8\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"3.95\",\n        \"y1\": \"6.06\",\n        \"x2\": \"8.54\",\n        \"y2\": \"14\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"10.88\",\n        \"y1\": \"21.94\",\n        \"x2\": \"15.46\",\n        \"y2\": \"14\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiCircle(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"circle\",\n      \"attr\": {\n        \"cx\": \"12\",\n        \"cy\": \"12\",\n        \"r\": \"10\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiClipboard(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2\"\n      }\n    }, {\n      \"tag\": \"rect\",\n      \"attr\": {\n        \"x\": \"8\",\n        \"y\": \"2\",\n        \"width\": \"8\",\n        \"height\": \"4\",\n        \"rx\": \"1\",\n        \"ry\": \"1\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiClock(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"circle\",\n      \"attr\": {\n        \"cx\": \"12\",\n        \"cy\": \"12\",\n        \"r\": \"10\"\n      }\n    }, {\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"12 6 12 12 16 14\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiCloudDrizzle(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"8\",\n        \"y1\": \"19\",\n        \"x2\": \"8\",\n        \"y2\": \"21\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"8\",\n        \"y1\": \"13\",\n        \"x2\": \"8\",\n        \"y2\": \"15\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"16\",\n        \"y1\": \"19\",\n        \"x2\": \"16\",\n        \"y2\": \"21\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"16\",\n        \"y1\": \"13\",\n        \"x2\": \"16\",\n        \"y2\": \"15\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"12\",\n        \"y1\": \"21\",\n        \"x2\": \"12\",\n        \"y2\": \"23\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"12\",\n        \"y1\": \"15\",\n        \"x2\": \"12\",\n        \"y2\": \"17\"\n      }\n    }, {\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M20 16.58A5 5 0 0 0 18 7h-1.26A8 8 0 1 0 4 15.25\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiCloudLightning(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M19 16.9A5 5 0 0 0 18 7h-1.26a8 8 0 1 0-11.62 9\"\n      }\n    }, {\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"13 11 9 17 15 17 11 23\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiCloudOff(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M22.61 16.95A5 5 0 0 0 18 10h-1.26a8 8 0 0 0-7.05-6M5 5a8 8 0 0 0 4 15h9a5 5 0 0 0 1.7-.3\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"1\",\n        \"y1\": \"1\",\n        \"x2\": \"23\",\n        \"y2\": \"23\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiCloudRain(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"16\",\n        \"y1\": \"13\",\n        \"x2\": \"16\",\n        \"y2\": \"21\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"8\",\n        \"y1\": \"13\",\n        \"x2\": \"8\",\n        \"y2\": \"21\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"12\",\n        \"y1\": \"15\",\n        \"x2\": \"12\",\n        \"y2\": \"23\"\n      }\n    }, {\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M20 16.58A5 5 0 0 0 18 7h-1.26A8 8 0 1 0 4 15.25\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiCloudSnow(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M20 17.58A5 5 0 0 0 18 8h-1.26A8 8 0 1 0 4 16.25\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"8\",\n        \"y1\": \"16\",\n        \"x2\": \"8\",\n        \"y2\": \"16\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"8\",\n        \"y1\": \"20\",\n        \"x2\": \"8\",\n        \"y2\": \"20\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"12\",\n        \"y1\": \"18\",\n        \"x2\": \"12\",\n        \"y2\": \"18\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"12\",\n        \"y1\": \"22\",\n        \"x2\": \"12\",\n        \"y2\": \"22\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"16\",\n        \"y1\": \"16\",\n        \"x2\": \"16\",\n        \"y2\": \"16\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"16\",\n        \"y1\": \"20\",\n        \"x2\": \"16\",\n        \"y2\": \"20\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiCloud(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M18 10h-1.26A8 8 0 1 0 9 20h9a5 5 0 0 0 0-10z\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiCode(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"16 18 22 12 16 6\"\n      }\n    }, {\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"8 6 2 12 8 18\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiCodepen(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"polygon\",\n      \"attr\": {\n        \"points\": \"12 2 22 8.5 22 15.5 12 22 2 15.5 2 8.5 12 2\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"12\",\n        \"y1\": \"22\",\n        \"x2\": \"12\",\n        \"y2\": \"15.5\"\n      }\n    }, {\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"22 8.5 12 15.5 2 8.5\"\n      }\n    }, {\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"2 15.5 12 8.5 22 15.5\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"12\",\n        \"y1\": \"2\",\n        \"x2\": \"12\",\n        \"y2\": \"8.5\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiCodesandbox(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z\"\n      }\n    }, {\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"7.5 4.21 12 6.81 16.5 4.21\"\n      }\n    }, {\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"7.5 19.79 7.5 14.6 3 12\"\n      }\n    }, {\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"21 12 16.5 14.6 16.5 19.79\"\n      }\n    }, {\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"3.27 6.96 12 12.01 20.73 6.96\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"12\",\n        \"y1\": \"22.08\",\n        \"x2\": \"12\",\n        \"y2\": \"12\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiCoffee(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M18 8h1a4 4 0 0 1 0 8h-1\"\n      }\n    }, {\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M2 8h16v9a4 4 0 0 1-4 4H6a4 4 0 0 1-4-4V8z\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"6\",\n        \"y1\": \"1\",\n        \"x2\": \"6\",\n        \"y2\": \"4\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"10\",\n        \"y1\": \"1\",\n        \"x2\": \"10\",\n        \"y2\": \"4\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"14\",\n        \"y1\": \"1\",\n        \"x2\": \"14\",\n        \"y2\": \"4\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiColumns(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M12 3h7a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-7m0-18H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h7m0-18v18\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiCommand(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M18 3a3 3 0 0 0-3 3v12a3 3 0 0 0 3 3 3 3 0 0 0 3-3 3 3 0 0 0-3-3H6a3 3 0 0 0-3 3 3 3 0 0 0 3 3 3 3 0 0 0 3-3V6a3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3h12a3 3 0 0 0 3-3 3 3 0 0 0-3-3z\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiCompass(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"circle\",\n      \"attr\": {\n        \"cx\": \"12\",\n        \"cy\": \"12\",\n        \"r\": \"10\"\n      }\n    }, {\n      \"tag\": \"polygon\",\n      \"attr\": {\n        \"points\": \"16.24 7.76 14.12 14.12 7.76 16.24 9.88 9.88 16.24 7.76\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiCopy(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"rect\",\n      \"attr\": {\n        \"x\": \"9\",\n        \"y\": \"9\",\n        \"width\": \"13\",\n        \"height\": \"13\",\n        \"rx\": \"2\",\n        \"ry\": \"2\"\n      }\n    }, {\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiCornerDownLeft(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"9 10 4 15 9 20\"\n      }\n    }, {\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M20 4v7a4 4 0 0 1-4 4H4\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiCornerDownRight(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"15 10 20 15 15 20\"\n      }\n    }, {\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M4 4v7a4 4 0 0 0 4 4h12\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiCornerLeftDown(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"14 15 9 20 4 15\"\n      }\n    }, {\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M20 4h-7a4 4 0 0 0-4 4v12\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiCornerLeftUp(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"14 9 9 4 4 9\"\n      }\n    }, {\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M20 20h-7a4 4 0 0 1-4-4V4\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiCornerRightDown(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"10 15 15 20 20 15\"\n      }\n    }, {\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M4 4h7a4 4 0 0 1 4 4v12\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiCornerRightUp(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"10 9 15 4 20 9\"\n      }\n    }, {\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M4 20h7a4 4 0 0 0 4-4V4\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiCornerUpLeft(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"9 14 4 9 9 4\"\n      }\n    }, {\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M20 20v-7a4 4 0 0 0-4-4H4\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiCornerUpRight(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"15 14 20 9 15 4\"\n      }\n    }, {\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M4 20v-7a4 4 0 0 1 4-4h12\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiCpu(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"rect\",\n      \"attr\": {\n        \"x\": \"4\",\n        \"y\": \"4\",\n        \"width\": \"16\",\n        \"height\": \"16\",\n        \"rx\": \"2\",\n        \"ry\": \"2\"\n      }\n    }, {\n      \"tag\": \"rect\",\n      \"attr\": {\n        \"x\": \"9\",\n        \"y\": \"9\",\n        \"width\": \"6\",\n        \"height\": \"6\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"9\",\n        \"y1\": \"1\",\n        \"x2\": \"9\",\n        \"y2\": \"4\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"15\",\n        \"y1\": \"1\",\n        \"x2\": \"15\",\n        \"y2\": \"4\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"9\",\n        \"y1\": \"20\",\n        \"x2\": \"9\",\n        \"y2\": \"23\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"15\",\n        \"y1\": \"20\",\n        \"x2\": \"15\",\n        \"y2\": \"23\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"20\",\n        \"y1\": \"9\",\n        \"x2\": \"23\",\n        \"y2\": \"9\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"20\",\n        \"y1\": \"14\",\n        \"x2\": \"23\",\n        \"y2\": \"14\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"1\",\n        \"y1\": \"9\",\n        \"x2\": \"4\",\n        \"y2\": \"9\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"1\",\n        \"y1\": \"14\",\n        \"x2\": \"4\",\n        \"y2\": \"14\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiCreditCard(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"rect\",\n      \"attr\": {\n        \"x\": \"1\",\n        \"y\": \"4\",\n        \"width\": \"22\",\n        \"height\": \"16\",\n        \"rx\": \"2\",\n        \"ry\": \"2\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"1\",\n        \"y1\": \"10\",\n        \"x2\": \"23\",\n        \"y2\": \"10\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiCrop(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M6.13 1L6 16a2 2 0 0 0 2 2h15\"\n      }\n    }, {\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M1 6.13L16 6a2 2 0 0 1 2 2v15\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiCrosshair(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"circle\",\n      \"attr\": {\n        \"cx\": \"12\",\n        \"cy\": \"12\",\n        \"r\": \"10\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"22\",\n        \"y1\": \"12\",\n        \"x2\": \"18\",\n        \"y2\": \"12\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"6\",\n        \"y1\": \"12\",\n        \"x2\": \"2\",\n        \"y2\": \"12\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"12\",\n        \"y1\": \"6\",\n        \"x2\": \"12\",\n        \"y2\": \"2\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"12\",\n        \"y1\": \"22\",\n        \"x2\": \"12\",\n        \"y2\": \"18\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiDatabase(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"ellipse\",\n      \"attr\": {\n        \"cx\": \"12\",\n        \"cy\": \"5\",\n        \"rx\": \"9\",\n        \"ry\": \"3\"\n      }\n    }, {\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M21 12c0 1.66-4 3-9 3s-9-1.34-9-3\"\n      }\n    }, {\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M3 5v14c0 1.66 4 3 9 3s9-1.34 9-3V5\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiDelete(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M21 4H8l-7 8 7 8h13a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2z\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"18\",\n        \"y1\": \"9\",\n        \"x2\": \"12\",\n        \"y2\": \"15\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"12\",\n        \"y1\": \"9\",\n        \"x2\": \"18\",\n        \"y2\": \"15\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiDisc(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"circle\",\n      \"attr\": {\n        \"cx\": \"12\",\n        \"cy\": \"12\",\n        \"r\": \"10\"\n      }\n    }, {\n      \"tag\": \"circle\",\n      \"attr\": {\n        \"cx\": \"12\",\n        \"cy\": \"12\",\n        \"r\": \"3\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiDollarSign(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"12\",\n        \"y1\": \"1\",\n        \"x2\": \"12\",\n        \"y2\": \"23\"\n      }\n    }, {\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiDownloadCloud(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"8 17 12 21 16 17\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"12\",\n        \"y1\": \"12\",\n        \"x2\": \"12\",\n        \"y2\": \"21\"\n      }\n    }, {\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M20.88 18.09A5 5 0 0 0 18 9h-1.26A8 8 0 1 0 3 16.29\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiDownload(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"\n      }\n    }, {\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"7 10 12 15 17 10\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"12\",\n        \"y1\": \"15\",\n        \"x2\": \"12\",\n        \"y2\": \"3\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiDroplet(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M12 2.69l5.66 5.66a8 8 0 1 1-11.31 0z\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiEdit2(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M17 3a2.828 2.828 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5L17 3z\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiEdit3(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M12 20h9\"\n      }\n    }, {\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M16.5 3.5a2.121 2.121 0 0 1 3 3L7 19l-4 1 1-4L16.5 3.5z\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiEdit(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"\n      }\n    }, {\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiExternalLink(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\"\n      }\n    }, {\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"15 3 21 3 21 9\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"10\",\n        \"y1\": \"14\",\n        \"x2\": \"21\",\n        \"y2\": \"3\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiEyeOff(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"1\",\n        \"y1\": \"1\",\n        \"x2\": \"23\",\n        \"y2\": \"23\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiEye(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"\n      }\n    }, {\n      \"tag\": \"circle\",\n      \"attr\": {\n        \"cx\": \"12\",\n        \"cy\": \"12\",\n        \"r\": \"3\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiFacebook(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiFastForward(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"polygon\",\n      \"attr\": {\n        \"points\": \"13 19 22 12 13 5 13 19\"\n      }\n    }, {\n      \"tag\": \"polygon\",\n      \"attr\": {\n        \"points\": \"2 19 11 12 2 5 2 19\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiFeather(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M20.24 12.24a6 6 0 0 0-8.49-8.49L5 10.5V19h8.5z\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"16\",\n        \"y1\": \"8\",\n        \"x2\": \"2\",\n        \"y2\": \"22\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"17.5\",\n        \"y1\": \"15\",\n        \"x2\": \"9\",\n        \"y2\": \"15\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiFigma(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M5 5.5A3.5 3.5 0 0 1 8.5 2H12v7H8.5A3.5 3.5 0 0 1 5 5.5z\"\n      }\n    }, {\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M12 2h3.5a3.5 3.5 0 1 1 0 7H12V2z\"\n      }\n    }, {\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M12 12.5a3.5 3.5 0 1 1 7 0 3.5 3.5 0 1 1-7 0z\"\n      }\n    }, {\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M5 19.5A3.5 3.5 0 0 1 8.5 16H12v3.5a3.5 3.5 0 1 1-7 0z\"\n      }\n    }, {\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M5 12.5A3.5 3.5 0 0 1 8.5 9H12v7H8.5A3.5 3.5 0 0 1 5 12.5z\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiFileMinus(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"\n      }\n    }, {\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"14 2 14 8 20 8\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"9\",\n        \"y1\": \"15\",\n        \"x2\": \"15\",\n        \"y2\": \"15\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiFilePlus(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"\n      }\n    }, {\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"14 2 14 8 20 8\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"12\",\n        \"y1\": \"18\",\n        \"x2\": \"12\",\n        \"y2\": \"12\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"9\",\n        \"y1\": \"15\",\n        \"x2\": \"15\",\n        \"y2\": \"15\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiFileText(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"\n      }\n    }, {\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"14 2 14 8 20 8\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"16\",\n        \"y1\": \"13\",\n        \"x2\": \"8\",\n        \"y2\": \"13\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"16\",\n        \"y1\": \"17\",\n        \"x2\": \"8\",\n        \"y2\": \"17\"\n      }\n    }, {\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"10 9 9 9 8 9\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiFile(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M13 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z\"\n      }\n    }, {\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"13 2 13 9 20 9\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiFilm(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"rect\",\n      \"attr\": {\n        \"x\": \"2\",\n        \"y\": \"2\",\n        \"width\": \"20\",\n        \"height\": \"20\",\n        \"rx\": \"2.18\",\n        \"ry\": \"2.18\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"7\",\n        \"y1\": \"2\",\n        \"x2\": \"7\",\n        \"y2\": \"22\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"17\",\n        \"y1\": \"2\",\n        \"x2\": \"17\",\n        \"y2\": \"22\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"2\",\n        \"y1\": \"12\",\n        \"x2\": \"22\",\n        \"y2\": \"12\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"2\",\n        \"y1\": \"7\",\n        \"x2\": \"7\",\n        \"y2\": \"7\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"2\",\n        \"y1\": \"17\",\n        \"x2\": \"7\",\n        \"y2\": \"17\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"17\",\n        \"y1\": \"17\",\n        \"x2\": \"22\",\n        \"y2\": \"17\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"17\",\n        \"y1\": \"7\",\n        \"x2\": \"22\",\n        \"y2\": \"7\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiFilter(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"polygon\",\n      \"attr\": {\n        \"points\": \"22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiFlag(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M4 15s1-1 4-1 5 2 8 2 4-1 4-1V3s-1 1-4 1-5-2-8-2-4 1-4 1z\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"4\",\n        \"y1\": \"22\",\n        \"x2\": \"4\",\n        \"y2\": \"15\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiFolderMinus(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"9\",\n        \"y1\": \"14\",\n        \"x2\": \"15\",\n        \"y2\": \"14\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiFolderPlus(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"12\",\n        \"y1\": \"11\",\n        \"x2\": \"12\",\n        \"y2\": \"17\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"9\",\n        \"y1\": \"14\",\n        \"x2\": \"15\",\n        \"y2\": \"14\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiFolder(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiFrown(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"circle\",\n      \"attr\": {\n        \"cx\": \"12\",\n        \"cy\": \"12\",\n        \"r\": \"10\"\n      }\n    }, {\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M16 16s-1.5-2-4-2-4 2-4 2\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"9\",\n        \"y1\": \"9\",\n        \"x2\": \"9.01\",\n        \"y2\": \"9\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"15\",\n        \"y1\": \"9\",\n        \"x2\": \"15.01\",\n        \"y2\": \"9\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiGift(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"20 12 20 22 4 22 4 12\"\n      }\n    }, {\n      \"tag\": \"rect\",\n      \"attr\": {\n        \"x\": \"2\",\n        \"y\": \"7\",\n        \"width\": \"20\",\n        \"height\": \"5\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"12\",\n        \"y1\": \"22\",\n        \"x2\": \"12\",\n        \"y2\": \"7\"\n      }\n    }, {\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M12 7H7.5a2.5 2.5 0 0 1 0-5C11 2 12 7 12 7z\"\n      }\n    }, {\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M12 7h4.5a2.5 2.5 0 0 0 0-5C13 2 12 7 12 7z\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiGitBranch(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"6\",\n        \"y1\": \"3\",\n        \"x2\": \"6\",\n        \"y2\": \"15\"\n      }\n    }, {\n      \"tag\": \"circle\",\n      \"attr\": {\n        \"cx\": \"18\",\n        \"cy\": \"6\",\n        \"r\": \"3\"\n      }\n    }, {\n      \"tag\": \"circle\",\n      \"attr\": {\n        \"cx\": \"6\",\n        \"cy\": \"18\",\n        \"r\": \"3\"\n      }\n    }, {\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M18 9a9 9 0 0 1-9 9\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiGitCommit(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"circle\",\n      \"attr\": {\n        \"cx\": \"12\",\n        \"cy\": \"12\",\n        \"r\": \"4\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"1.05\",\n        \"y1\": \"12\",\n        \"x2\": \"7\",\n        \"y2\": \"12\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"17.01\",\n        \"y1\": \"12\",\n        \"x2\": \"22.96\",\n        \"y2\": \"12\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiGitMerge(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"circle\",\n      \"attr\": {\n        \"cx\": \"18\",\n        \"cy\": \"18\",\n        \"r\": \"3\"\n      }\n    }, {\n      \"tag\": \"circle\",\n      \"attr\": {\n        \"cx\": \"6\",\n        \"cy\": \"6\",\n        \"r\": \"3\"\n      }\n    }, {\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M6 21V9a9 9 0 0 0 9 9\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiGitPullRequest(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"circle\",\n      \"attr\": {\n        \"cx\": \"18\",\n        \"cy\": \"18\",\n        \"r\": \"3\"\n      }\n    }, {\n      \"tag\": \"circle\",\n      \"attr\": {\n        \"cx\": \"6\",\n        \"cy\": \"6\",\n        \"r\": \"3\"\n      }\n    }, {\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M13 6h3a2 2 0 0 1 2 2v7\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"6\",\n        \"y1\": \"9\",\n        \"x2\": \"6\",\n        \"y2\": \"21\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiGithub(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiGitlab(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M22.65 14.39L12 22.13 1.35 14.39a.84.84 0 0 1-.3-.94l1.22-3.78 2.44-7.51A.42.42 0 0 1 4.82 2a.43.43 0 0 1 .58 0 .42.42 0 0 1 .11.18l2.44 7.49h8.1l2.44-7.51A.42.42 0 0 1 18.6 2a.43.43 0 0 1 .58 0 .42.42 0 0 1 .11.18l2.44 7.51L23 13.45a.84.84 0 0 1-.35.94z\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiGlobe(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"circle\",\n      \"attr\": {\n        \"cx\": \"12\",\n        \"cy\": \"12\",\n        \"r\": \"10\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"2\",\n        \"y1\": \"12\",\n        \"x2\": \"22\",\n        \"y2\": \"12\"\n      }\n    }, {\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiGrid(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"rect\",\n      \"attr\": {\n        \"x\": \"3\",\n        \"y\": \"3\",\n        \"width\": \"7\",\n        \"height\": \"7\"\n      }\n    }, {\n      \"tag\": \"rect\",\n      \"attr\": {\n        \"x\": \"14\",\n        \"y\": \"3\",\n        \"width\": \"7\",\n        \"height\": \"7\"\n      }\n    }, {\n      \"tag\": \"rect\",\n      \"attr\": {\n        \"x\": \"14\",\n        \"y\": \"14\",\n        \"width\": \"7\",\n        \"height\": \"7\"\n      }\n    }, {\n      \"tag\": \"rect\",\n      \"attr\": {\n        \"x\": \"3\",\n        \"y\": \"14\",\n        \"width\": \"7\",\n        \"height\": \"7\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiHardDrive(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"22\",\n        \"y1\": \"12\",\n        \"x2\": \"2\",\n        \"y2\": \"12\"\n      }\n    }, {\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M5.45 5.11L2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"6\",\n        \"y1\": \"16\",\n        \"x2\": \"6\",\n        \"y2\": \"16\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"10\",\n        \"y1\": \"16\",\n        \"x2\": \"10\",\n        \"y2\": \"16\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiHash(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"4\",\n        \"y1\": \"9\",\n        \"x2\": \"20\",\n        \"y2\": \"9\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"4\",\n        \"y1\": \"15\",\n        \"x2\": \"20\",\n        \"y2\": \"15\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"10\",\n        \"y1\": \"3\",\n        \"x2\": \"8\",\n        \"y2\": \"21\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"16\",\n        \"y1\": \"3\",\n        \"x2\": \"14\",\n        \"y2\": \"21\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiHeadphones(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M3 18v-6a9 9 0 0 1 18 0v6\"\n      }\n    }, {\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M21 19a2 2 0 0 1-2 2h-1a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h3zM3 19a2 2 0 0 0 2 2h1a2 2 0 0 0 2-2v-3a2 2 0 0 0-2-2H3z\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiHeart(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiHelpCircle(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"circle\",\n      \"attr\": {\n        \"cx\": \"12\",\n        \"cy\": \"12\",\n        \"r\": \"10\"\n      }\n    }, {\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"12\",\n        \"y1\": \"17\",\n        \"x2\": \"12\",\n        \"y2\": \"17\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiHexagon(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiHome(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z\"\n      }\n    }, {\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"9 22 9 12 15 12 15 22\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiImage(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"rect\",\n      \"attr\": {\n        \"x\": \"3\",\n        \"y\": \"3\",\n        \"width\": \"18\",\n        \"height\": \"18\",\n        \"rx\": \"2\",\n        \"ry\": \"2\"\n      }\n    }, {\n      \"tag\": \"circle\",\n      \"attr\": {\n        \"cx\": \"8.5\",\n        \"cy\": \"8.5\",\n        \"r\": \"1.5\"\n      }\n    }, {\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"21 15 16 10 5 21\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiInbox(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"22 12 16 12 14 15 10 15 8 12 2 12\"\n      }\n    }, {\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M5.45 5.11L2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiInfo(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"circle\",\n      \"attr\": {\n        \"cx\": \"12\",\n        \"cy\": \"12\",\n        \"r\": \"10\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"12\",\n        \"y1\": \"16\",\n        \"x2\": \"12\",\n        \"y2\": \"12\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"12\",\n        \"y1\": \"8\",\n        \"x2\": \"12\",\n        \"y2\": \"8\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiInstagram(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"rect\",\n      \"attr\": {\n        \"x\": \"2\",\n        \"y\": \"2\",\n        \"width\": \"20\",\n        \"height\": \"20\",\n        \"rx\": \"5\",\n        \"ry\": \"5\"\n      }\n    }, {\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M16 11.37A4 4 0 1 1 12.63 8 4 4 0 0 1 16 11.37z\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"17.5\",\n        \"y1\": \"6.5\",\n        \"x2\": \"17.5\",\n        \"y2\": \"6.5\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiItalic(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"19\",\n        \"y1\": \"4\",\n        \"x2\": \"10\",\n        \"y2\": \"4\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"14\",\n        \"y1\": \"20\",\n        \"x2\": \"5\",\n        \"y2\": \"20\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"15\",\n        \"y1\": \"4\",\n        \"x2\": \"9\",\n        \"y2\": \"20\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiKey(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M21 2l-2 2m-7.61 7.61a5.5 5.5 0 1 1-7.778 7.778 5.5 5.5 0 0 1 7.777-7.777zm0 0L15.5 7.5m0 0l3 3L22 7l-3-3m-3.5 3.5L19 4\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiLayers(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"polygon\",\n      \"attr\": {\n        \"points\": \"12 2 2 7 12 12 22 7 12 2\"\n      }\n    }, {\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"2 17 12 22 22 17\"\n      }\n    }, {\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"2 12 12 17 22 12\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiLayout(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"rect\",\n      \"attr\": {\n        \"x\": \"3\",\n        \"y\": \"3\",\n        \"width\": \"18\",\n        \"height\": \"18\",\n        \"rx\": \"2\",\n        \"ry\": \"2\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"3\",\n        \"y1\": \"9\",\n        \"x2\": \"21\",\n        \"y2\": \"9\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"9\",\n        \"y1\": \"21\",\n        \"x2\": \"9\",\n        \"y2\": \"9\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiLifeBuoy(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"circle\",\n      \"attr\": {\n        \"cx\": \"12\",\n        \"cy\": \"12\",\n        \"r\": \"10\"\n      }\n    }, {\n      \"tag\": \"circle\",\n      \"attr\": {\n        \"cx\": \"12\",\n        \"cy\": \"12\",\n        \"r\": \"4\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"4.93\",\n        \"y1\": \"4.93\",\n        \"x2\": \"9.17\",\n        \"y2\": \"9.17\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"14.83\",\n        \"y1\": \"14.83\",\n        \"x2\": \"19.07\",\n        \"y2\": \"19.07\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"14.83\",\n        \"y1\": \"9.17\",\n        \"x2\": \"19.07\",\n        \"y2\": \"4.93\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"14.83\",\n        \"y1\": \"9.17\",\n        \"x2\": \"18.36\",\n        \"y2\": \"5.64\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"4.93\",\n        \"y1\": \"19.07\",\n        \"x2\": \"9.17\",\n        \"y2\": \"14.83\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiLink2(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"8\",\n        \"y1\": \"12\",\n        \"x2\": \"16\",\n        \"y2\": \"12\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiLink(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71\"\n      }\n    }, {\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiLinkedin(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z\"\n      }\n    }, {\n      \"tag\": \"rect\",\n      \"attr\": {\n        \"x\": \"2\",\n        \"y\": \"9\",\n        \"width\": \"4\",\n        \"height\": \"12\"\n      }\n    }, {\n      \"tag\": \"circle\",\n      \"attr\": {\n        \"cx\": \"4\",\n        \"cy\": \"4\",\n        \"r\": \"2\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiList(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"8\",\n        \"y1\": \"6\",\n        \"x2\": \"21\",\n        \"y2\": \"6\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"8\",\n        \"y1\": \"12\",\n        \"x2\": \"21\",\n        \"y2\": \"12\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"8\",\n        \"y1\": \"18\",\n        \"x2\": \"21\",\n        \"y2\": \"18\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"3\",\n        \"y1\": \"6\",\n        \"x2\": \"3\",\n        \"y2\": \"6\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"3\",\n        \"y1\": \"12\",\n        \"x2\": \"3\",\n        \"y2\": \"12\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"3\",\n        \"y1\": \"18\",\n        \"x2\": \"3\",\n        \"y2\": \"18\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiLoader(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"12\",\n        \"y1\": \"2\",\n        \"x2\": \"12\",\n        \"y2\": \"6\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"12\",\n        \"y1\": \"18\",\n        \"x2\": \"12\",\n        \"y2\": \"22\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"4.93\",\n        \"y1\": \"4.93\",\n        \"x2\": \"7.76\",\n        \"y2\": \"7.76\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"16.24\",\n        \"y1\": \"16.24\",\n        \"x2\": \"19.07\",\n        \"y2\": \"19.07\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"2\",\n        \"y1\": \"12\",\n        \"x2\": \"6\",\n        \"y2\": \"12\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"18\",\n        \"y1\": \"12\",\n        \"x2\": \"22\",\n        \"y2\": \"12\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"4.93\",\n        \"y1\": \"19.07\",\n        \"x2\": \"7.76\",\n        \"y2\": \"16.24\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"16.24\",\n        \"y1\": \"7.76\",\n        \"x2\": \"19.07\",\n        \"y2\": \"4.93\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiLock(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"rect\",\n      \"attr\": {\n        \"x\": \"3\",\n        \"y\": \"11\",\n        \"width\": \"18\",\n        \"height\": \"11\",\n        \"rx\": \"2\",\n        \"ry\": \"2\"\n      }\n    }, {\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M7 11V7a5 5 0 0 1 10 0v4\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiLogIn(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4\"\n      }\n    }, {\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"10 17 15 12 10 7\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"15\",\n        \"y1\": \"12\",\n        \"x2\": \"3\",\n        \"y2\": \"12\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiLogOut(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4\"\n      }\n    }, {\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"16 17 21 12 16 7\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"21\",\n        \"y1\": \"12\",\n        \"x2\": \"9\",\n        \"y2\": \"12\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiMail(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z\"\n      }\n    }, {\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"22,6 12,13 2,6\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiMapPin(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z\"\n      }\n    }, {\n      \"tag\": \"circle\",\n      \"attr\": {\n        \"cx\": \"12\",\n        \"cy\": \"10\",\n        \"r\": \"3\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiMap(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"polygon\",\n      \"attr\": {\n        \"points\": \"1 6 1 22 8 18 16 22 23 18 23 2 16 6 8 2 1 6\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"8\",\n        \"y1\": \"2\",\n        \"x2\": \"8\",\n        \"y2\": \"18\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"16\",\n        \"y1\": \"6\",\n        \"x2\": \"16\",\n        \"y2\": \"22\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiMaximize2(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"15 3 21 3 21 9\"\n      }\n    }, {\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"9 21 3 21 3 15\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"21\",\n        \"y1\": \"3\",\n        \"x2\": \"14\",\n        \"y2\": \"10\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"3\",\n        \"y1\": \"21\",\n        \"x2\": \"10\",\n        \"y2\": \"14\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiMaximize(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M8 3H5a2 2 0 0 0-2 2v3m18 0V5a2 2 0 0 0-2-2h-3m0 18h3a2 2 0 0 0 2-2v-3M3 16v3a2 2 0 0 0 2 2h3\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiMeh(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"circle\",\n      \"attr\": {\n        \"cx\": \"12\",\n        \"cy\": \"12\",\n        \"r\": \"10\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"8\",\n        \"y1\": \"15\",\n        \"x2\": \"16\",\n        \"y2\": \"15\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"9\",\n        \"y1\": \"9\",\n        \"x2\": \"9.01\",\n        \"y2\": \"9\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"15\",\n        \"y1\": \"9\",\n        \"x2\": \"15.01\",\n        \"y2\": \"9\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiMenu(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"3\",\n        \"y1\": \"12\",\n        \"x2\": \"21\",\n        \"y2\": \"12\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"3\",\n        \"y1\": \"6\",\n        \"x2\": \"21\",\n        \"y2\": \"6\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"3\",\n        \"y1\": \"18\",\n        \"x2\": \"21\",\n        \"y2\": \"18\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiMessageCircle(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M21 11.5a8.38 8.38 0 0 1-.9 3.8 8.5 8.5 0 0 1-7.6 4.7 8.38 8.38 0 0 1-3.8-.9L3 21l1.9-5.7a8.38 8.38 0 0 1-.9-3.8 8.5 8.5 0 0 1 4.7-7.6 8.38 8.38 0 0 1 3.8-.9h.5a8.48 8.48 0 0 1 8 8v.5z\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiMessageSquare(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiMicOff(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"1\",\n        \"y1\": \"1\",\n        \"x2\": \"23\",\n        \"y2\": \"23\"\n      }\n    }, {\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M9 9v3a3 3 0 0 0 5.12 2.12M15 9.34V4a3 3 0 0 0-5.94-.6\"\n      }\n    }, {\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M17 16.95A7 7 0 0 1 5 12v-2m14 0v2a7 7 0 0 1-.11 1.23\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"12\",\n        \"y1\": \"19\",\n        \"x2\": \"12\",\n        \"y2\": \"23\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"8\",\n        \"y1\": \"23\",\n        \"x2\": \"16\",\n        \"y2\": \"23\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiMic(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M12 1a3 3 0 0 0-3 3v8a3 3 0 0 0 6 0V4a3 3 0 0 0-3-3z\"\n      }\n    }, {\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M19 10v2a7 7 0 0 1-14 0v-2\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"12\",\n        \"y1\": \"19\",\n        \"x2\": \"12\",\n        \"y2\": \"23\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"8\",\n        \"y1\": \"23\",\n        \"x2\": \"16\",\n        \"y2\": \"23\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiMinimize2(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"4 14 10 14 10 20\"\n      }\n    }, {\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"20 10 14 10 14 4\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"14\",\n        \"y1\": \"10\",\n        \"x2\": \"21\",\n        \"y2\": \"3\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"3\",\n        \"y1\": \"21\",\n        \"x2\": \"10\",\n        \"y2\": \"14\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiMinimize(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M8 3v3a2 2 0 0 1-2 2H3m18 0h-3a2 2 0 0 1-2-2V3m0 18v-3a2 2 0 0 1 2-2h3M3 16h3a2 2 0 0 1 2 2v3\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiMinusCircle(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"circle\",\n      \"attr\": {\n        \"cx\": \"12\",\n        \"cy\": \"12\",\n        \"r\": \"10\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"8\",\n        \"y1\": \"12\",\n        \"x2\": \"16\",\n        \"y2\": \"12\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiMinusSquare(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"rect\",\n      \"attr\": {\n        \"x\": \"3\",\n        \"y\": \"3\",\n        \"width\": \"18\",\n        \"height\": \"18\",\n        \"rx\": \"2\",\n        \"ry\": \"2\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"8\",\n        \"y1\": \"12\",\n        \"x2\": \"16\",\n        \"y2\": \"12\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiMinus(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"5\",\n        \"y1\": \"12\",\n        \"x2\": \"19\",\n        \"y2\": \"12\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiMonitor(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"rect\",\n      \"attr\": {\n        \"x\": \"2\",\n        \"y\": \"3\",\n        \"width\": \"20\",\n        \"height\": \"14\",\n        \"rx\": \"2\",\n        \"ry\": \"2\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"8\",\n        \"y1\": \"21\",\n        \"x2\": \"16\",\n        \"y2\": \"21\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"12\",\n        \"y1\": \"17\",\n        \"x2\": \"12\",\n        \"y2\": \"21\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiMoon(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiMoreHorizontal(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"circle\",\n      \"attr\": {\n        \"cx\": \"12\",\n        \"cy\": \"12\",\n        \"r\": \"1\"\n      }\n    }, {\n      \"tag\": \"circle\",\n      \"attr\": {\n        \"cx\": \"19\",\n        \"cy\": \"12\",\n        \"r\": \"1\"\n      }\n    }, {\n      \"tag\": \"circle\",\n      \"attr\": {\n        \"cx\": \"5\",\n        \"cy\": \"12\",\n        \"r\": \"1\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiMoreVertical(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"circle\",\n      \"attr\": {\n        \"cx\": \"12\",\n        \"cy\": \"12\",\n        \"r\": \"1\"\n      }\n    }, {\n      \"tag\": \"circle\",\n      \"attr\": {\n        \"cx\": \"12\",\n        \"cy\": \"5\",\n        \"r\": \"1\"\n      }\n    }, {\n      \"tag\": \"circle\",\n      \"attr\": {\n        \"cx\": \"12\",\n        \"cy\": \"19\",\n        \"r\": \"1\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiMousePointer(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M3 3l7.07 16.97 2.51-7.39 7.39-2.51L3 3z\"\n      }\n    }, {\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M13 13l6 6\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiMove(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"5 9 2 12 5 15\"\n      }\n    }, {\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"9 5 12 2 15 5\"\n      }\n    }, {\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"15 19 12 22 9 19\"\n      }\n    }, {\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"19 9 22 12 19 15\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"2\",\n        \"y1\": \"12\",\n        \"x2\": \"22\",\n        \"y2\": \"12\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"12\",\n        \"y1\": \"2\",\n        \"x2\": \"12\",\n        \"y2\": \"22\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiMusic(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M9 18V5l12-2v13\"\n      }\n    }, {\n      \"tag\": \"circle\",\n      \"attr\": {\n        \"cx\": \"6\",\n        \"cy\": \"18\",\n        \"r\": \"3\"\n      }\n    }, {\n      \"tag\": \"circle\",\n      \"attr\": {\n        \"cx\": \"18\",\n        \"cy\": \"16\",\n        \"r\": \"3\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiNavigation2(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"polygon\",\n      \"attr\": {\n        \"points\": \"12 2 19 21 12 17 5 21 12 2\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiNavigation(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"polygon\",\n      \"attr\": {\n        \"points\": \"3 11 22 2 13 21 11 13 3 11\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiOctagon(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"polygon\",\n      \"attr\": {\n        \"points\": \"7.86 2 16.14 2 22 7.86 22 16.14 16.14 22 7.86 22 2 16.14 2 7.86 7.86 2\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiPackage(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"16.5\",\n        \"y1\": \"9.4\",\n        \"x2\": \"7.5\",\n        \"y2\": \"4.21\"\n      }\n    }, {\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z\"\n      }\n    }, {\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"3.27 6.96 12 12.01 20.73 6.96\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"12\",\n        \"y1\": \"22.08\",\n        \"x2\": \"12\",\n        \"y2\": \"12\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiPaperclip(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M21.44 11.05l-9.19 9.19a6 6 0 0 1-8.49-8.49l9.19-9.19a4 4 0 0 1 5.66 5.66l-9.2 9.19a2 2 0 0 1-2.83-2.83l8.49-8.48\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiPauseCircle(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"circle\",\n      \"attr\": {\n        \"cx\": \"12\",\n        \"cy\": \"12\",\n        \"r\": \"10\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"10\",\n        \"y1\": \"15\",\n        \"x2\": \"10\",\n        \"y2\": \"9\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"14\",\n        \"y1\": \"15\",\n        \"x2\": \"14\",\n        \"y2\": \"9\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiPause(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"rect\",\n      \"attr\": {\n        \"x\": \"6\",\n        \"y\": \"4\",\n        \"width\": \"4\",\n        \"height\": \"16\"\n      }\n    }, {\n      \"tag\": \"rect\",\n      \"attr\": {\n        \"x\": \"14\",\n        \"y\": \"4\",\n        \"width\": \"4\",\n        \"height\": \"16\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiPenTool(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M12 19l7-7 3 3-7 7-3-3z\"\n      }\n    }, {\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M18 13l-1.5-7.5L2 2l3.5 14.5L13 18l5-5z\"\n      }\n    }, {\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M2 2l7.586 7.586\"\n      }\n    }, {\n      \"tag\": \"circle\",\n      \"attr\": {\n        \"cx\": \"11\",\n        \"cy\": \"11\",\n        \"r\": \"2\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiPercent(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"19\",\n        \"y1\": \"5\",\n        \"x2\": \"5\",\n        \"y2\": \"19\"\n      }\n    }, {\n      \"tag\": \"circle\",\n      \"attr\": {\n        \"cx\": \"6.5\",\n        \"cy\": \"6.5\",\n        \"r\": \"2.5\"\n      }\n    }, {\n      \"tag\": \"circle\",\n      \"attr\": {\n        \"cx\": \"17.5\",\n        \"cy\": \"17.5\",\n        \"r\": \"2.5\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiPhoneCall(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M15.05 5A5 5 0 0 1 19 8.95M15.05 1A9 9 0 0 1 23 8.94m-1 7.98v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiPhoneForwarded(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"19 1 23 5 19 9\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"15\",\n        \"y1\": \"5\",\n        \"x2\": \"23\",\n        \"y2\": \"5\"\n      }\n    }, {\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiPhoneIncoming(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"16 2 16 8 22 8\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"23\",\n        \"y1\": \"1\",\n        \"x2\": \"16\",\n        \"y2\": \"8\"\n      }\n    }, {\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiPhoneMissed(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"23\",\n        \"y1\": \"1\",\n        \"x2\": \"17\",\n        \"y2\": \"7\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"17\",\n        \"y1\": \"1\",\n        \"x2\": \"23\",\n        \"y2\": \"7\"\n      }\n    }, {\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiPhoneOff(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M10.68 13.31a16 16 0 0 0 3.41 2.6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7 2 2 0 0 1 1.72 2v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.42 19.42 0 0 1-3.33-2.67m-2.67-3.34a19.79 19.79 0 0 1-3.07-8.63A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"23\",\n        \"y1\": \"1\",\n        \"x2\": \"1\",\n        \"y2\": \"23\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiPhoneOutgoing(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"23 7 23 1 17 1\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"16\",\n        \"y1\": \"8\",\n        \"x2\": \"23\",\n        \"y2\": \"1\"\n      }\n    }, {\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiPhone(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiPieChart(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M21.21 15.89A10 10 0 1 1 8 2.83\"\n      }\n    }, {\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M22 12A10 10 0 0 0 12 2v10z\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiPlayCircle(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"circle\",\n      \"attr\": {\n        \"cx\": \"12\",\n        \"cy\": \"12\",\n        \"r\": \"10\"\n      }\n    }, {\n      \"tag\": \"polygon\",\n      \"attr\": {\n        \"points\": \"10 8 16 12 10 16 10 8\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiPlay(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"polygon\",\n      \"attr\": {\n        \"points\": \"5 3 19 12 5 21 5 3\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiPlusCircle(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"circle\",\n      \"attr\": {\n        \"cx\": \"12\",\n        \"cy\": \"12\",\n        \"r\": \"10\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"12\",\n        \"y1\": \"8\",\n        \"x2\": \"12\",\n        \"y2\": \"16\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"8\",\n        \"y1\": \"12\",\n        \"x2\": \"16\",\n        \"y2\": \"12\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiPlusSquare(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"rect\",\n      \"attr\": {\n        \"x\": \"3\",\n        \"y\": \"3\",\n        \"width\": \"18\",\n        \"height\": \"18\",\n        \"rx\": \"2\",\n        \"ry\": \"2\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"12\",\n        \"y1\": \"8\",\n        \"x2\": \"12\",\n        \"y2\": \"16\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"8\",\n        \"y1\": \"12\",\n        \"x2\": \"16\",\n        \"y2\": \"12\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiPlus(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"12\",\n        \"y1\": \"5\",\n        \"x2\": \"12\",\n        \"y2\": \"19\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"5\",\n        \"y1\": \"12\",\n        \"x2\": \"19\",\n        \"y2\": \"12\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiPocket(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M4 3h16a2 2 0 0 1 2 2v6a10 10 0 0 1-10 10A10 10 0 0 1 2 11V5a2 2 0 0 1 2-2z\"\n      }\n    }, {\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"8 10 12 14 16 10\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiPower(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M18.36 6.64a9 9 0 1 1-12.73 0\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"12\",\n        \"y1\": \"2\",\n        \"x2\": \"12\",\n        \"y2\": \"12\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiPrinter(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"6 9 6 2 18 2 18 9\"\n      }\n    }, {\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2\"\n      }\n    }, {\n      \"tag\": \"rect\",\n      \"attr\": {\n        \"x\": \"6\",\n        \"y\": \"14\",\n        \"width\": \"12\",\n        \"height\": \"8\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiRadio(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"circle\",\n      \"attr\": {\n        \"cx\": \"12\",\n        \"cy\": \"12\",\n        \"r\": \"2\"\n      }\n    }, {\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M16.24 7.76a6 6 0 0 1 0 8.49m-8.48-.01a6 6 0 0 1 0-8.49m11.31-2.82a10 10 0 0 1 0 14.14m-14.14 0a10 10 0 0 1 0-14.14\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiRefreshCcw(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"1 4 1 10 7 10\"\n      }\n    }, {\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"23 20 23 14 17 14\"\n      }\n    }, {\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M20.49 9A9 9 0 0 0 5.64 5.64L1 10m22 4l-4.64 4.36A9 9 0 0 1 3.51 15\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiRefreshCw(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"23 4 23 10 17 10\"\n      }\n    }, {\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"1 20 1 14 7 14\"\n      }\n    }, {\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M3.51 9a9 9 0 0 1 14.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0 0 20.49 15\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiRepeat(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"17 1 21 5 17 9\"\n      }\n    }, {\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M3 11V9a4 4 0 0 1 4-4h14\"\n      }\n    }, {\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"7 23 3 19 7 15\"\n      }\n    }, {\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M21 13v2a4 4 0 0 1-4 4H3\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiRewind(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"polygon\",\n      \"attr\": {\n        \"points\": \"11 19 2 12 11 5 11 19\"\n      }\n    }, {\n      \"tag\": \"polygon\",\n      \"attr\": {\n        \"points\": \"22 19 13 12 22 5 22 19\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiRotateCcw(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"1 4 1 10 7 10\"\n      }\n    }, {\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M3.51 15a9 9 0 1 0 2.13-9.36L1 10\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiRotateCw(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"23 4 23 10 17 10\"\n      }\n    }, {\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M20.49 15a9 9 0 1 1-2.12-9.36L23 10\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiRss(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M4 11a9 9 0 0 1 9 9\"\n      }\n    }, {\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M4 4a16 16 0 0 1 16 16\"\n      }\n    }, {\n      \"tag\": \"circle\",\n      \"attr\": {\n        \"cx\": \"5\",\n        \"cy\": \"19\",\n        \"r\": \"1\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiSave(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M19 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11l5 5v11a2 2 0 0 1-2 2z\"\n      }\n    }, {\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"17 21 17 13 7 13 7 21\"\n      }\n    }, {\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"7 3 7 8 15 8\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiScissors(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"circle\",\n      \"attr\": {\n        \"cx\": \"6\",\n        \"cy\": \"6\",\n        \"r\": \"3\"\n      }\n    }, {\n      \"tag\": \"circle\",\n      \"attr\": {\n        \"cx\": \"6\",\n        \"cy\": \"18\",\n        \"r\": \"3\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"20\",\n        \"y1\": \"4\",\n        \"x2\": \"8.12\",\n        \"y2\": \"15.88\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"14.47\",\n        \"y1\": \"14.48\",\n        \"x2\": \"20\",\n        \"y2\": \"20\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"8.12\",\n        \"y1\": \"8.12\",\n        \"x2\": \"12\",\n        \"y2\": \"12\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiSearch(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"circle\",\n      \"attr\": {\n        \"cx\": \"11\",\n        \"cy\": \"11\",\n        \"r\": \"8\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"21\",\n        \"y1\": \"21\",\n        \"x2\": \"16.65\",\n        \"y2\": \"16.65\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiSend(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"22\",\n        \"y1\": \"2\",\n        \"x2\": \"11\",\n        \"y2\": \"13\"\n      }\n    }, {\n      \"tag\": \"polygon\",\n      \"attr\": {\n        \"points\": \"22 2 15 22 11 13 2 9 22 2\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiServer(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"rect\",\n      \"attr\": {\n        \"x\": \"2\",\n        \"y\": \"2\",\n        \"width\": \"20\",\n        \"height\": \"8\",\n        \"rx\": \"2\",\n        \"ry\": \"2\"\n      }\n    }, {\n      \"tag\": \"rect\",\n      \"attr\": {\n        \"x\": \"2\",\n        \"y\": \"14\",\n        \"width\": \"20\",\n        \"height\": \"8\",\n        \"rx\": \"2\",\n        \"ry\": \"2\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"6\",\n        \"y1\": \"6\",\n        \"x2\": \"6\",\n        \"y2\": \"6\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"6\",\n        \"y1\": \"18\",\n        \"x2\": \"6\",\n        \"y2\": \"18\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiSettings(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"circle\",\n      \"attr\": {\n        \"cx\": \"12\",\n        \"cy\": \"12\",\n        \"r\": \"3\"\n      }\n    }, {\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiShare2(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"circle\",\n      \"attr\": {\n        \"cx\": \"18\",\n        \"cy\": \"5\",\n        \"r\": \"3\"\n      }\n    }, {\n      \"tag\": \"circle\",\n      \"attr\": {\n        \"cx\": \"6\",\n        \"cy\": \"12\",\n        \"r\": \"3\"\n      }\n    }, {\n      \"tag\": \"circle\",\n      \"attr\": {\n        \"cx\": \"18\",\n        \"cy\": \"19\",\n        \"r\": \"3\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"8.59\",\n        \"y1\": \"13.51\",\n        \"x2\": \"15.42\",\n        \"y2\": \"17.49\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"15.41\",\n        \"y1\": \"6.51\",\n        \"x2\": \"8.59\",\n        \"y2\": \"10.49\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiShare(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8\"\n      }\n    }, {\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"16 6 12 2 8 6\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"12\",\n        \"y1\": \"2\",\n        \"x2\": \"12\",\n        \"y2\": \"15\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiShieldOff(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M19.69 14a6.9 6.9 0 0 0 .31-2V5l-8-3-3.16 1.18\"\n      }\n    }, {\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M4.73 4.73L4 5v7c0 6 8 10 8 10a20.29 20.29 0 0 0 5.62-4.38\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"1\",\n        \"y1\": \"1\",\n        \"x2\": \"23\",\n        \"y2\": \"23\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiShield(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiShoppingBag(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M6 2L3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6l-3-4z\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"3\",\n        \"y1\": \"6\",\n        \"x2\": \"21\",\n        \"y2\": \"6\"\n      }\n    }, {\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M16 10a4 4 0 0 1-8 0\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiShoppingCart(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"circle\",\n      \"attr\": {\n        \"cx\": \"9\",\n        \"cy\": \"21\",\n        \"r\": \"1\"\n      }\n    }, {\n      \"tag\": \"circle\",\n      \"attr\": {\n        \"cx\": \"20\",\n        \"cy\": \"21\",\n        \"r\": \"1\"\n      }\n    }, {\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M1 1h4l2.68 13.39a2 2 0 0 0 2 1.61h9.72a2 2 0 0 0 2-1.61L23 6H6\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiShuffle(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"16 3 21 3 21 8\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"4\",\n        \"y1\": \"20\",\n        \"x2\": \"21\",\n        \"y2\": \"3\"\n      }\n    }, {\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"21 16 21 21 16 21\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"15\",\n        \"y1\": \"15\",\n        \"x2\": \"21\",\n        \"y2\": \"21\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"4\",\n        \"y1\": \"4\",\n        \"x2\": \"9\",\n        \"y2\": \"9\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiSidebar(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"rect\",\n      \"attr\": {\n        \"x\": \"3\",\n        \"y\": \"3\",\n        \"width\": \"18\",\n        \"height\": \"18\",\n        \"rx\": \"2\",\n        \"ry\": \"2\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"9\",\n        \"y1\": \"3\",\n        \"x2\": \"9\",\n        \"y2\": \"21\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiSkipBack(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"polygon\",\n      \"attr\": {\n        \"points\": \"19 20 9 12 19 4 19 20\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"5\",\n        \"y1\": \"19\",\n        \"x2\": \"5\",\n        \"y2\": \"5\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiSkipForward(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"polygon\",\n      \"attr\": {\n        \"points\": \"5 4 15 12 5 20 5 4\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"19\",\n        \"y1\": \"5\",\n        \"x2\": \"19\",\n        \"y2\": \"19\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiSlack(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M14.5 10c-.83 0-1.5-.67-1.5-1.5v-5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5v5c0 .83-.67 1.5-1.5 1.5z\"\n      }\n    }, {\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M20.5 10H19V8.5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5-.67 1.5-1.5 1.5z\"\n      }\n    }, {\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M9.5 14c.83 0 1.5.67 1.5 1.5v5c0 .83-.67 1.5-1.5 1.5S8 21.33 8 20.5v-5c0-.83.67-1.5 1.5-1.5z\"\n      }\n    }, {\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M3.5 14H5v1.5c0 .83-.67 1.5-1.5 1.5S2 16.33 2 15.5 2.67 14 3.5 14z\"\n      }\n    }, {\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M14 14.5c0-.83.67-1.5 1.5-1.5h5c.83 0 1.5.67 1.5 1.5s-.67 1.5-1.5 1.5h-5c-.83 0-1.5-.67-1.5-1.5z\"\n      }\n    }, {\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M15.5 19H14v1.5c0 .83.67 1.5 1.5 1.5s1.5-.67 1.5-1.5-.67-1.5-1.5-1.5z\"\n      }\n    }, {\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M10 9.5C10 8.67 9.33 8 8.5 8h-5C2.67 8 2 8.67 2 9.5S2.67 11 3.5 11h5c.83 0 1.5-.67 1.5-1.5z\"\n      }\n    }, {\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M8.5 5H10V3.5C10 2.67 9.33 2 8.5 2S7 2.67 7 3.5 7.67 5 8.5 5z\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiSlash(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"circle\",\n      \"attr\": {\n        \"cx\": \"12\",\n        \"cy\": \"12\",\n        \"r\": \"10\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"4.93\",\n        \"y1\": \"4.93\",\n        \"x2\": \"19.07\",\n        \"y2\": \"19.07\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiSliders(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"4\",\n        \"y1\": \"21\",\n        \"x2\": \"4\",\n        \"y2\": \"14\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"4\",\n        \"y1\": \"10\",\n        \"x2\": \"4\",\n        \"y2\": \"3\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"12\",\n        \"y1\": \"21\",\n        \"x2\": \"12\",\n        \"y2\": \"12\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"12\",\n        \"y1\": \"8\",\n        \"x2\": \"12\",\n        \"y2\": \"3\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"20\",\n        \"y1\": \"21\",\n        \"x2\": \"20\",\n        \"y2\": \"16\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"20\",\n        \"y1\": \"12\",\n        \"x2\": \"20\",\n        \"y2\": \"3\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"1\",\n        \"y1\": \"14\",\n        \"x2\": \"7\",\n        \"y2\": \"14\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"9\",\n        \"y1\": \"8\",\n        \"x2\": \"15\",\n        \"y2\": \"8\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"17\",\n        \"y1\": \"16\",\n        \"x2\": \"23\",\n        \"y2\": \"16\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiSmartphone(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"rect\",\n      \"attr\": {\n        \"x\": \"5\",\n        \"y\": \"2\",\n        \"width\": \"14\",\n        \"height\": \"20\",\n        \"rx\": \"2\",\n        \"ry\": \"2\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"12\",\n        \"y1\": \"18\",\n        \"x2\": \"12\",\n        \"y2\": \"18\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiSmile(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"circle\",\n      \"attr\": {\n        \"cx\": \"12\",\n        \"cy\": \"12\",\n        \"r\": \"10\"\n      }\n    }, {\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M8 14s1.5 2 4 2 4-2 4-2\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"9\",\n        \"y1\": \"9\",\n        \"x2\": \"9.01\",\n        \"y2\": \"9\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"15\",\n        \"y1\": \"9\",\n        \"x2\": \"15.01\",\n        \"y2\": \"9\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiSpeaker(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"rect\",\n      \"attr\": {\n        \"x\": \"4\",\n        \"y\": \"2\",\n        \"width\": \"16\",\n        \"height\": \"20\",\n        \"rx\": \"2\",\n        \"ry\": \"2\"\n      }\n    }, {\n      \"tag\": \"circle\",\n      \"attr\": {\n        \"cx\": \"12\",\n        \"cy\": \"14\",\n        \"r\": \"4\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"12\",\n        \"y1\": \"6\",\n        \"x2\": \"12\",\n        \"y2\": \"6\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiSquare(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"rect\",\n      \"attr\": {\n        \"x\": \"3\",\n        \"y\": \"3\",\n        \"width\": \"18\",\n        \"height\": \"18\",\n        \"rx\": \"2\",\n        \"ry\": \"2\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiStar(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"polygon\",\n      \"attr\": {\n        \"points\": \"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiStopCircle(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"circle\",\n      \"attr\": {\n        \"cx\": \"12\",\n        \"cy\": \"12\",\n        \"r\": \"10\"\n      }\n    }, {\n      \"tag\": \"rect\",\n      \"attr\": {\n        \"x\": \"9\",\n        \"y\": \"9\",\n        \"width\": \"6\",\n        \"height\": \"6\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiSun(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"circle\",\n      \"attr\": {\n        \"cx\": \"12\",\n        \"cy\": \"12\",\n        \"r\": \"5\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"12\",\n        \"y1\": \"1\",\n        \"x2\": \"12\",\n        \"y2\": \"3\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"12\",\n        \"y1\": \"21\",\n        \"x2\": \"12\",\n        \"y2\": \"23\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"4.22\",\n        \"y1\": \"4.22\",\n        \"x2\": \"5.64\",\n        \"y2\": \"5.64\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"18.36\",\n        \"y1\": \"18.36\",\n        \"x2\": \"19.78\",\n        \"y2\": \"19.78\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"1\",\n        \"y1\": \"12\",\n        \"x2\": \"3\",\n        \"y2\": \"12\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"21\",\n        \"y1\": \"12\",\n        \"x2\": \"23\",\n        \"y2\": \"12\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"4.22\",\n        \"y1\": \"19.78\",\n        \"x2\": \"5.64\",\n        \"y2\": \"18.36\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"18.36\",\n        \"y1\": \"5.64\",\n        \"x2\": \"19.78\",\n        \"y2\": \"4.22\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiSunrise(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M17 18a5 5 0 0 0-10 0\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"12\",\n        \"y1\": \"2\",\n        \"x2\": \"12\",\n        \"y2\": \"9\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"4.22\",\n        \"y1\": \"10.22\",\n        \"x2\": \"5.64\",\n        \"y2\": \"11.64\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"1\",\n        \"y1\": \"18\",\n        \"x2\": \"3\",\n        \"y2\": \"18\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"21\",\n        \"y1\": \"18\",\n        \"x2\": \"23\",\n        \"y2\": \"18\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"18.36\",\n        \"y1\": \"11.64\",\n        \"x2\": \"19.78\",\n        \"y2\": \"10.22\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"23\",\n        \"y1\": \"22\",\n        \"x2\": \"1\",\n        \"y2\": \"22\"\n      }\n    }, {\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"8 6 12 2 16 6\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiSunset(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M17 18a5 5 0 0 0-10 0\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"12\",\n        \"y1\": \"9\",\n        \"x2\": \"12\",\n        \"y2\": \"2\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"4.22\",\n        \"y1\": \"10.22\",\n        \"x2\": \"5.64\",\n        \"y2\": \"11.64\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"1\",\n        \"y1\": \"18\",\n        \"x2\": \"3\",\n        \"y2\": \"18\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"21\",\n        \"y1\": \"18\",\n        \"x2\": \"23\",\n        \"y2\": \"18\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"18.36\",\n        \"y1\": \"11.64\",\n        \"x2\": \"19.78\",\n        \"y2\": \"10.22\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"23\",\n        \"y1\": \"22\",\n        \"x2\": \"1\",\n        \"y2\": \"22\"\n      }\n    }, {\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"16 5 12 9 8 5\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiTablet(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"rect\",\n      \"attr\": {\n        \"x\": \"4\",\n        \"y\": \"2\",\n        \"width\": \"16\",\n        \"height\": \"20\",\n        \"rx\": \"2\",\n        \"ry\": \"2\",\n        \"transform\": \"rotate(180 12 12)\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"12\",\n        \"y1\": \"18\",\n        \"x2\": \"12\",\n        \"y2\": \"18\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiTag(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"7\",\n        \"y1\": \"7\",\n        \"x2\": \"7\",\n        \"y2\": \"7\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiTarget(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"circle\",\n      \"attr\": {\n        \"cx\": \"12\",\n        \"cy\": \"12\",\n        \"r\": \"10\"\n      }\n    }, {\n      \"tag\": \"circle\",\n      \"attr\": {\n        \"cx\": \"12\",\n        \"cy\": \"12\",\n        \"r\": \"6\"\n      }\n    }, {\n      \"tag\": \"circle\",\n      \"attr\": {\n        \"cx\": \"12\",\n        \"cy\": \"12\",\n        \"r\": \"2\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiTerminal(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"4 17 10 11 4 5\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"12\",\n        \"y1\": \"19\",\n        \"x2\": \"20\",\n        \"y2\": \"19\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiThermometer(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M14 14.76V3.5a2.5 2.5 0 0 0-5 0v11.26a4.5 4.5 0 1 0 5 0z\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiThumbsDown(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M10 15v4a3 3 0 0 0 3 3l4-9V2H5.72a2 2 0 0 0-2 1.7l-1.38 9a2 2 0 0 0 2 2.3zm7-13h2.67A2.31 2.31 0 0 1 22 4v7a2.31 2.31 0 0 1-2.33 2H17\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiThumbsUp(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M14 9V5a3 3 0 0 0-3-3l-4 9v11h11.28a2 2 0 0 0 2-1.7l1.38-9a2 2 0 0 0-2-2.3zM7 22H4a2 2 0 0 1-2-2v-7a2 2 0 0 1 2-2h3\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiToggleLeft(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"rect\",\n      \"attr\": {\n        \"x\": \"1\",\n        \"y\": \"5\",\n        \"width\": \"22\",\n        \"height\": \"14\",\n        \"rx\": \"7\",\n        \"ry\": \"7\"\n      }\n    }, {\n      \"tag\": \"circle\",\n      \"attr\": {\n        \"cx\": \"8\",\n        \"cy\": \"12\",\n        \"r\": \"3\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiToggleRight(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"rect\",\n      \"attr\": {\n        \"x\": \"1\",\n        \"y\": \"5\",\n        \"width\": \"22\",\n        \"height\": \"14\",\n        \"rx\": \"7\",\n        \"ry\": \"7\"\n      }\n    }, {\n      \"tag\": \"circle\",\n      \"attr\": {\n        \"cx\": \"16\",\n        \"cy\": \"12\",\n        \"r\": \"3\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiTrash2(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"3 6 5 6 21 6\"\n      }\n    }, {\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"10\",\n        \"y1\": \"11\",\n        \"x2\": \"10\",\n        \"y2\": \"17\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"14\",\n        \"y1\": \"11\",\n        \"x2\": \"14\",\n        \"y2\": \"17\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiTrash(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"3 6 5 6 21 6\"\n      }\n    }, {\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiTrello(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"rect\",\n      \"attr\": {\n        \"x\": \"3\",\n        \"y\": \"3\",\n        \"width\": \"18\",\n        \"height\": \"18\",\n        \"rx\": \"2\",\n        \"ry\": \"2\"\n      }\n    }, {\n      \"tag\": \"rect\",\n      \"attr\": {\n        \"x\": \"7\",\n        \"y\": \"7\",\n        \"width\": \"3\",\n        \"height\": \"9\"\n      }\n    }, {\n      \"tag\": \"rect\",\n      \"attr\": {\n        \"x\": \"14\",\n        \"y\": \"7\",\n        \"width\": \"3\",\n        \"height\": \"5\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiTrendingDown(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"23 18 13.5 8.5 8.5 13.5 1 6\"\n      }\n    }, {\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"17 18 23 18 23 12\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiTrendingUp(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"23 6 13.5 15.5 8.5 10.5 1 18\"\n      }\n    }, {\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"17 6 23 6 23 12\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiTriangle(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiTruck(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"rect\",\n      \"attr\": {\n        \"x\": \"1\",\n        \"y\": \"3\",\n        \"width\": \"15\",\n        \"height\": \"13\"\n      }\n    }, {\n      \"tag\": \"polygon\",\n      \"attr\": {\n        \"points\": \"16 8 20 8 23 11 23 16 16 16 16 8\"\n      }\n    }, {\n      \"tag\": \"circle\",\n      \"attr\": {\n        \"cx\": \"5.5\",\n        \"cy\": \"18.5\",\n        \"r\": \"2.5\"\n      }\n    }, {\n      \"tag\": \"circle\",\n      \"attr\": {\n        \"cx\": \"18.5\",\n        \"cy\": \"18.5\",\n        \"r\": \"2.5\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiTv(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"rect\",\n      \"attr\": {\n        \"x\": \"2\",\n        \"y\": \"7\",\n        \"width\": \"20\",\n        \"height\": \"15\",\n        \"rx\": \"2\",\n        \"ry\": \"2\"\n      }\n    }, {\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"17 2 12 7 7 2\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiTwitter(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M23 3a10.9 10.9 0 0 1-3.14 1.53 4.48 4.48 0 0 0-7.86 3v1A10.66 10.66 0 0 1 3 4s-4 9 5 13a11.64 11.64 0 0 1-7 2c9 5 20 0 20-11.5a4.5 4.5 0 0 0-.08-.83A7.72 7.72 0 0 0 23 3z\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiType(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"4 7 4 4 20 4 20 7\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"9\",\n        \"y1\": \"20\",\n        \"x2\": \"15\",\n        \"y2\": \"20\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"12\",\n        \"y1\": \"4\",\n        \"x2\": \"12\",\n        \"y2\": \"20\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiUmbrella(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M23 12a11.05 11.05 0 0 0-22 0zm-5 7a3 3 0 0 1-6 0v-7\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiUnderline(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M6 3v7a6 6 0 0 0 6 6 6 6 0 0 0 6-6V3\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"4\",\n        \"y1\": \"21\",\n        \"x2\": \"20\",\n        \"y2\": \"21\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiUnlock(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"rect\",\n      \"attr\": {\n        \"x\": \"3\",\n        \"y\": \"11\",\n        \"width\": \"18\",\n        \"height\": \"11\",\n        \"rx\": \"2\",\n        \"ry\": \"2\"\n      }\n    }, {\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M7 11V7a5 5 0 0 1 9.9-1\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiUploadCloud(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"16 16 12 12 8 16\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"12\",\n        \"y1\": \"12\",\n        \"x2\": \"12\",\n        \"y2\": \"21\"\n      }\n    }, {\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M20.39 18.39A5 5 0 0 0 18 9h-1.26A8 8 0 1 0 3 16.3\"\n      }\n    }, {\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"16 16 12 12 8 16\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiUpload(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"\n      }\n    }, {\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"17 8 12 3 7 8\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"12\",\n        \"y1\": \"3\",\n        \"x2\": \"12\",\n        \"y2\": \"15\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiUserCheck(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M16 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\"\n      }\n    }, {\n      \"tag\": \"circle\",\n      \"attr\": {\n        \"cx\": \"8.5\",\n        \"cy\": \"7\",\n        \"r\": \"4\"\n      }\n    }, {\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"17 11 19 13 23 9\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiUserMinus(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M16 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\"\n      }\n    }, {\n      \"tag\": \"circle\",\n      \"attr\": {\n        \"cx\": \"8.5\",\n        \"cy\": \"7\",\n        \"r\": \"4\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"23\",\n        \"y1\": \"11\",\n        \"x2\": \"17\",\n        \"y2\": \"11\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiUserPlus(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M16 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\"\n      }\n    }, {\n      \"tag\": \"circle\",\n      \"attr\": {\n        \"cx\": \"8.5\",\n        \"cy\": \"7\",\n        \"r\": \"4\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"20\",\n        \"y1\": \"8\",\n        \"x2\": \"20\",\n        \"y2\": \"14\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"23\",\n        \"y1\": \"11\",\n        \"x2\": \"17\",\n        \"y2\": \"11\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiUserX(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M16 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\"\n      }\n    }, {\n      \"tag\": \"circle\",\n      \"attr\": {\n        \"cx\": \"8.5\",\n        \"cy\": \"7\",\n        \"r\": \"4\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"18\",\n        \"y1\": \"8\",\n        \"x2\": \"23\",\n        \"y2\": \"13\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"23\",\n        \"y1\": \"8\",\n        \"x2\": \"18\",\n        \"y2\": \"13\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiUser(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2\"\n      }\n    }, {\n      \"tag\": \"circle\",\n      \"attr\": {\n        \"cx\": \"12\",\n        \"cy\": \"7\",\n        \"r\": \"4\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiUsers(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\"\n      }\n    }, {\n      \"tag\": \"circle\",\n      \"attr\": {\n        \"cx\": \"9\",\n        \"cy\": \"7\",\n        \"r\": \"4\"\n      }\n    }, {\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M23 21v-2a4 4 0 0 0-3-3.87\"\n      }\n    }, {\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M16 3.13a4 4 0 0 1 0 7.75\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiVideoOff(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M16 16v1a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V7a2 2 0 0 1 2-2h2m5.66 0H14a2 2 0 0 1 2 2v3.34l1 1L23 7v10\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"1\",\n        \"y1\": \"1\",\n        \"x2\": \"23\",\n        \"y2\": \"23\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiVideo(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"polygon\",\n      \"attr\": {\n        \"points\": \"23 7 16 12 23 17 23 7\"\n      }\n    }, {\n      \"tag\": \"rect\",\n      \"attr\": {\n        \"x\": \"1\",\n        \"y\": \"5\",\n        \"width\": \"15\",\n        \"height\": \"14\",\n        \"rx\": \"2\",\n        \"ry\": \"2\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiVoicemail(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"circle\",\n      \"attr\": {\n        \"cx\": \"5.5\",\n        \"cy\": \"11.5\",\n        \"r\": \"4.5\"\n      }\n    }, {\n      \"tag\": \"circle\",\n      \"attr\": {\n        \"cx\": \"18.5\",\n        \"cy\": \"11.5\",\n        \"r\": \"4.5\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"5.5\",\n        \"y1\": \"16\",\n        \"x2\": \"18.5\",\n        \"y2\": \"16\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiVolume1(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"polygon\",\n      \"attr\": {\n        \"points\": \"11 5 6 9 2 9 2 15 6 15 11 19 11 5\"\n      }\n    }, {\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M15.54 8.46a5 5 0 0 1 0 7.07\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiVolume2(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"polygon\",\n      \"attr\": {\n        \"points\": \"11 5 6 9 2 9 2 15 6 15 11 19 11 5\"\n      }\n    }, {\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M19.07 4.93a10 10 0 0 1 0 14.14M15.54 8.46a5 5 0 0 1 0 7.07\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiVolumeX(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"polygon\",\n      \"attr\": {\n        \"points\": \"11 5 6 9 2 9 2 15 6 15 11 19 11 5\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"23\",\n        \"y1\": \"9\",\n        \"x2\": \"17\",\n        \"y2\": \"15\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"17\",\n        \"y1\": \"9\",\n        \"x2\": \"23\",\n        \"y2\": \"15\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiVolume(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"polygon\",\n      \"attr\": {\n        \"points\": \"11 5 6 9 2 9 2 15 6 15 11 19 11 5\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiWatch(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"circle\",\n      \"attr\": {\n        \"cx\": \"12\",\n        \"cy\": \"12\",\n        \"r\": \"7\"\n      }\n    }, {\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"12 9 12 12 13.5 13.5\"\n      }\n    }, {\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M16.51 17.35l-.35 3.83a2 2 0 0 1-2 1.82H9.83a2 2 0 0 1-2-1.82l-.35-3.83m.01-10.7l.35-3.83A2 2 0 0 1 9.83 1h4.35a2 2 0 0 1 2 1.82l.35 3.83\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiWifiOff(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"1\",\n        \"y1\": \"1\",\n        \"x2\": \"23\",\n        \"y2\": \"23\"\n      }\n    }, {\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M16.72 11.06A10.94 10.94 0 0 1 19 12.55\"\n      }\n    }, {\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M5 12.55a10.94 10.94 0 0 1 5.17-2.39\"\n      }\n    }, {\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M10.71 5.05A16 16 0 0 1 22.58 9\"\n      }\n    }, {\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M1.42 9a15.91 15.91 0 0 1 4.7-2.88\"\n      }\n    }, {\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M8.53 16.11a6 6 0 0 1 6.95 0\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"12\",\n        \"y1\": \"20\",\n        \"x2\": \"12\",\n        \"y2\": \"20\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiWifi(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M5 12.55a11 11 0 0 1 14.08 0\"\n      }\n    }, {\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M1.42 9a16 16 0 0 1 21.16 0\"\n      }\n    }, {\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M8.53 16.11a6 6 0 0 1 6.95 0\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"12\",\n        \"y1\": \"20\",\n        \"x2\": \"12\",\n        \"y2\": \"20\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiWind(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M9.59 4.59A2 2 0 1 1 11 8H2m10.59 11.41A2 2 0 1 0 14 16H2m15.73-8.27A2.5 2.5 0 1 1 19.5 12H2\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiXCircle(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"circle\",\n      \"attr\": {\n        \"cx\": \"12\",\n        \"cy\": \"12\",\n        \"r\": \"10\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"15\",\n        \"y1\": \"9\",\n        \"x2\": \"9\",\n        \"y2\": \"15\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"9\",\n        \"y1\": \"9\",\n        \"x2\": \"15\",\n        \"y2\": \"15\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiXOctagon(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"polygon\",\n      \"attr\": {\n        \"points\": \"7.86 2 16.14 2 22 7.86 22 16.14 16.14 22 7.86 22 2 16.14 2 7.86 7.86 2\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"15\",\n        \"y1\": \"9\",\n        \"x2\": \"9\",\n        \"y2\": \"15\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"9\",\n        \"y1\": \"9\",\n        \"x2\": \"15\",\n        \"y2\": \"15\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiXSquare(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"rect\",\n      \"attr\": {\n        \"x\": \"3\",\n        \"y\": \"3\",\n        \"width\": \"18\",\n        \"height\": \"18\",\n        \"rx\": \"2\",\n        \"ry\": \"2\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"9\",\n        \"y1\": \"9\",\n        \"x2\": \"15\",\n        \"y2\": \"15\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"15\",\n        \"y1\": \"9\",\n        \"x2\": \"9\",\n        \"y2\": \"15\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiX(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"18\",\n        \"y1\": \"6\",\n        \"x2\": \"6\",\n        \"y2\": \"18\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"6\",\n        \"y1\": \"6\",\n        \"x2\": \"18\",\n        \"y2\": \"18\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiYoutube(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"path\",\n      \"attr\": {\n        \"d\": \"M22.54 6.42a2.78 2.78 0 0 0-1.94-2C18.88 4 12 4 12 4s-6.88 0-8.6.46a2.78 2.78 0 0 0-1.94 2A29 29 0 0 0 1 11.75a29 29 0 0 0 .46 5.33A2.78 2.78 0 0 0 3.4 19c1.72.46 8.6.46 8.6.46s6.88 0 8.6-.46a2.78 2.78 0 0 0 1.94-2 29 29 0 0 0 .46-5.25 29 29 0 0 0-.46-5.33z\"\n      }\n    }, {\n      \"tag\": \"polygon\",\n      \"attr\": {\n        \"points\": \"9.75 15.02 15.5 11.75 9.75 8.48 9.75 15.02\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiZapOff(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"12.41 6.75 13 2 10.57 4.92\"\n      }\n    }, {\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"18.57 12.91 21 10 15.66 10\"\n      }\n    }, {\n      \"tag\": \"polyline\",\n      \"attr\": {\n        \"points\": \"8 8 3 14 12 14 11 22 16 16\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"1\",\n        \"y1\": \"1\",\n        \"x2\": \"23\",\n        \"y2\": \"23\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiZap(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"polygon\",\n      \"attr\": {\n        \"points\": \"13 2 3 14 12 14 11 22 21 10 12 10 13 2\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiZoomIn(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"circle\",\n      \"attr\": {\n        \"cx\": \"11\",\n        \"cy\": \"11\",\n        \"r\": \"8\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"21\",\n        \"y1\": \"21\",\n        \"x2\": \"16.65\",\n        \"y2\": \"16.65\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"11\",\n        \"y1\": \"8\",\n        \"x2\": \"11\",\n        \"y2\": \"14\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"8\",\n        \"y1\": \"11\",\n        \"x2\": \"14\",\n        \"y2\": \"11\"\n      }\n    }]\n  })(props);\n}\n;\nexport function FiZoomOut(props) {\n  return GenIcon({\n    \"tag\": \"svg\",\n    \"attr\": {\n      \"viewBox\": \"0 0 24 24\",\n      \"fill\": \"none\",\n      \"stroke\": \"currentColor\",\n      \"strokeWidth\": \"2\",\n      \"strokeLinecap\": \"round\",\n      \"strokeLinejoin\": \"round\"\n    },\n    \"child\": [{\n      \"tag\": \"circle\",\n      \"attr\": {\n        \"cx\": \"11\",\n        \"cy\": \"11\",\n        \"r\": \"8\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"21\",\n        \"y1\": \"21\",\n        \"x2\": \"16.65\",\n        \"y2\": \"16.65\"\n      }\n    }, {\n      \"tag\": \"line\",\n      \"attr\": {\n        \"x1\": \"8\",\n        \"y1\": \"11\",\n        \"x2\": \"14\",\n        \"y2\": \"11\"\n      }\n    }]\n  })(props);\n}\n;"],"sourceRoot":""}