{"version":3,"file":"errorAnalysis.19ae4640.mjs","sources":["../../../../pages/practice/errorAnalysis.vue"],"sourcesContent":["<template>\n  <NuxtLayout>\n    <div class=\"exam_page\">\n      <div class=\"exam_header\">\n        <div class=\"header_flex\">\n          <div class=\"exit_exam\" @click=\"close\">退出查看</div>\n          <div class=\"exam_title\">{{ map.operateType === 1 ? '查看错题答案' : '查看收藏试题答案' }}</div>\n          <div class=\"exam_time_box\"></div>\n        </div>\n      </div>\n      <div class=\"exam_paper_box\" ref=\"box\">\n        <div class=\"exam_user_paper\" v-if=\"userInfo\">\n          <div class=\"exam_user_item\">\n            <div class=\"exam_user_top\">\n              <el-avatar :size=\"40\" :src=\"userInfo.headImg\"></el-avatar>\n            </div>\n            <div class=\"exam_user_bottom\">{{ userInfo.nickname }}</div>\n          </div>\n        </div>\n        <div class=\"exam_center\" v-if=\"map.problemList.length\" v-loading=\"ctrl.loading\">\n          <div class=\"left\">\n            <div class=\"question_box\" v-for=\"(p, index) in map.problemList\" :key=\"index\" :id=\"index\">\n              <problem-item\n                :problem=\"p\"\n                :index=\"index\"\n                :is-analysis=\"true\"\n                :has-delete-and-collect=\"map.operateType === 1\"\n              ></problem-item>\n              <div class=\"collect_item\" @click=\"handleCollect(p)\" v-if=\"map.operateType === 1\">\n                <img\n                  v-if=\"!p.collectionType\"\n                  class=\"pointer\"\n                  src=\"@/assets/images/exam/icon_collection1.svg\"\n                  alt=\"\"\n                />\n                <img\n                  v-else\n                  class=\"pointer\"\n                  src=\"@/assets/images/exam/icon_collection2.svg\"\n                  alt=\"\"\n                />\n                <span class=\"pointer\" :class=\"{active_collect:p.collectionType}\">收藏</span>\n              </div>\n              <div class=\"delete_item\" @click=\"handleDelete(p, index)\">\n                <el-icon><delete /></el-icon>\n                <span>移除</span>\n              </div>\n              <div class=\"analysis\">\n                <div class=\"mgb20\" :class=\"{'inline-b mgr30': p.questionType < 4}\">\n                  <div class=\"analysis_item\" v-if=\"p.questionType === 5\">\n                    <span class=\"left_text\">正确答案：</span>\n                    <div v-html=\"p.questionAnswer || ''\"></div>\n                  </div>\n                  <div class=\"analysis_item\" v-else>\n                    <span class=\"left_text\">正确答案：</span>\n                    <span :class=\"{'blue_text': p.questionType < 4}\">{{getNum(p.questionAnswer,p.optionList,p.questionType)}}</span>\n                  </div>\n                </div>\n                <div class=\"mgb20\" :class=\"{'inline-b': p.questionType < 4}\">\n                  <div class=\"analysis_item\" v-if=\"p.questionType < 5\">\n                    您的答案：<span class=\"question_my\" :class=\"{'red_text': p.questionType < 4}\">{{getNumAnswer(p.userAnswer,p.optionList,p.questionType)}}</span>\n                  </div>\n                  <div class=\"analysis_item\" v-else>您的答案：<span class=\"question_my\">{{p.userAnswer || ''}}</span></div>\n                </div>\n                <div class=\"analysis_item\">\n                  <span class=\"left_text\">答案解析：</span>\n                  <div v-html=\"p.questionAnalysis || '无'\"></div>\n                </div>\n              </div>\n            </div>\n          </div>\n        </div>\n        <div class=\"exam_right\">\n          <div class=\"exam_right_title\">答题卡</div>\n          <div class=\"problem\">\n            <div class=\"problem_exam_box mgb20\">\n              <div class=\"problem_exam_box_item true\">答对</div>\n              <div class=\"problem_exam_box_item wrong\">答错</div>\n              <div class=\"problem_exam_box_item\">未答</div>\n              <div class=\"problem_exam_box_item collect\" v-if=\"map.operateType === 1\">收藏</div>\n            </div>\n            <div class=\"card_box\">\n              <span\n                v-for=\"(p, idx) in map.problemList\"\n                :key=\"idx\"\n                :class=\"[\n                  'problem_num',\n                  map.operateType === 1 && p.collectionType?'collect_num':'',\n                  getProblemAnswerStatus(p) === 1 ? 'active_num' : '',\n                  getProblemAnswerStatus(p) === 2 ? 'wrong_num' : ''\n                ]\"\n                @click=\"jumpProblem(idx)\"\n              >{{ idx + 1 }}</span\n              >\n          </div>\n          </div>\n        </div>\n      </div>\n    </div>\n  </NuxtLayout>\n</template>\n\n<script setup>\nimport { useUserStore } from '@/stores/user'\nimport { ElMessage } from 'element-plus'\nimport { watch, reactive, computed, onMounted } from 'vue'\nimport { errorQuestionUserAnswerInfo, userOperateQuestion } from '@/api/paper'\nimport ProblemItem from \"./errorProblem.vue\";\nimport {\n  Delete\n} from \"@element-plus/icons-vue\";\nimport cookie from \"@/utils/cookies\";\nlet cookieData = cookie.getShop()\nuseHead({\n  title:'查看答案-' + cookieData.shopName\n})\nconst store = useUserStore()\nconst userInfo = computed(() => store.userView)\nconst { getEnumList } = store\nconst route = useRoute()\nconst map = reactive({\n  questionType: '', //0:全部、1:单选题、2:多选题、3:判断题、4:填空题、5:简答题\n  questionCategoryId: '',\n  sourceType: '', //1:课程中心、2:考试中心、3：班级中心\n  operateType: '', //1：错题、2：收藏\n  letter: 'ABCDEFGHIJkLMNOPQRSTUVWXYZ'.split(''),\n  problemList: []\n})\nconst opts = reactive({\n  questionTypeEnums: []\n})\nconst ctrl = reactive({\n  loading: false\n})\nconst router = useRouter()\nconst getProblemAnswerStatus = (p) => {\n  if(!p.userAnswer) {\n    return ''\n  } else {\n    if (p.questionType === 1) {\n      if (p.correctAnswer && p.correctAnswer.length > 0) {\n        if (p.userAnswer.indexOf(p.correctAnswer) > -1) {\n          return 1 //（用来标记答题卡的答对答错状态）：1答对，2答错\n        } else {\n          return 2\n        }\n      }\n    } else if (p.questionType === 2) {\n      if (p.correctAnswer.length > 0) {\n        const arr = []\n        p.correctAnswer.forEach(i => {\n          if (p.userAnswer.indexOf(i) > -1) {\n            arr.push(i)\n          }\n        })\n        // 多选判断所选答案个数是否与正确答案个数一样（考虑正确答案全选同时也选了其他错误答案的情况）\n        if (arr.length === p.correctAnswer.length && p.correctAnswer.length === p.userAnswer.split('|')\n          .length) {\n            return 1\n        } else {\n          return 2\n        }\n      }\n    } else if (p.questionType === 3) {\n      if (p.userAnswer === p.questionAnswer) {\n        return 1\n      } else {\n        return 2\n      }\n    } else if(p.questionType === 4 || p.questionType === 5) {\n      return 1\n    }\n  }\n}\nconst getNumAnswer = (val,list,type) => {\n  if(!val) {\n    return ''\n  }\n  if(type === 5) {\n    return true\n  } else if(type === 4){\n    const arr = val.split('|')\n    return  arr.join('；')\n  }\n  if(list) {\n    if(type === 1) {\n      let num = null\n      list.forEach((el, i) => {\n        if (el.id === val && num === null) {\n          num = i\n        }\n      })\n      return map.letter[num]\n    }else if(type === 2){\n      let num = []\n      list.forEach((el, i) => {\n        if (val.indexOf(el.id) > -1 && num.indexOf(el.id) === -1) {\n          num.push(map.letter[i])\n        }\n      })\n      return  num.join(',')\n    }else if(type === 3){\n      return val\n    }\n  }else{\n    return val\n  }\n}\nconst getNum = (val,list,type) => {\n  if(type === 5) {\n    return true\n  } else if(type === 4){\n    const arr = val.split('|')\n    return  arr.join('；')\n  }\n  if(list) {\n    if(type === 1) {\n      let num = null\n      list.forEach((el, i) => {\n        if (el.optionContent === val && num === null) {\n          num = i\n        }\n      })\n      return map.letter[num]\n    }else if(type === 2){\n      let num = []\n      list.forEach((el, i) => {\n        if (val.indexOf(el.optionContent) > -1 && num.indexOf(el.optionContent) === -1) {\n          num.push(map.letter[i])\n        }\n      })\n      return  num.join(',')\n    }else if(type === 3){\n      return val\n    }\n  }else{\n    return val\n  }\n}\nonMounted(() => {\n  map.questionType = +route.query.questionType\n  map.questionCategoryId = route.query.questionCategoryId,\n  map.sourceType = +route.query.sourceType\n  map.operateType = +route.query.operateType\n  ctrl.loading = true\n  getEnumList('QuestionTypeEnum', 'obj').then((res) => {\n    opts.questionTypeEnums = res\n  })\n  errorQuestionUserAnswerInfo({\n    operateType: map.operateType,\n    questionCategoryId: map.questionCategoryId,\n    questionType: map.questionType,\n    sourceType: map.sourceType\n  }).then((res) => {\n    if(res && res.length > 0) {\n      map.problemList = res\n      map.problemList.forEach((p,index) => {\n        p.userAnswer = p.userAnswer || ''\n        if (p.questionType < 3) {\n          p.optionList.forEach(o => {\n            o.oStatus = 3 //默认状态\n            if (p.correctAnswer.indexOf(o.id) > -1) {\n              o.oStatus = 1 // 答对状态\n            } else {\n              if (p.userAnswer && p.userAnswer.indexOf(o.id) > -1) {\n                o.oStatus = 2 // 答错状态\n              }\n            }\n          })\n        }\n        if (p.questionType === 3) {\n          p.optionList = []\n          p.optionList.push(\n            {\n              id: '对',\n              optionContent: '对',\n            },\n            {\n              id: '错',\n              optionContent: '错',\n            }\n          )\n          p.optionList.forEach((o) => {\n            o.oStatus = 3\n            if(p.userAnswer) {\n              if(o.optionContent == p.questionAnswer) {\n                o.oStatus = 1\n              } else {\n                if(o.optionContent == p.userAnswer) {\n                  o.oStatus = 2\n                }\n              }\n            } else {\n              if(o.optionContent == p.questionAnswer) {\n                o.oStatus = 1\n              }\n            }\n          })\n        }\n      })\n    }\n    ctrl.loading = false\n  }).catch(() => {\n    close()\n  })\n})\nconst jumpProblem = (index) => {\n  document.getElementById(index).scrollIntoView()\n}\nconst handleCollect = (p) => {\n  if (!p.collectionType) {\n    userOperateQuestion({\n      errorQuestionAnswer: p.userAnswer || '',\n      handleType: false, //类型(默认为收藏可不传)：true:移除试题，false：收藏试题\n      operateType: 2, //1：错题、2：收藏\n      questionId: p.id,\n      sourceId: p.sourceId,\n      sourceType: p.sourceType //1:课程中心、2:考试中心、3：班级中心\n    }).then(res => {\n      ElMessage.success(res)\n      p.collectionType = true\n    })\n  } else {\n    userOperateQuestion({\n      handleType: true, //类型(默认为收藏可不传)：true:移除试题，false：收藏试题\n      operateType: 2, //1：错题、2：收藏\n      questionId: p.id,\n      sourceType: p.sourceType //1:课程中心、2:考试中心、3：班级中心\n    }).then(res => {\n      ElMessage.success(res)\n      p.collectionType = false\n    })\n  }\n}\nconst handleDelete = (p, index) => {\n  userOperateQuestion({\n    handleType: true, //类型(默认为收藏可不传)：true:移除试题，false：收藏试题\n    operateType: map.operateType, //1：错题、2：收藏\n    questionId: p.id,\n    sourceType: p.sourceType //1:课程中心、2:考试中心、3：班级中心\n  }).then(res => {\n    if(res) {\n      ElMessage.success(res)\n      map.problemList.splice(index, 1)\n    }\n  })\n}\nconst close = () => {\n  const d = {\n    questionCategoryId: map.questionCategoryId,\n    sourceType: map.sourceType,\n    type: '2'\n  }\n  let url = '/account/paper'\n  if(map.operateType === 2) {\n    url = '/account/collect'\n    d.type = '3'\n  }\n  router.replace({\n    path: url,\n    query: d\n  })\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.exam_page {\n  position: fixed;\n  width: 100vw;\n  height: 100vh;\n  left: 0;\n  top: 0;\n  background: #f6f8fb;\n  z-index: 1001;\n}\n.close_exam {\n  position: absolute;\n  right: 30px;\n  top: 30px;\n}\n.exam_center {\n  width: 1058px;\n  margin-left: 146px;\n  .left {\n    position: relative;\n    background: #ffffff;\n    .question_box{\n      position: relative;\n      border-bottom: 1px solid #EBEEF5;\n      padding: 20px 33px 20px 30px;\n    }\n    .collect_item{\n      position: absolute;\n      right: 96px;\n      top: 20px;\n      height: 24px;\n      display: flex;\n      align-items: center;\n      column-gap: 3px;\n      color: #999;\n      cursor: pointer;\n    }\n    .delete_item {\n      position: absolute;\n      right: 40px;\n      top: 20px;\n      height: 24px;\n      display: flex;\n      align-items: center;\n      column-gap: 4px;\n      color: #999;\n      cursor: pointer;\n    }\n  }\n  .right {\n    position: relative;\n    flex: 1;\n    background: #ffffff;\n    border-radius: 10px;\n    padding: 30px 0;\n    padding-bottom: 0;\n    .problem {\n      height: calc(100% - 60px);\n      overflow-y: auto;\n    }\n    .title_type {\n      padding: 0 30px;\n      margin-bottom: 10px;\n      font-size: 16px;\n      overflow: hidden;\n      white-space: nowrap;\n      text-overflow: ellipsis;\n      cursor: default;\n    }\n    .card_box {\n      padding: 0 30px;\n      .problem_num {\n        display: inline-block;\n        margin-right: 12px;\n        margin-bottom: 12px;\n        width: 40px;\n        height: 40px;\n        color: #999999;\n        border: 1px solid #ebeef5;\n        text-align: center;\n        line-height: 40px;\n        border-radius: 4px;\n        cursor: pointer;\n      }\n      .active_num {\n        border: 1px solid rgba(246, 24, 24, 0.1);\n        background: rgba(246, 24, 24, 0.1);\n        color: #f61818;\n      }\n      .now_num {\n        border: 1px solid rgba(34, 86, 246, 0.1);\n        background: rgba(34, 86, 246, 0.1);\n        color: #2256f6;\n      }\n    }\n  }\n}\n.exam_header{\n  width: 100%;\n  height: 54px;\n  background: #fff;\n  border-bottom: 1px solid #ebeef5;\n  .header_flex {\n    width: 1480px;\n    height: 100%;\n    margin: auto;\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n  }\n  .exit_exam{\n    font-style: normal;\n    font-weight: 400;\n    font-size: 14px;\n    color: #333333;\n    cursor: pointer;\n  }\n  .exam_title{\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    font-style: normal;\n    font-weight: 400;\n    font-size: 18px;\n    color: #333333;\n  }\n  .exam_time_box{\n    font-style: normal;\n    font-weight: 400;\n    font-size: 14px;\n    display: flex;\n    align-items: center;\n  }\n  .el-button{\n    width: 100px;\n    height: 32px;\n    border-radius: 4px;\n    margin-left: 24px;\n  }\n  .exam_time{\n    font-style: normal;\n    font-weight: 400;\n    font-size: 20px;\n    color: #F23C3C;\n  }\n}\n.exam_paper_box{\n  width: calc(100%);\n  max-width: 1480px;\n  padding-top: 16px;\n  max-height: 90vh;\n  overflow: auto;\n  margin: auto;\n  &::-webkit-scrollbar{\n    display: none;\n  }\n}\n.exam_right{\n  width: 260px;\n  background-color: #FFFFFF;\n  position: fixed;\n  top: 72px;\n  right: calc(50% - 740px);\n  .problem .card_box {\n    .problem_num {\n      display: inline-block;\n      margin-right: 12px;\n      margin-bottom: 12px;\n      width: 28px;\n      height: 28px;\n      color: #333333;\n      border: 1px solid #D9D9D9;\n      text-align: center;\n      line-height: 28px;\n      border-radius: 2px;\n      font-style: normal;\n      font-weight: 400;\n      font-size: 14px;\n      cursor: pointer;\n      &:nth-child(6n) {\n        margin-right: 0;\n      }\n    }\n    .collect_num{\n      position: relative;\n      &:after{\n        content: '';\n        width: 0;\n        height: 0;\n        border-top: 10px solid #FAC923;\n        border-right: 10px solid transparent;\n        position: absolute;\n        left: -1px;\n        top: -1px;\n      }\n    }\n    .active_num {\n      border: 1px solid rgba(61, 127, 255, 0.4);\n      background: rgba(61, 127, 255, 0.1);\n      color: #3D7FFF;\n    }\n    .now_num {\n      border: 1px solid #3D7FFF;\n      background: #3D7FFF;\n      color: #FFFFFF;\n    }\n    .wrong_num {\n      border: 1px solid rgba(242, 60, 60, 0.4);\n      background: rgba(242, 60, 60, 0.1);\n      color: #F23C3C;\n    }\n    .error_num{\n      background: rgba(242, 60, 60, 0.1);\n      border: 1px solid rgba(242, 60, 60, 0.4);\n      border-radius: 2px;\n      color: #F23C3C;\n    }\n  }\n  .exam_right_title{\n    margin-top: 21px;\n    height: 54px;\n    width: 100%;\n    padding:18px 27px;\n    border-bottom:1px solid #EBEEF5;\n  }\n  .problem{\n    padding: 20px 16px;\n    max-height: calc(100vh - 172px);\n    overflow: auto;\n    padding-right: 11px;\n  }\n  .problem_exam_box{\n    width: 100%;\n    display: flex;\n    align-items: center;\n    column-gap: 12px;\n\n  }\n  .problem_exam_box_item{\n    font-style: normal;\n    font-weight: 400;\n    font-size: 12px;\n    color: #333333;\n    padding-left: 23px;\n    position: relative;\n    display: flex;\n    align-items: center;\n  }\n  .problem_exam_box_item:before{\n    content: '';\n    width: 16px;\n    height: 16px;\n    background: #FFFFFF;\n    border: 1px solid #D9D9D9;\n    border-radius: 1.6px;\n    left: 0;\n    position: absolute;\n  }\n  .problem_exam_box_item.true:before{\n    background: rgba(61, 127, 255, 0.1);\n    border-radius: 1.6px;\n    width: 16px;\n    height: 16px;\n    border: 1px solid rgba(61, 127, 255, 0.4);\n  }\n  .problem_exam_box_item.wrong:before{\n    background: rgba(242, 60, 60, 0.1);\n    border-radius: 1.6px;\n    width: 16px;\n    height: 16px;\n    border: 1px solid rgba(242, 60, 60, 0.4);\n  }\n  .problem_exam_box_item.collect:after{\n    content: '';\n    width: 0;\n    height: 0;\n    border-top: 10px solid #FAC923;\n    border-right: 10px solid transparent;\n    position: absolute;\n    left: 0;\n    top: 1px;\n  }\n  .title_type{\n    font-style: normal;\n    font-weight: 400;\n    font-size: 13px;\n    color: #333333;\n\n    margin-bottom: 14px;\n  }\n}\n.exam_user_paper{\n  background-color: #FFFFFF;\n  width: 130px;\n  position: fixed;\n  left: calc(50% - 740px);\n  top: 72px;\n  .exam_user_item{\n    width: 100%;\n    height: calc(100% / 3);\n    padding: 16px 9px;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    flex-direction: column;\n    .exam_user_top{\n      font-style: normal;\n      font-weight: 400;\n      font-size: 14px;\n    }\n  }\n  .exam_user_bottom{\n    font-style: normal;\n    font-weight: 400;\n    font-size: 16px;\n    color: #333333;\n    margin-top: 6px;\n  }\n}\n.analysis {\n  width: calc(100%);\n  padding: 20px 26px;\n  margin-top: 20px;\n  margin-bottom: 10px;\n  background: rgba(51, 51, 51, 0.05);\n  z-index: 11;\n  font-style: normal;\n  font-weight: 400;\n  font-size: 14px;\n  color: #666666;\n  position: relative;\n  .icon_success,.icon_danger{\n    display: none;\n    position: absolute;\n    width: 20px;\n    height: 20px;\n    left: 0;\n    top: 0;\n  }\n  .analysis_item+.analysis_item{\n    margin-top: 15px;\n  }\n  .analysis_item{\n    display: flex;\n    align-items: top;\n    .left_text {\n      min-width: 72px;\n    }\n  }\n  &.success{\n    background: rgba(61, 127, 255, 0.05);\n  }\n  &.success .question_my,&.success .icon_success{\n    color: #3D7FFF;\n    display: block;\n  }\n  &.error{\n    background: rgba(242, 60, 60, 0.03);\n  }\n  &.error .question_my,&.error .icon_danger{\n    color: #F23C3C;\n    display: block;\n  }\n}\n.inline-b {\n  display: inline-block;\n}\n.blue_text {\n  color: #3D7FFF;\n}\n.red_text {\n  color: #F23C3C;\n}\n</style>\n"],"names":["cookieData","cookie","getShop","useHead","title","shopName","store","useUserStore","userInfo","computed","userView","getEnumList","route","useRoute","map","reactive","questionType","questionCategoryId","sourceType","operateType","letter","split","problemList","opts","questionTypeEnums","ctrl","loading","router","useRouter","getProblemAnswerStatus","p","userAnswer","correctAnswer","length","indexOf","arr","forEach","i","push","questionAnswer","getNumAnswer","val","list","type","join","num","el","id","getNum","optionContent","onMounted","query","then","res","errorQuestionUserAnswerInfo","index","optionList","o","oStatus","catch","close","d","url","replace","path","collectionType","userOperateQuestion","handleType","questionId","ElMessage","success","errorQuestionAnswer","sourceId","splice","document","getElementById","scrollIntoView"],"mappings":"8qDAgHA,IAAAA,EAAAC,EAAAC,UACAC,EAAA,CACAC,MAAA,QAAAJ,EAAAK,WAEA,MAAAC,EAAAC,IACAC,EAAAC,GAAA,IAAAH,EAAAI,YACAC,YAAAA,GAAAL,EACAM,EAAAC,IACAC,EAAAC,EAAA,CACAC,aAAA,GACAC,mBAAA,GACAC,WAAA,GACAC,YAAA,GACAC,OAAA,6BAAAC,MAAA,IACAC,YAAA,KAEAC,GAAAR,EAAA,CACAS,kBAAA,KAEAC,GAAAV,EAAA,CACAW,SAAA,IAEAC,GAAAC,IACAC,GAAAC,IACA,IAAAA,EAAAC,WACA,MAAA,GAEA,GAAA,IAAAD,EAAAd,cACA,GAAAc,EAAAE,eAAAF,EAAAE,cAAAC,OAAA,EACA,OAAAH,EAAAC,WAAAG,QAAAJ,EAAAE,gBAAA,EACA,EAEA,OAGA,GAAA,IAAAF,EAAAd,cACA,GAAAc,EAAAE,cAAAC,OAAA,EAAA,CACA,MAAAE,EAAA,GAOA,OANAL,EAAAE,cAAAI,SAAAC,IACAP,EAAAC,WAAAG,QAAAG,IAAA,GACAF,EAAAG,KAAAD,EACA,IAGAF,EAAAF,SAAAH,EAAAE,cAAAC,QAAAH,EAAAE,cAAAC,SAAAH,EAAAC,WAAAV,MAAA,KACAY,OACA,EAEA,CAEA,MACA,IAAA,IAAAH,EAAAd,aACA,OAAAc,EAAAC,aAAAD,EAAAS,eACA,EAEA,KAEA,IAAAT,EAAAd,cAAA,IAAAc,EAAAd,aACA,OAAA,CACA,CACA,EAEAwB,GAAA,CAAAC,EAAAC,EAAAC,KACA,IAAAF,EACA,MAAA,GAEA,GAAA,IAAAE,EACA,OAAA,EACA,GAAA,IAAAA,EAAA,CAEA,OADAF,EAAApB,MAAA,KACAuB,KAAA,IACA,CACA,IAAAF,EAqBA,OAAAD,EApBA,GAAA,IAAAE,EAAA,CACA,IAAAE,EAAA,KAMA,OALAH,EAAAN,SAAA,CAAAU,EAAAT,KACAS,EAAAC,KAAAN,GAAA,OAAAI,IACAA,EAAAR,EACA,IAEAvB,EAAAM,OAAAyB,EACA,CAAA,GAAA,IAAAF,EAAA,CACA,IAAAE,EAAA,GAMA,OALAH,EAAAN,SAAA,CAAAU,EAAAT,KACAI,EAAAP,QAAAY,EAAAC,KAAA,IAAA,IAAAF,EAAAX,QAAAY,EAAAC,KACAF,EAAAP,KAAAxB,EAAAM,OAAAiB,GACA,IAEAQ,EAAAD,KAAA,IACA,CAAA,OAAA,IAAAD,EACAF,OADA,CAKA,EAEAO,GAAA,CAAAP,EAAAC,EAAAC,KACA,GAAA,IAAAA,EACA,OAAA,EACA,GAAA,IAAAA,EAAA,CAEA,OADAF,EAAApB,MAAA,KACAuB,KAAA,IACA,CACA,IAAAF,EAqBA,OAAAD,EApBA,GAAA,IAAAE,EAAA,CACA,IAAAE,EAAA,KAMA,OALAH,EAAAN,SAAA,CAAAU,EAAAT,KACAS,EAAAG,gBAAAR,GAAA,OAAAI,IACAA,EAAAR,EACA,IAEAvB,EAAAM,OAAAyB,EACA,CAAA,GAAA,IAAAF,EAAA,CACA,IAAAE,EAAA,GAMA,OALAH,EAAAN,SAAA,CAAAU,EAAAT,KACAI,EAAAP,QAAAY,EAAAG,gBAAA,IAAA,IAAAJ,EAAAX,QAAAY,EAAAG,gBACAJ,EAAAP,KAAAxB,EAAAM,OAAAiB,GACA,IAEAQ,EAAAD,KAAA,IACA,CAAA,OAAA,IAAAD,EACAF,OADA,CAKA,EAEAS,GAAA,KACApC,EAAAE,cAAAJ,EAAAuC,MAAAnC,aACAF,EAAAG,mBAAAL,EAAAuC,MAAAlC,mBACAH,EAAAI,YAAAN,EAAAuC,MAAAjC,WACAJ,EAAAK,aAAAP,EAAAuC,MAAAhC,YACAM,GAAAC,SAAA,EACAf,EAAA,mBAAA,OAAAyC,MAAAC,IACA9B,GAAAC,kBAAA6B,CAAA,IAEAC,EAAA,CACAnC,YAAAL,EAAAK,YACAF,mBAAAH,EAAAG,mBACAD,aAAAF,EAAAE,aACAE,WAAAJ,EAAAI,aACAkC,MAAAC,IACAA,GAAAA,EAAApB,OAAA,IACAnB,EAAAQ,YAAA+B,EACAvC,EAAAQ,YAAAc,SAAA,CAAAN,EAAAyB,KACAzB,EAAAC,WAAAD,EAAAC,YAAA,GACAD,EAAAd,aAAA,GACAc,EAAA0B,WAAApB,SAAAqB,IACAA,EAAAC,QAAA,EACA5B,EAAAE,cAAAE,QAAAuB,EAAAV,KAAA,EACAU,EAAAC,QAAA,EAEA5B,EAAAC,YAAAD,EAAAC,WAAAG,QAAAuB,EAAAV,KAAA,IACAU,EAAAC,QAAA,EAEA,IAGA,IAAA5B,EAAAd,eACAc,EAAA0B,WAAA,GACA1B,EAAA0B,WAAAlB,KACA,CACAS,GAAA,IACAE,cAAA,KAEA,CACAF,GAAA,IACAE,cAAA,MAGAnB,EAAA0B,WAAApB,SAAAqB,IACAA,EAAAC,QAAA,EACA5B,EAAAC,WACA0B,EAAAR,eAAAnB,EAAAS,eACAkB,EAAAC,QAAA,EAEAD,EAAAR,eAAAnB,EAAAC,aACA0B,EAAAC,QAAA,GAIAD,EAAAR,eAAAnB,EAAAS,iBACAkB,EAAAC,QAAA,EAEA,IAEA,KAGAjC,GAAAC,SAAA,CAAA,IACAiC,OAAA,KACAC,IAAA,GACA,IAEA,MAyCAA,GAAA,KACA,MAAAC,EAAA,CACA5C,mBAAAH,EAAAG,mBACAC,WAAAJ,EAAAI,WACAyB,KAAA,KAEA,IAAAmB,EAAA,iBACA,IAAAhD,EAAAK,cACA2C,EAAA,mBACAD,EAAAlB,KAAA,KAEAhB,GAAAoC,QAAA,CACAC,KAAAF,EACAX,MAAAU,GACA,suBApDA,CAAA/B,IACAA,EAAAmC,eAaAC,EAAA,CACAC,YAAA,EACAhD,YAAA,EACAiD,WAAAtC,EAAAiB,GACA7B,WAAAY,EAAAZ,aACAkC,MAAAC,IACAgB,EAAAC,QAAAjB,GACAvB,EAAAmC,gBAAA,CAAA,IAnBAC,EAAA,CACAK,oBAAAzC,EAAAC,YAAA,GACAoC,YAAA,EACAhD,YAAA,EACAiD,WAAAtC,EAAAiB,GACAyB,SAAA1C,EAAA0C,SACAtD,WAAAY,EAAAZ,aACAkC,MAAAC,IACAgB,EAAAC,QAAAjB,GACAvB,EAAAmC,gBAAA,CAAA,GAYA,6LAEA,EAAAnC,EAAAyB,KACAW,EAAA,CACAC,YAAA,EACAhD,YAAAL,EAAAK,YACAiD,WAAAtC,EAAAiB,GACA7B,WAAAY,EAAAZ,aACAkC,MAAAC,IACAA,IACAgB,EAAAC,QAAAjB,GACAvC,EAAAQ,YAAAmD,OAAAlB,EAAA,GACA,GACA,2jCAvCAA,SACAmB,SAAAC,eAAApB,GAAAqB,iBADA,IAAArB"}