{"version":3,"file":"verben-ticketing-ui-src-lib-components-add-ticket.mjs","sources":["../../../projects/verben-ticketing-ui/src/lib/components/add-ticket/add-ticket.component.ts","../../../projects/verben-ticketing-ui/src/lib/components/add-ticket/add-ticket.component.html","../../../projects/verben-ticketing-ui/src/lib/components/add-ticket/add-ticket.module.ts","../../../projects/verben-ticketing-ui/src/lib/components/add-ticket/verben-ticketing-ui-src-lib-components-add-ticket.ts"],"sourcesContent":["import {\n  Component,\n  EventEmitter,\n  Input,\n  OnInit,\n  Output,\n  SimpleChanges,\n} from '@angular/core';\nimport {\n  FormBuilder,\n  FormControl,\n  FormGroup,\n  Validators,\n} from '@angular/forms';\nimport { Application } from 'verben-ticketing-ui/src/lib/models';\nimport { Tenant } from 'verben-ticketing-ui/src/lib/models';\nimport { ErrorResponse } from 'verben-ticketing-ui/src/lib/models';\nimport { ObjectState } from 'verben-ticketing-ui/src/lib/models';\nimport { Ticket } from 'verben-ticketing-ui/src/lib/models';\nimport { TicketStatus } from 'verben-ticketing-ui/src/lib/models';\nimport {\n  UtilService as AppUtilService,\n  EnvironmentService,\n} from 'verben-ticketing-ui/src/lib/services';\nimport { HttpWebRequestService } from 'verben-ticketing-ui/src/lib/services';\n\nimport { TenantPriority } from 'verben-ticketing-ui/src/lib/models';\nimport { TicketMessage } from 'verben-ticketing-ui/src/lib/models';\nimport { DEFAULT_MESSAGE_FOR_INITIAL_UPLOAD } from 'verben-ticketing-ui/src/lib/constants';\nimport { File } from 'verben-ticketing-ui/src/lib/models';\nimport { SharedService } from 'verben-ticketing-ui/src/lib/services';\n\n@Component({\n  selector: 'app-add-ticket',\n  templateUrl: './add-ticket.component.html',\n  styleUrl: './add-ticket.component.css',\n})\nexport class AddTicketComponent {\n  // test: string = '';\n  // logTest() {\n  //   console.log({ Test: this.test });\n  // }\n  createTicketForm: FormGroup;\n  @Input() overrideToken: string | null = null;\n  @Input() activeUser: string | null = null;\n  @Input() activeApp: string | null = null;\n  @Input() activeTenant: string | null = null;\n  @Input() selectedTicket: Ticket | null = null;\n  @Input() isDisabled: boolean = false;\n  @Input() isVisible: boolean = false;\n  @Output() onOpen: EventEmitter<Event> = new EventEmitter();\n  @Output() onClose: EventEmitter<Event> = new EventEmitter();\n  @Output() onSave: EventEmitter<Ticket> = new EventEmitter();\n\n  priorityOptions: TenantPriority[] = [];\n  statusOptions: string[] = Object.keys(TicketStatus);\n  pendingRef: TicketStatus = TicketStatus.Pending;\n  fileData: File[] = [];\n  fileUrls: string[] = [];\n  //attachedMessage: TicketMessage | null = null;\n  maxFileSize = 15 * 1024 * 1024;\n  @Input() defaultCompany: string = '';\n\n  constructor(\n    private fb: FormBuilder,\n    private utilService: AppUtilService,\n    private server: HttpWebRequestService,\n    private sharedService: SharedService,\n    private envSvc: EnvironmentService,\n  ) {\n    this.sharedService.initService(this.overrideToken);\n    this.createTicketForm = this.fb.group({\n      Title: new FormControl<string | null>(\n        {\n          value: null,\n          disabled: this.isDisabled,\n        },\n        Validators.required,\n      ),\n      Description: new FormControl<string | null>(\n        {\n          value: null,\n          disabled: this.isDisabled,\n        },\n        Validators.required,\n      ),\n      // CurrentHandler: new FormControl<string | null>({\n      //   value: null,\n      //   disabled: true,\n      // }),\n      // LastHandler: new FormControl<string | null>({\n      //   value: null,\n      //   disabled: true,\n      // }),\n      Priority: new FormControl<string | null>(\n        {\n          value: null,\n          disabled: this.isDisabled,\n        },\n        Validators.required,\n      ),\n      Status: new FormControl<TicketStatus>(\n        { value: TicketStatus.Pending, disabled: true },\n        Validators.required,\n      ),\n    });\n\n    // this.createTicketForm.controls['CurrentHandler'].disable();\n    // this.createTicketForm.controls['LastHandler'].disable();\n  }\n\n  ngOnInit(): void {}\n\n  async ngOnChanges(changes: SimpleChanges): Promise<void> {\n    if (changes['overrideToken']) {\n      this.sharedService.initService(this.overrideToken);\n    }\n\n    if (changes['selectedTicket'] && this.selectedTicket) {\n      this.createTicketForm.patchValue({\n        Title: this.selectedTicket.Title,\n        Description: this.selectedTicket.Description,\n        // CurrentHandler: this.selectedTicket.CurrentHandler,\n        // LastHandler: this.selectedTicket.LastHandler,\n        Priority: this.selectedTicket.Priority,\n        Status: this.selectedTicket.Status,\n      });\n      this.fileUrls = [...this.selectedTicket.FileUrls];\n      this.fileData = [];\n    } else {\n      this.createTicketForm.patchValue({\n        Title: null,\n        Description: null,\n        // CurrentHandler: null,\n        // LastHandler: null,\n        Priority: null,\n        Status: TicketStatus.Pending,\n      });\n      this.fileUrls = [];\n      this.fileData = [];\n    }\n\n    if (this.isDisabled) {\n      this.createTicketForm.get('Title')?.disable({ emitEvent: false });\n      this.createTicketForm.get('Description')?.disable({ emitEvent: false });\n      this.createTicketForm.get('Priority')?.disable({ emitEvent: false });\n    } else {\n      this.createTicketForm.get('Title')?.enable({ emitEvent: false });\n      this.createTicketForm.get('Description')?.enable({ emitEvent: false });\n      this.createTicketForm.get('Priority')?.enable({ emitEvent: false });\n    }\n\n    if (changes['activeTenant'] && this.activeTenant) {\n      const options = await this.sharedService.getAllPrioritiesForTenant(\n        this.activeTenant,\n      );\n      if (options) {\n        this.priorityOptions = options.Result;\n      }\n      //  console.log({ Changed: this.priorityOptions });\n    } else if (changes['activeTenant'] && !this.activeTenant) {\n      this.priorityOptions = [];\n      // console.log({ Tenant: this.activeTenant, Reset: this.priorityOptions });\n    }\n  }\n\n  checkForm(): boolean {\n    if (this.createTicketForm.valid == true) {\n      return true;\n    }\n    return false;\n  }\n\n  onModalOpen(event: any) {\n    this.onOpen.emit();\n  }\n\n  onModalClose(event: any) {\n    this.onClose.emit(event);\n  }\n\n  // filterMessage(message: TicketMessage): TicketMessage {\n  //   return {\n  //     ...message,\n  //     AttachmentUrls: message.AttachmentUrls.filter(\n  //       (x) => x.split('/').length > 1\n  //     ),\n  //   };\n  // }\n\n  async save() {\n    if (!this.activeApp) {\n      return;\n    }\n    if (!this.activeTenant) {\n      return;\n    }\n    // if (this.selectedTicket && this.attachedMessage) {\n    //   if (idx > -1) {\n    //     this.selectedTicket.Messages[idx] = this.filterMessage(\n    //       this.attachedMessage\n    //     );\n    //   } else {\n    //     if (this.attachedMessage.Attachments.length > 0) {\n    //       this.selectedTicket.Messages.unshift(\n    //         this.filterMessage(this.attachedMessage)\n    //       );\n    //     }\n    //   }\n    // }\n\n    const item: Ticket = {\n      Title: this.createTicketForm.controls['Title'].value,\n      Description: this.createTicketForm.controls['Description'].value,\n      CurrentHandler: this.selectedTicket\n        ? this.selectedTicket.CurrentHandler\n        : undefined,\n      LastHandler: this.selectedTicket\n        ? this.selectedTicket.LastHandler\n        : undefined,\n      Priority: this.createTicketForm.controls['Priority'].value,\n      App: this.activeApp,\n      id: '',\n      Status: this.createTicketForm.controls['Status'].value,\n      Company: this.defaultCompany,\n      Messages: this.selectedTicket ? this.selectedTicket.Messages : [],\n      FileData: this.fileData,\n      FileUrls: this.selectedTicket ? this.selectedTicket.FileUrls : [],\n      Id: '',\n      ExecutionTime: this.selectedTicket\n        ? this.selectedTicket.ExecutionTime\n        : undefined,\n      Code: this.selectedTicket ? this.selectedTicket.Code : '',\n      TenantId: this.selectedTicket\n        ? this.selectedTicket.TenantId\n        : this.activeTenant,\n      ServiceName: this.selectedTicket ? this.selectedTicket.ServiceName : '',\n      CreatedAt: this.selectedTicket\n        ? this.selectedTicket.CreatedAt\n        : new Date(),\n      // CreatedBy: this.activeUser || undefined,\n      UpdatedAt: new Date(),\n      DataState: this.selectedTicket ? ObjectState.Changed : ObjectState.New,\n      Tag: this.activeUser || undefined,\n    };\n\n    if (item.Description.trim().length == 0) {\n      this.utilService.showInfo('Description cannot be empty');\n      return;\n    }\n    this.utilService.sendBI(true);\n    const res = await this.server.post(\n      `Ticket/SaveTicket`,\n      [item],\n      this.overrideToken || undefined,\n      this.envSvc.environment.TicketingAPI,\n    );\n    this.utilService.sendBI(false);\n    if (res instanceof ErrorResponse) {\n    } else {\n      this.utilService.showSuccess('Ticket saved successfully');\n      const result = res as Ticket[];\n      if (result.length > 0) {\n        var resultItem = result[0];\n        this.onSave.emit(resultItem);\n      }\n    }\n\n    this.onClose.emit();\n  }\n\n  generateSixDigitNumber(): number {\n    return Math.floor(100000 + Math.random() * 900000);\n  }\n\n  getTicketMessage(): TicketMessage {\n    if (this.selectedTicket) {\n      const initialMessage = this.selectedTicket.Messages.find(\n        (x) => x.Subject == DEFAULT_MESSAGE_FOR_INITIAL_UPLOAD,\n      );\n      if (initialMessage) {\n        return { ...initialMessage, DataState: ObjectState.Changed };\n      } else {\n        const newMessage: TicketMessage = {\n          TicketCode: '',\n          Subject: DEFAULT_MESSAGE_FOR_INITIAL_UPLOAD,\n          Content: '',\n          Attachments: [],\n          AttachmentUrls: [],\n          Company: this.defaultCompany,\n          Id: '',\n          Code: '',\n          TenantId: '',\n          id: '',\n          ServiceName: '',\n          CreatedAt: new Date(),\n          UpdatedAt: new Date(),\n          DataState: ObjectState.New,\n        };\n        return newMessage;\n      }\n    } else {\n      const newMessage: TicketMessage = {\n        TicketCode: '',\n        Subject: DEFAULT_MESSAGE_FOR_INITIAL_UPLOAD,\n        Content: '',\n        Attachments: [],\n        AttachmentUrls: [],\n        Company: this.defaultCompany,\n        Id: '',\n        id: '',\n        Code: '',\n        TenantId: '',\n        ServiceName: '',\n        CreatedAt: new Date(),\n        UpdatedAt: new Date(),\n        DataState: ObjectState.New,\n      };\n      return newMessage;\n    }\n  }\n\n  triggerFileUpload(): void {\n    const fileInput: HTMLInputElement = document.createElement('input');\n    fileInput.type = 'file';\n    fileInput.accept = '.png, .jpg, .jpeg, .pdf';\n    fileInput.style.display = 'none'; // Hidden file input\n    document.body.appendChild(fileInput); // Temporarily add to DOM\n\n    fileInput.addEventListener('change', () => {\n      const file = fileInput.files?.[0];\n      if (file) {\n        this.processFile(file);\n      }\n      document.body.removeChild(fileInput); // Clean up after use\n    });\n\n    fileInput.click(); // Programmatically trigger click\n  }\n\n  private async processFile(selectedFile: globalThis.File): Promise<void> {\n    // Check file size\n    if (selectedFile.size > this.maxFileSize) {\n      const limitInMB = this.maxFileSize / 1024 / 1024;\n      this.utilService.showInfo(`File size limit of ${limitInMB}mb exceeded`);\n      return;\n    }\n\n    // let fileToProcess: globalThis.File | null = selectedFile;\n    // const safeNumber: number = 1 * 1024 * 1024;\n    // if (fileToProcess.size > safeNumber) {\n    //   fileToProcess = await this.utilService.compressImage(selectedFile);\n    //   if (!fileToProcess) {\n    //     this.utilService.showError('Error compressing image');\n    //     return;\n    //   }\n    // }\n\n    // Read file and convert to base64\n    const reader = new FileReader();\n    reader.readAsDataURL(selectedFile);\n    reader.onload = () => {\n      const base64data = reader.result as string;\n      const file = this.sharedService.createCustomFile(\n        base64data,\n        0,\n        selectedFile,\n      );\n      if (file) {\n        this.fileData.push(file);\n        this.fileUrls.push(`${file.Name}`);\n        // this.profileImage = base64data;\n      }\n    };\n  }\n\n  // get isDisabled(): boolean {\n  //   if (!this.selectedTicket) {\n  //     return false;\n  //   }\n  //   return !(this.selectedTicket.Status == this.pendingRef);\n  // }\n}\n","<verben-dialogue\n  [showCloseIcon]=\"false\"\n  [dismissOutsideClick]=\"false\"\n  [closeOnEscape]=\"true\"\n  [size]=\"'medium'\"\n  [mode]=\"'dialogue'\"\n  [customClass]=\"'ticket-dialog'\"\n  [disableFooter]=\"true\"\n  (openModal)=\"onModalOpen($event)\"\n  [isVisible]=\"isVisible\"\n  [bodyTemplate]=\"bodyTemplate\"\n  (closeModal)=\"onModalClose($event)\"\n>\n  <ng-template #bodyTemplate>\n    <div class=\"dialog-body p-[25px] flex flex-col gap-4\">\n      <div class=\"dialog-header flex flex-col gap-1\">\n        <div class=\"dialog-title font-bold text-xl\">\n          {{ this.selectedTicket ? \"Edit Ticket\" : \"Create Ticket\" }}\n        </div>\n        <div class=\"dialog-subtitle\">\n          {{\n            this.selectedTicket\n              ? \"Fill the form below to edit selected ticket\"\n              : \"Fill the form below to create a ticket\"\n          }}\n        </div>\n      </div>\n      <!-- <verbena-textarea name=\"Test\" [(ngModel)]=\"test\" />\n      <button (click)=\"logTest()\">Log</button> -->\n      <div\n        [formGroup]=\"createTicketForm\"\n        class=\"add-app-form main-form-container flex flex-col gap-2\"\n      >\n        <div class=\"form-input-container flex flex-col gap-1\">\n          <div class=\"font-medium\">Title</div>\n          <verbena-input\n            name=\"Title\"\n            placeHolder=\"Title\"\n            formControlName=\"Title\"\n          />\n        </div>\n        <div class=\"form-input-container flex flex-col gap-1\">\n          <div class=\"font-medium\">Description</div>\n          <verbena-input name=\"Description\" formControlName=\"Description\" />\n        </div>\n        <!-- <div\n          *ngIf=\"this.selectedTicket\"\n          class=\"form-input-container flex flex-col gap-1\"\n        >\n          <div class=\"font-medium\">Current Handler</div>\n          <verbena-input\n            name=\"CurrentHandler\"\n            placeHolder=\"Current Handler\"\n            [value]=\"createTicketForm.get('CurrentHandler')?.value\"\n            [disable]=\"true\"\n          />\n        </div>\n        <div\n          *ngIf=\"this.selectedTicket\"\n          class=\"form-input-container flex flex-col gap-1\"\n        >\n          <div class=\"font-medium\">Last Handler</div>\n          <verbena-input\n            name=\"LastHandler\"\n            placeHolder=\"Last Handler\"\n            [value]=\"createTicketForm.get('LastHandler')?.value\"\n            [disable]=\"true\"\n          />\n        </div> -->\n        <div class=\"form-input-container flex flex-col gap-1\">\n          <div class=\"font-medium\">Priority</div>\n          <verben-drop-down\n            width=\"100%\"\n            name=\"Priority\"\n            placeholder=\"Select Priority\"\n            [options]=\"priorityOptions\"\n            optionLabel=\"Name\"\n            optionValue=\"Code\"\n            formControlName=\"Priority\"\n          >\n          </verben-drop-down>\n        </div>\n        <div class=\"form-input-container flex flex-col gap-1\">\n          <div class=\"font-medium\">Status</div>\n          <verben-drop-down\n            width=\"100%\"\n            name=\"Status\"\n            [disabled]=\"true\"\n            placeholder=\"Select Status\"\n            [options]=\"statusOptions\"\n            formControlName=\"Status\"\n          >\n          </verben-drop-down>\n        </div>\n        <div class=\"attachment-section p-2 flex flex-col gap-3\">\n          <div class=\"attachments-container grid grid-cols-3 gap-2\">\n            <ng-container *ngFor=\"let file of this.fileUrls\">\n              <app-file-render [fileUrl]=\"file\"></app-file-render>\n            </ng-container>\n          </div>\n          <div\n            class=\"upload-section flex flex-col flex-1 items-center justify-center gap-2\"\n          >\n            <div class=\"flex justify-center\">\n              <verbena-button\n                [useIcon]=\"true\"\n                [icon]=\"'upload'\"\n                class=\"verben-secondary-button\"\n                [text]=\"'Upload'\"\n                (click)=\"triggerFileUpload()\"\n                [disable]=\"isDisabled\"\n              ></verbena-button>\n            </div>\n            <div class=\"upload-caption text-sm text-center\">\n              Include Attachments\n            </div>\n          </div>\n        </div>\n      </div>\n      <div class=\"dialog-button-container flex justify-end gap-2\">\n        <verbena-button\n          width=\"100%\"\n          class=\"verben-secondary-button\"\n          [text]=\"'Close'\"\n          (click)=\"onModalClose($event)\"\n        >\n        </verbena-button>\n        <verbena-button\n          [disable]=\"!this.checkForm()\"\n          width=\"100%\"\n          class=\"verben-primary-button\"\n          [text]=\"'Save'\"\n          (click)=\"save()\"\n        >\n        </verbena-button>\n      </div>\n    </div>\n  </ng-template>\n</verben-dialogue>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { ReactiveFormsModule } from '@angular/forms';\n\nimport {\n  CardDataViewModule,\n  DataExportModule,\n  DataTableModule,\n  DataViewModule,\n  DropDownModule,\n  SortTableModule,\n  SvgModule,\n  TableFilterModule,\n  TooltipModule,\n  VerbenaButtonModule,\n  VerbenaInputModule,\n  VerbenaSwitchModule,\n  VerbenDialogueModule,\n  VerbenPopUpModule,\n  VisibleColumnModule,\n  DataImportModule,\n  DataXportModule,\n} from 'verben-ng-ui';\nimport { RouterModule, Routes } from '@angular/router';\n\nimport { CompanyDatePipe } from 'verben-ticketing-ui/src/lib/pipes';\nimport { EllipseWordPipe } from 'verben-ticketing-ui/src/lib/pipes';\nimport { AddTicketComponent } from './add-ticket.component';\nimport { FileRenderLibModule } from 'verben-ticketing-ui/src/lib/components/file-render';\nexport const appRoutes: Routes = [];\n@NgModule({\n  declarations: [AddTicketComponent],\n  imports: [\n    CommonModule,\n    FormsModule,\n    ReactiveFormsModule,\n    DataTableModule,\n    SvgModule,\n    VerbenPopUpModule,\n    DataViewModule,\n    VerbenaButtonModule,\n    CardDataViewModule,\n    DropDownModule,\n    VerbenaSwitchModule,\n    TableFilterModule,\n    VisibleColumnModule,\n    SortTableModule,\n    DataExportModule,\n    TooltipModule,\n    VerbenDialogueModule,\n    VerbenaInputModule,\n    DataImportModule,\n    DataExportModule,\n    DataXportModule,\n    EllipseWordPipe,\n    FileRenderLibModule,\n    CompanyDatePipe,\n    RouterModule.forChild(appRoutes),\n  ],\n  exports: [AddTicketComponent],\n})\nexport class AddTicketLibModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;MAqCa,kBAAkB,CAAA;AA2BnB,IAAA,EAAA,CAAA;AACA,IAAA,WAAA,CAAA;AACA,IAAA,MAAA,CAAA;AACA,IAAA,aAAA,CAAA;AACA,IAAA,MAAA,CAAA;;;;;AA1BV,IAAA,gBAAgB,CAAY;IACnB,aAAa,GAAkB,IAAI,CAAC;IACpC,UAAU,GAAkB,IAAI,CAAC;IACjC,SAAS,GAAkB,IAAI,CAAC;IAChC,YAAY,GAAkB,IAAI,CAAC;IACnC,cAAc,GAAkB,IAAI,CAAC;IACrC,UAAU,GAAY,KAAK,CAAC;IAC5B,SAAS,GAAY,KAAK,CAAC;AAC1B,IAAA,MAAM,GAAwB,IAAI,YAAY,EAAE,CAAC;AACjD,IAAA,OAAO,GAAwB,IAAI,YAAY,EAAE,CAAC;AAClD,IAAA,MAAM,GAAyB,IAAI,YAAY,EAAE,CAAC;IAE5D,eAAe,GAAqB,EAAE,CAAC;AACvC,IAAA,aAAa,GAAa,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACpD,IAAA,UAAU,GAAiB,YAAY,CAAC,OAAO,CAAC;IAChD,QAAQ,GAAW,EAAE,CAAC;IACtB,QAAQ,GAAa,EAAE,CAAC;;AAExB,IAAA,WAAW,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;IACtB,cAAc,GAAW,EAAE,CAAC;IAErC,WACU,CAAA,EAAe,EACf,WAA2B,EAC3B,MAA6B,EAC7B,aAA4B,EAC5B,MAA0B,EAAA;QAJ1B,IAAE,CAAA,EAAA,GAAF,EAAE,CAAa;QACf,IAAW,CAAA,WAAA,GAAX,WAAW,CAAgB;QAC3B,IAAM,CAAA,MAAA,GAAN,MAAM,CAAuB;QAC7B,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;QAC5B,IAAM,CAAA,MAAA,GAAN,MAAM,CAAoB;QAElC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACnD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YACpC,KAAK,EAAE,IAAI,WAAW,CACpB;AACE,gBAAA,KAAK,EAAE,IAAI;gBACX,QAAQ,EAAE,IAAI,CAAC,UAAU;aAC1B,EACD,UAAU,CAAC,QAAQ,CACpB;YACD,WAAW,EAAE,IAAI,WAAW,CAC1B;AACE,gBAAA,KAAK,EAAE,IAAI;gBACX,QAAQ,EAAE,IAAI,CAAC,UAAU;aAC1B,EACD,UAAU,CAAC,QAAQ,CACpB;;;;;;;;;YASD,QAAQ,EAAE,IAAI,WAAW,CACvB;AACE,gBAAA,KAAK,EAAE,IAAI;gBACX,QAAQ,EAAE,IAAI,CAAC,UAAU;aAC1B,EACD,UAAU,CAAC,QAAQ,CACpB;AACD,YAAA,MAAM,EAAE,IAAI,WAAW,CACrB,EAAE,KAAK,EAAE,YAAY,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,EAC/C,UAAU,CAAC,QAAQ,CACpB;AACF,SAAA,CAAC,CAAC;;;KAIJ;AAED,IAAA,QAAQ,MAAW;IAEnB,MAAM,WAAW,CAAC,OAAsB,EAAA;AACtC,QAAA,IAAI,OAAO,CAAC,eAAe,CAAC,EAAE;YAC5B,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;SACpD;QAED,IAAI,OAAO,CAAC,gBAAgB,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE;AACpD,YAAA,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC;AAC/B,gBAAA,KAAK,EAAE,IAAI,CAAC,cAAc,CAAC,KAAK;AAChC,gBAAA,WAAW,EAAE,IAAI,CAAC,cAAc,CAAC,WAAW;;;AAG5C,gBAAA,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ;AACtC,gBAAA,MAAM,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM;AACnC,aAAA,CAAC,CAAC;YACH,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;AAClD,YAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;SACpB;aAAM;AACL,YAAA,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC;AAC/B,gBAAA,KAAK,EAAE,IAAI;AACX,gBAAA,WAAW,EAAE,IAAI;;;AAGjB,gBAAA,QAAQ,EAAE,IAAI;gBACd,MAAM,EAAE,YAAY,CAAC,OAAO;AAC7B,aAAA,CAAC,CAAC;AACH,YAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;AACnB,YAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;SACpB;AAED,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,YAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;AAClE,YAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;AACxE,YAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;SACtE;aAAM;AACL,YAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;AACjE,YAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;AACvE,YAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;SACrE;QAED,IAAI,OAAO,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,YAAY,EAAE;AAChD,YAAA,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,yBAAyB,CAChE,IAAI,CAAC,YAAY,CAClB,CAAC;YACF,IAAI,OAAO,EAAE;AACX,gBAAA,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC;aACvC;;SAEF;aAAM,IAAI,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;AACxD,YAAA,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;;SAE3B;KACF;IAED,SAAS,GAAA;QACP,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAK,IAAI,IAAI,EAAE;AACvC,YAAA,OAAO,IAAI,CAAC;SACb;AACD,QAAA,OAAO,KAAK,CAAC;KACd;AAED,IAAA,WAAW,CAAC,KAAU,EAAA;AACpB,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;KACpB;AAED,IAAA,YAAY,CAAC,KAAU,EAAA;AACrB,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC1B;;;;;;;;;AAWD,IAAA,MAAM,IAAI,GAAA;AACR,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,OAAO;SACR;AACD,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACtB,OAAO;SACR;;;;;;;;;;;;;;AAeD,QAAA,MAAM,IAAI,GAAW;YACnB,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK;YACpD,WAAW,EAAE,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,KAAK;YAChE,cAAc,EAAE,IAAI,CAAC,cAAc;AACjC,kBAAE,IAAI,CAAC,cAAc,CAAC,cAAc;AACpC,kBAAE,SAAS;YACb,WAAW,EAAE,IAAI,CAAC,cAAc;AAC9B,kBAAE,IAAI,CAAC,cAAc,CAAC,WAAW;AACjC,kBAAE,SAAS;YACb,QAAQ,EAAE,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,KAAK;YAC1D,GAAG,EAAE,IAAI,CAAC,SAAS;AACnB,YAAA,EAAE,EAAE,EAAE;YACN,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,KAAK;YACtD,OAAO,EAAE,IAAI,CAAC,cAAc;AAC5B,YAAA,QAAQ,EAAE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,GAAG,EAAE;YACjE,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACvB,YAAA,QAAQ,EAAE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,GAAG,EAAE;AACjE,YAAA,EAAE,EAAE,EAAE;YACN,aAAa,EAAE,IAAI,CAAC,cAAc;AAChC,kBAAE,IAAI,CAAC,cAAc,CAAC,aAAa;AACnC,kBAAE,SAAS;AACb,YAAA,IAAI,EAAE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,GAAG,EAAE;YACzD,QAAQ,EAAE,IAAI,CAAC,cAAc;AAC3B,kBAAE,IAAI,CAAC,cAAc,CAAC,QAAQ;kBAC5B,IAAI,CAAC,YAAY;AACrB,YAAA,WAAW,EAAE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW,GAAG,EAAE;YACvE,SAAS,EAAE,IAAI,CAAC,cAAc;AAC5B,kBAAE,IAAI,CAAC,cAAc,CAAC,SAAS;kBAC7B,IAAI,IAAI,EAAE;;YAEd,SAAS,EAAE,IAAI,IAAI,EAAE;AACrB,YAAA,SAAS,EAAE,IAAI,CAAC,cAAc,GAAG,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,GAAG;AACtE,YAAA,GAAG,EAAE,IAAI,CAAC,UAAU,IAAI,SAAS;SAClC,CAAC;QAEF,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,MAAM,IAAI,CAAC,EAAE;AACvC,YAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,6BAA6B,CAAC,CAAC;YACzD,OAAO;SACR;AACD,QAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAC9B,QAAA,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAChC,CAAA,iBAAA,CAAmB,EACnB,CAAC,IAAI,CAAC,EACN,IAAI,CAAC,aAAa,IAAI,SAAS,EAC/B,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,YAAY,CACrC,CAAC;AACF,QAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC/B,QAAA,IAAI,GAAG,YAAY,aAAa,EAAE;SACjC;aAAM;AACL,YAAA,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,2BAA2B,CAAC,CAAC;YAC1D,MAAM,MAAM,GAAG,GAAe,CAAC;AAC/B,YAAA,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;AACrB,gBAAA,IAAI,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AAC3B,gBAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;aAC9B;SACF;AAED,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;KACrB;IAED,sBAAsB,GAAA;AACpB,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC;KACpD;IAED,gBAAgB,GAAA;AACd,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE;YACvB,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CACtD,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,IAAI,kCAAkC,CACvD,CAAC;YACF,IAAI,cAAc,EAAE;gBAClB,OAAO,EAAE,GAAG,cAAc,EAAE,SAAS,EAAE,WAAW,CAAC,OAAO,EAAE,CAAC;aAC9D;iBAAM;AACL,gBAAA,MAAM,UAAU,GAAkB;AAChC,oBAAA,UAAU,EAAE,EAAE;AACd,oBAAA,OAAO,EAAE,kCAAkC;AAC3C,oBAAA,OAAO,EAAE,EAAE;AACX,oBAAA,WAAW,EAAE,EAAE;AACf,oBAAA,cAAc,EAAE,EAAE;oBAClB,OAAO,EAAE,IAAI,CAAC,cAAc;AAC5B,oBAAA,EAAE,EAAE,EAAE;AACN,oBAAA,IAAI,EAAE,EAAE;AACR,oBAAA,QAAQ,EAAE,EAAE;AACZ,oBAAA,EAAE,EAAE,EAAE;AACN,oBAAA,WAAW,EAAE,EAAE;oBACf,SAAS,EAAE,IAAI,IAAI,EAAE;oBACrB,SAAS,EAAE,IAAI,IAAI,EAAE;oBACrB,SAAS,EAAE,WAAW,CAAC,GAAG;iBAC3B,CAAC;AACF,gBAAA,OAAO,UAAU,CAAC;aACnB;SACF;aAAM;AACL,YAAA,MAAM,UAAU,GAAkB;AAChC,gBAAA,UAAU,EAAE,EAAE;AACd,gBAAA,OAAO,EAAE,kCAAkC;AAC3C,gBAAA,OAAO,EAAE,EAAE;AACX,gBAAA,WAAW,EAAE,EAAE;AACf,gBAAA,cAAc,EAAE,EAAE;gBAClB,OAAO,EAAE,IAAI,CAAC,cAAc;AAC5B,gBAAA,EAAE,EAAE,EAAE;AACN,gBAAA,EAAE,EAAE,EAAE;AACN,gBAAA,IAAI,EAAE,EAAE;AACR,gBAAA,QAAQ,EAAE,EAAE;AACZ,gBAAA,WAAW,EAAE,EAAE;gBACf,SAAS,EAAE,IAAI,IAAI,EAAE;gBACrB,SAAS,EAAE,IAAI,IAAI,EAAE;gBACrB,SAAS,EAAE,WAAW,CAAC,GAAG;aAC3B,CAAC;AACF,YAAA,OAAO,UAAU,CAAC;SACnB;KACF;IAED,iBAAiB,GAAA;QACf,MAAM,SAAS,GAAqB,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;AACpE,QAAA,SAAS,CAAC,IAAI,GAAG,MAAM,CAAC;AACxB,QAAA,SAAS,CAAC,MAAM,GAAG,yBAAyB,CAAC;QAC7C,SAAS,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;QACjC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;AAErC,QAAA,SAAS,CAAC,gBAAgB,CAAC,QAAQ,EAAE,MAAK;YACxC,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;YAClC,IAAI,IAAI,EAAE;AACR,gBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;aACxB;YACD,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;AACvC,SAAC,CAAC,CAAC;AAEH,QAAA,SAAS,CAAC,KAAK,EAAE,CAAC;KACnB;IAEO,MAAM,WAAW,CAAC,YAA6B,EAAA;;QAErD,IAAI,YAAY,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE;YACxC,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,GAAG,IAAI,CAAC;YACjD,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAsB,mBAAA,EAAA,SAAS,CAAa,WAAA,CAAA,CAAC,CAAC;YACxE,OAAO;SACR;;;;;;;;;;;AAaD,QAAA,MAAM,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;AAChC,QAAA,MAAM,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;AACnC,QAAA,MAAM,CAAC,MAAM,GAAG,MAAK;AACnB,YAAA,MAAM,UAAU,GAAG,MAAM,CAAC,MAAgB,CAAC;AAC3C,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAC9C,UAAU,EACV,CAAC,EACD,YAAY,CACb,CAAC;YACF,IAAI,IAAI,EAAE;AACR,gBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACzB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAG,EAAA,IAAI,CAAC,IAAI,CAAE,CAAA,CAAC,CAAC;;aAEpC;AACH,SAAC,CAAC;KACH;wGAjVU,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,qBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,aAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kBAAkB,kYCrC/B,83JA2IA,EAAA,MAAA,EAAA,CAAA,uOAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,SAAA,EAAA,aAAA,EAAA,cAAA,EAAA,SAAA,EAAA,WAAA,EAAA,QAAA,EAAA,cAAA,EAAA,IAAA,EAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,YAAA,EAAA,SAAA,EAAA,SAAA,EAAA,QAAA,EAAA,SAAA,EAAA,WAAA,EAAA,KAAA,EAAA,UAAA,EAAA,WAAA,EAAA,WAAA,EAAA,UAAA,EAAA,aAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,YAAA,EAAA,OAAA,EAAA,aAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,cAAA,EAAA,SAAA,EAAA,UAAA,EAAA,UAAA,EAAA,MAAA,EAAA,YAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,EAAA,UAAA,EAAA,SAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,qBAAA,EAAA,eAAA,EAAA,WAAA,EAAA,MAAA,EAAA,eAAA,EAAA,aAAA,EAAA,eAAA,EAAA,QAAA,EAAA,SAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,kBAAA,EAAA,WAAA,EAAA,MAAA,EAAA,UAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,WAAA,EAAA,WAAA,EAAA,MAAA,EAAA,SAAA,EAAA,QAAA,EAAA,cAAA,EAAA,WAAA,EAAA,OAAA,EAAA,eAAA,EAAA,YAAA,EAAA,SAAA,EAAA,UAAA,EAAA,KAAA,EAAA,KAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,KAAA,EAAA,UAAA,EAAA,UAAA,EAAA,WAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,qBAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,gBAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FDtGa,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAL9B,SAAS;+BACE,gBAAgB,EAAA,QAAA,EAAA,83JAAA,EAAA,MAAA,EAAA,CAAA,uOAAA,CAAA,EAAA,CAAA;2MAUjB,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACI,MAAM,EAAA,CAAA;sBAAf,MAAM;gBACG,OAAO,EAAA,CAAA;sBAAhB,MAAM;gBACG,MAAM,EAAA,CAAA;sBAAf,MAAM;gBASE,cAAc,EAAA,CAAA;sBAAtB,KAAK;;;AE/BD,MAAM,SAAS,GAAW,GAAG;MAgCvB,kBAAkB,CAAA;wGAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;yGAAlB,kBAAkB,EAAA,YAAA,EAAA,CA9Bd,kBAAkB,CAAA,EAAA,OAAA,EAAA,CAE/B,YAAY;YACZ,WAAW;YACX,mBAAmB;YACnB,eAAe;YACf,SAAS;YACT,iBAAiB;YACjB,cAAc;YACd,mBAAmB;YACnB,kBAAkB;YAClB,cAAc;YACd,mBAAmB;YACnB,iBAAiB;YACjB,mBAAmB;YACnB,eAAe;YACf,gBAAgB;YAChB,aAAa;YACb,oBAAoB;YACpB,kBAAkB;YAClB,gBAAgB;YAChB,gBAAgB;YAChB,eAAe;YACf,eAAe;YACf,mBAAmB;AACnB,YAAA,eAAe,gCAGP,kBAAkB,CAAA,EAAA,CAAA,CAAA;AAEjB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,YA5B3B,YAAY;YACZ,WAAW;YACX,mBAAmB;YACnB,eAAe;YACf,SAAS;YACT,iBAAiB;YACjB,cAAc;YACd,mBAAmB;YACnB,kBAAkB;YAClB,cAAc;YACd,mBAAmB;YACnB,iBAAiB;YACjB,mBAAmB;YACnB,eAAe;YACf,gBAAgB;YAChB,aAAa;YACb,oBAAoB;YACpB,kBAAkB;YAClB,gBAAgB;YAChB,gBAAgB;YAChB,eAAe;YAEf,mBAAmB;AAEnB,YAAA,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA,EAAA,CAAA,CAAA;;4FAIvB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBA/B9B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,kBAAkB,CAAC;AAClC,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,WAAW;wBACX,mBAAmB;wBACnB,eAAe;wBACf,SAAS;wBACT,iBAAiB;wBACjB,cAAc;wBACd,mBAAmB;wBACnB,kBAAkB;wBAClB,cAAc;wBACd,mBAAmB;wBACnB,iBAAiB;wBACjB,mBAAmB;wBACnB,eAAe;wBACf,gBAAgB;wBAChB,aAAa;wBACb,oBAAoB;wBACpB,kBAAkB;wBAClB,gBAAgB;wBAChB,gBAAgB;wBAChB,eAAe;wBACf,eAAe;wBACf,mBAAmB;wBACnB,eAAe;AACf,wBAAA,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC;AACjC,qBAAA;oBACD,OAAO,EAAE,CAAC,kBAAkB,CAAC;AAC9B,iBAAA,CAAA;;;AC7DD;;AAEG;;;;"}