diff --git a/.github/conda/meta.yaml b/.github/conda/meta.yaml index 591f1d85..505462cc 100644 --- a/.github/conda/meta.yaml +++ b/.github/conda/meta.yaml @@ -24,6 +24,7 @@ requirements: - uvicorn - clingraph - Pillow + - clingexplaid build: number: {{ build }} diff --git a/.github/deploy.yml b/.github/deploy.yml index e06fe958..5f3b2d89 100644 --- a/.github/deploy.yml +++ b/.github/deploy.yml @@ -16,7 +16,7 @@ pip: conda: package_name: 'clinguin' - os: + os: - 'ubuntu-latest' channels_release: - 'potassco' @@ -48,6 +48,7 @@ conda: - uvicorn - clingraph - Pillow + - clingexplaid build: noarch: python diff --git a/.github/requirements.txt b/.github/requirements.txt index ee265ea6..2b256248 100644 --- a/.github/requirements.txt +++ b/.github/requirements.txt @@ -5,4 +5,5 @@ fastapi==0.103.* networkx uvicorn clingraph -Pillow \ No newline at end of file +Pillow +clingexplaid \ No newline at end of file diff --git a/.pylintrc b/.pylintrc index 0ad0af5f..c0aaa1bd 100644 --- a/.pylintrc +++ b/.pylintrc @@ -31,4 +31,4 @@ variable-rgx=^[a-z][a-z0-9]*((_[a-z0-9]+)*_?)?$ good-names=_,M,N,B,A,Nn,Bn,An [MESSAGE CONTROL] -disable=W0719,W0122,C0206,C0201,W0718,R0902,C0103 +disable=W0719,W0122,C0206,C0201,W0718,R0902,C0103,E1129 diff --git a/README.md b/README.md index a4351c22..cbf54840 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # Clinguin Clinguin enables ASP developers to **create interactive User Interface** (UI) prototypes **using only ASP**. -UIs are defined as sets of facts, which are then rendered by a fronted to provide continuous interaction with ASP solvers based on user-triggered events. +UIs are defined as sets of facts, which are then rendered to provide continuous interaction with the ASP solver *clingo* based on user-triggered events. ***Your UI definition would look like this!*** @@ -35,7 +35,7 @@ Clinguin includes a wide range of [clingo](https://potassco.org/clingo/) functio ***Is clinguin missing something for your application?*** -No worries! Clinguin can be extended with different functionalities and even frontend languages, take a look [at this guide](https://clinguin.readthedocs.io/en/latest/clinguin/backends.html#creating-your-own-backend). +No worries! Clinguin can be extended with different functionalities and even frontend languages, take a look [at this guide](https://clinguin.readthedocs.io/en/latest/clinguin/development/customBackend.html). ## Installation diff --git a/angular_frontend/package.json b/angular_frontend/package.json index 7318888e..f8e6e045 100644 --- a/angular_frontend/package.json +++ b/angular_frontend/package.json @@ -39,4 +39,4 @@ "karma-jasmine-html-reporter": "~2.1.0", "typescript": "~5.1.3" } -} +} \ No newline at end of file diff --git a/angular_frontend/src/app/app.component.scss b/angular_frontend/src/app/app.component.scss index 4c657156..21662e16 100644 --- a/angular_frontend/src/app/app.component.scss +++ b/angular_frontend/src/app/app.component.scss @@ -1,3 +1,3 @@ div.content-wrapper { - padding-top: 5%; + padding-top: 1%; } \ No newline at end of file diff --git a/angular_frontend/src/app/attribute-helper.service.ts b/angular_frontend/src/app/attribute-helper.service.ts index c70367a4..c3455740 100644 --- a/angular_frontend/src/app/attribute-helper.service.ts +++ b/angular_frontend/src/app/attribute-helper.service.ts @@ -2,69 +2,69 @@ import { Attribute, Injectable } from '@angular/core'; import { AttributeDto, ElementDto } from './types/json-response.dto'; @Injectable({ - providedIn: 'root' + providedIn: 'root' }) export class AttributeHelperService { - constructor() { } + constructor() { } - attrBackgroundColor(html:HTMLElement, attribute: AttributeDto) { + attrBackgroundColor(html: HTMLElement, attribute: AttributeDto) { let value = attribute.value html.style.backgroundColor = value } - attrHeight(html:HTMLElement, attribute: AttributeDto) { + attrHeight(html: HTMLElement, attribute: AttributeDto) { let value = attribute.value + "px" html.style.height = value } - attrWidth(html:HTMLElement, attribute: AttributeDto) { + attrWidth(html: HTMLElement, attribute: AttributeDto) { let value = attribute.value + "px" html.style.width = value } - setBorderHelper(html:HTMLElement, attributes: AttributeDto[]) { + setBorderHelper(html: HTMLElement, attributes: AttributeDto[]) { let borderWidth = Number(this.findGetAttributeValue("border_width", attributes, "0")) - let borderColor = this.findGetAttributeValue("border_color",attributes, "black") + let borderColor = this.findGetAttributeValue("border_color", attributes, "black") let borderStyle = "solid" this.setBorder(html, borderWidth, borderColor, borderStyle) } - setBorder(html:HTMLElement, borderWidth: number, borderColor: string, borderStyle: string) { + setBorder(html: HTMLElement, borderWidth: number, borderColor: string, borderStyle: string) { if (borderWidth > 0) { html.style.border = String(borderWidth) + "px " + borderStyle + " " + borderColor } } - addAttributes(html:HTMLElement, attributes : AttributeDto[]) { + addAttributes(html: HTMLElement, attributes: AttributeDto[]) { let attr_dict = [ - {key:"background_color",value:this.attrBackgroundColor}, - {key:"height", value:this.attrHeight}, - {key:"width", value:this.attrWidth}, + { key: "background_color", value: this.attrBackgroundColor }, + { key: "height", value: this.attrHeight }, + { key: "width", value: this.attrWidth }, ] attributes.forEach(attribute => { let index = attr_dict.findIndex(item => item.key == attribute.key) if (index >= 0) { - attr_dict[index].value(html,attribute) + attr_dict[index].value(html, attribute) } }) this.setHover(html, attributes) } - addGeneralAttributes(html:HTMLElement, attributes: AttributeDto[]) { - this.setGrid(html,attributes) + addGeneralAttributes(html: HTMLElement, attributes: AttributeDto[]) { + this.setGrid(html, attributes) this.setBorderHelper(html, attributes) } - setGrid(html: HTMLElement, attributes:AttributeDto[]) { + setGrid(html: HTMLElement, attributes: AttributeDto[]) { let gridRowStart = this.findAttribute("grid_row", attributes) let gridRowSpan = this.findAttribute("grid_row_span", attributes) @@ -86,7 +86,7 @@ export class AttributeHelperService { html.style.gridRow = String(gridRowStartN) + "/" + "span " + String(gridRowSpanN) } - + if (gridColumnStart != null) { let gridColumnStartN = Number(gridColumnStart.value) + 1 @@ -94,16 +94,16 @@ export class AttributeHelperService { } } - setHover(html: HTMLElement, attributes:AttributeDto[]) { + setHover(html: HTMLElement, attributes: AttributeDto[]) { - let onHover = this.findGetAttributeValue("on_hover", attributes,"false") - let onHoverBackgroundColor = this.findGetAttributeValue("on_hover_background_color", attributes,"white") - let onHoverForegroundColor = this.findGetAttributeValue("on_hover_foreground_color", attributes,"black") - let onHoverBorderColor = this.findGetAttributeValue("on_hover_border_color", attributes,"white") - let backgroundColor = this.findGetAttributeValue("background_color", attributes,"white") - let foregroundColor = this.findGetAttributeValue("foreground_color", attributes,"black") + let onHover = this.findGetAttributeValue("on_hover", attributes, "false") + let onHoverBackgroundColor = this.findGetAttributeValue("on_hover_background_color", attributes, "white") + let onHoverForegroundColor = this.findGetAttributeValue("on_hover_foreground_color", attributes, "black") + let onHoverBorderColor = this.findGetAttributeValue("on_hover_border_color", attributes, "white") + let backgroundColor = this.findGetAttributeValue("background_color", attributes, "white") + let foregroundColor = this.findGetAttributeValue("foreground_color", attributes, "black") let borderWidth = Number(this.findGetAttributeValue("border_width", attributes, "0")) - let borderColor = this.findGetAttributeValue("border_color",attributes, "black") + let borderColor = this.findGetAttributeValue("border_color", attributes, "black") let borderStyle = "solid" if (onHover == "true") { @@ -124,7 +124,7 @@ export class AttributeHelperService { } - textAttributes(html: HTMLElement, attributes : AttributeDto[]) { + textAttributes(html: HTMLElement, attributes: AttributeDto[]) { // NOw IS SUPPOSED TO BE SET WITH THE CLASSES @@ -133,66 +133,69 @@ export class AttributeHelperService { // let index = attributes.findIndex(item => item.key == "foreground_color") // if (index >= 0) { // color = String(attributes[index].value) - // } - // html.style.color = color + // } + // html.style.color = color // let fontSize = String(12) + "px" // let index = attributes.findIndex(item => item.key == "font_size") // if (index >= 0) { // fontSize = String(attributes[index].value) - // } + // } // html.style.fontSize = fontSize } - addClasses(html: Element, attributes : AttributeDto[], base_classes:string[], default_classes:string[], attrName: string ='class' ) { + addClasses(html: Element, attributes: AttributeDto[], base_classes: string[], default_classes: string[], attrName: string = 'class') { - base_classes.forEach(function (c){ + base_classes.forEach(function (c) { + if (html.classList.contains(c)) { + html.classList.remove(c) + } html.classList.add(c) }) let added = false - attributes.forEach(function (item){ - if (item.key==attrName){ + attributes.forEach(function (item) { + if (item.key == attrName) { added = true let c = String(item.value) html.classList.add(c) } }) - if (!added){ - default_classes.forEach(function (c){ + if (!added) { + default_classes.forEach(function (c) { html.classList.add(c) }) } - + } setAttributesDirectly(html: HTMLElement, attributes: AttributeDto[]) { - attributes.forEach((attr : AttributeDto) => { + attributes.forEach((attr: AttributeDto) => { (html.style)[attr.key] = attr.value }) } - findAttribute(key:string, attributes: AttributeDto[]) : AttributeDto | null { - let value = null - let index = attributes.findIndex(attr => attr.key == key) - if (index >= 0) { - value = attributes[index] - } - return value + findAttribute(key: string, attributes: AttributeDto[]): AttributeDto | null { + let value = null + let index = attributes.findIndex(attr => attr.key == key) + if (index >= 0) { + value = attributes[index] + } + return value } findGetAttributeValue(key: string, attributes: AttributeDto[], defaultValue: string) { - let value = defaultValue - let index = attributes.findIndex(attr => attr.key == key) - if (index >= 0) { - value = attributes[index].value - } - return value + let value = defaultValue + let index = attributes.findIndex(attr => attr.key == key) + if (index >= 0) { + value = attributes[index].value + } + return value } - setAbsoulteRelativePositions(parentChildLayout:string, html:HTMLElement, child:ElementDto) { + setAbsoulteRelativePositions(parentChildLayout: string, html: HTMLElement, child: ElementDto) { let posX = Number(this.findGetAttributeValue("pos_x", child.attributes, "-1")) let posY = Number(this.findGetAttributeValue("pos_y", child.attributes, "-1")) @@ -225,7 +228,7 @@ export class AttributeHelperService { } - setChildLayout(html:HTMLElement, attributes: AttributeDto[]) { + setChildLayout(html: HTMLElement, attributes: AttributeDto[]) { let attribute = this.findAttribute("child_layout", attributes) let flex_direction = this.findAttribute("flex_direction", attributes) @@ -251,16 +254,16 @@ export class AttributeHelperService { } } else { html.style.display = "flex" - if (flex_direction != null){ + if (flex_direction != null) { html.style.flexDirection = flex_direction.value - }else { + } else { html.style.flexDirection = "column" } } } - setVisibility(html:HTMLElement, attributes:AttributeDto[]) { + setVisibility(html: HTMLElement, attributes: AttributeDto[]) { let visibilityAttribute = this.findAttribute("visibility", attributes) if (visibilityAttribute != null) { if (visibilityAttribute.value == "hidden" || visibilityAttribute.value == "collapse") { diff --git a/angular_frontend/src/app/button/button.component.ts b/angular_frontend/src/app/button/button.component.ts index eb8d4c35..0b0851d8 100644 --- a/angular_frontend/src/app/button/button.component.ts +++ b/angular_frontend/src/app/button/button.component.ts @@ -10,7 +10,7 @@ import { ElementLookupService } from '../element-lookup.service'; styleUrls: ['./button.component.scss'] }) export class ButtonComponent { - @ViewChild("theButton",{static:false}) theButton! : ElementRef + @ViewChild("theButton", { static: false }) theButton!: ElementRef @Input() element: ElementDto | null = null @Input() parentLayout: string = "" @@ -19,7 +19,7 @@ export class ButtonComponent { disabledAttribute: boolean = false // class: string = "" - constructor (private cd: ChangeDetectorRef, private callbackService: CallBackHelperService, private attributeService: AttributeHelperService, private elementLookupService: ElementLookupService) {} + constructor(private cd: ChangeDetectorRef, private callbackService: CallBackHelperService, private attributeService: AttributeHelperService, private elementLookupService: ElementLookupService) { } ngAfterViewInit(): void { @@ -34,37 +34,37 @@ export class ButtonComponent { } } - setAttributes(attributes : AttributeDto[]) { - this.buttonLabel = this.attributeService.findGetAttributeValue("label",attributes,"") - // this.class = this.attributeService.findGetAttributeValue("class", attributes, "") + setAttributes(attributes: AttributeDto[]) { + this.buttonLabel = this.attributeService.findGetAttributeValue("label", attributes, "") + // this.class = this.attributeService.findGetAttributeValue("class", attributes, "") - let htmlDdbut = this.theButton.nativeElement + let htmlDdbut = this.theButton.nativeElement - this.attributeService.setAttributesDirectly(htmlDdbut, attributes) - this.attributeService.addAttributes(htmlDdbut, attributes) - this.attributeService.textAttributes(htmlDdbut, attributes) - this.attributeService.addClasses(htmlDdbut, attributes, ["btn"], ["btn-info"]) - this.attributeService.addGeneralAttributes(htmlDdbut, attributes) - - if (this.element != null) { - this.attributeService.setAbsoulteRelativePositions(this.parentLayout, htmlDdbut, this.element) - } - - let icon = htmlDdbut.children.item(0) - - this.attributeService.addClasses(icon, attributes, ["fa"], [], 'icon') - - let stringDisabled = this.attributeService.findGetAttributeValue("disabled", attributes, "false") - if (stringDisabled == "false") { - this.disabledAttribute = false - } else if (stringDisabled == "true") { - this.disabledAttribute = true - } else { - console.log("NOT SUPPORTED VALUE FOR DISABLED (assuming not disabled): ") - console.log(stringDisabled) - this.disabledAttribute = false - } + this.attributeService.setAttributesDirectly(htmlDdbut, attributes) + this.attributeService.addAttributes(htmlDdbut, attributes) + this.attributeService.textAttributes(htmlDdbut, attributes) + this.attributeService.addClasses(htmlDdbut, attributes, ["btn"], ["btn-info"]) + this.attributeService.addGeneralAttributes(htmlDdbut, attributes) - this.cd.detectChanges() + if (this.element != null) { + this.attributeService.setAbsoulteRelativePositions(this.parentLayout, htmlDdbut, this.element) + } + + let icon = htmlDdbut.children.item(0) + + this.attributeService.addClasses(icon, attributes, ["fa"], [], 'icon') + + let stringDisabled = this.attributeService.findGetAttributeValue("disabled", attributes, "false") + if (stringDisabled == "false") { + this.disabledAttribute = false + } else if (stringDisabled == "true") { + this.disabledAttribute = true + } else { + console.log("NOT SUPPORTED VALUE FOR DISABLED (assuming not disabled): ") + console.log(stringDisabled) + this.disabledAttribute = false + } + + this.cd.detectChanges() } } diff --git a/angular_frontend/src/app/callback-helper.service.ts b/angular_frontend/src/app/callback-helper.service.ts index 0048eb9d..1f99e88a 100644 --- a/angular_frontend/src/app/callback-helper.service.ts +++ b/angular_frontend/src/app/callback-helper.service.ts @@ -10,10 +10,10 @@ import { hide } from '@popperjs/core'; import { isEmpty, throwError } from 'rxjs'; -function aspArgumentSplitter(aspArguments: string) : string[] { +function aspArgumentSplitter(aspArguments: string): string[] { - let returnStrings : string[] = [] - let curString : string = "" + let returnStrings: string[] = [] + let curString: string = "" let bracketLevel = 0 @@ -53,15 +53,15 @@ function defaultClickContextHandler(event: Event) { if (hideAllContextMenus() == true) { return - } + } } } -function hideAllContextMenus() : boolean { +function hideAllContextMenus(): boolean { let contextMenuService = LocatorService.injector.get(ContextMenuService) let anyWasOpen = false - contextMenuService.contextMenus.forEach((item: {key:string, contextMenu:ElementDto}) => { + contextMenuService.contextMenus.forEach((item: { key: string, contextMenu: ElementDto }) => { let contextMenu = document.getElementById(item.key) if (contextMenu != null && contextMenu.style.display == "block") { @@ -71,9 +71,9 @@ function hideAllContextMenus() : boolean { }) return anyWasOpen -} +} -function handleRightClick( policy:string, event: Event) { +function handleRightClick(operation: string, event: Event) { event.preventDefault() event.stopPropagation() @@ -83,54 +83,54 @@ function handleRightClick( policy:string, event: Event) { let contextMenuService = LocatorService.injector.get(ContextMenuService) - let result = contextMenuService.retrieveContextValue(policy) + let result = contextMenuService.retrieveContextValue(operation) if (result != null) { if ("pageX" in event && "pageY" in event && typeof event.pageX == "number" && typeof event.pageY == "number") { - let contextMenu = document.getElementById(policy) + let contextMenu = document.getElementById(operation) if (contextMenu != null) { - if (contextMenu.style.display == "block"){ + if (contextMenu.style.display == "block") { contextMenu.style.display = "none" - } else { - contextMenu.style.display = 'block'; - contextMenu.style.left = event.pageX + "px"; - contextMenu.style.top = event.pageY + "px"; - } + } else { + contextMenu.style.display = 'block'; + contextMenu.style.left = event.pageX + "px"; + contextMenu.style.top = event.pageY + "px"; + } } } } - + } - -function handleUpdate(when:WhenDto, event: Event | null) { + +function handleUpdate(when: WhenDto, event: Event | null) { let elementLookupService = LocatorService.injector.get(ElementLookupService) - let policy = when.policy + let operation = when.operation - policy = policy.substring(1) - policy = policy.slice(0,-1) + operation = operation.substring(1) + operation = operation.slice(0, -1) - let splits = aspArgumentSplitter(policy) + let splits = aspArgumentSplitter(operation) let id = splits[0] let key = splits[1] - let value = splits[2] + let value = splits[2].replaceAll('"', '') - let elementLookup : ElementLookupDto | null = elementLookupService.getElement(id) + let elementLookup: ElementLookupDto | null = elementLookupService.getElement(id) if (elementLookup != null) { - if (elementLookup.element.type == "context_menu" && event!=null){ - if(key!="visibility" || value!="visible"){ - console.error("For updates to context menu only tuples of form (_,visibility,visible) are valid, but got: " +id+","+key +","+value) - }else{ - handleRightClick(id,event) + if (elementLookup.element.type == "context_menu" && event != null) { + if (key != "visibility" || value != "visible") { + console.error("For updates to context menu only tuples of form (_,visibility,visible) are valid, but got: " + id + "," + key + "," + value) + } else { + handleRightClick(id, event) } return } @@ -138,16 +138,16 @@ function handleUpdate(when:WhenDto, event: Event | null) { let found = false for (let index in tmpAttributes) { - let attribute : AttributeDto = tmpAttributes[index] + let attribute: AttributeDto = tmpAttributes[index] if (attribute.key == key) { found = true - tmpAttributes[index] = {"id":id, "key":key,"value":value} + tmpAttributes[index] = { "id": id, "key": key, "value": value } } } if (found == false) { - tmpAttributes.push({"id":id, "key":key,"value":value}) + tmpAttributes.push({ "id": id, "key": key, "value": value }) } elementLookup.element.attributes = tmpAttributes @@ -155,17 +155,19 @@ function handleUpdate(when:WhenDto, event: Event | null) { if (elementLookup.object != null) { if ("setAttributes" in elementLookup.object) { if (elementLookup.object.setAttributes != undefined && typeof elementLookup.object.setAttributes === 'function') { + elementLookup.object.setAttributes(tmpAttributes) } } } - if(elementLookup.object == null && elementLookup.element.type.startsWith('svg') && elementLookup.tagHtml!=null){ - elementLookup.tagHtml.style.setProperty(key,value.replaceAll('"','')) + if (elementLookup.object == null && elementLookup.element.type.startsWith('svg') && elementLookup.tagHtml != null) { + elementLookup.tagHtml.style.setProperty(key, value.replaceAll('"', '')) } if (elementLookup.tagHtml != null) { let childBearerService = LocatorService.injector.get(ChildBearerService) + childBearerService.setChildTagAttributes(elementLookup.tagHtml, elementLookup.element) } @@ -177,61 +179,99 @@ function handleUpdate(when:WhenDto, event: Event | null) { } -function replaceContext(policy_string:string, optional:boolean){ +function replaceContext(operation_string: string) { + let contextService = LocatorService.injector.get(ContextService) - let regex = /_context_value\(([^)]*)\)/ - if (optional){ - regex = /_context_value_optional\(([^)]*)\)/ - } + let regex = /_context_value\((?:"([^"]*)"|(\w+)|(\w+\(\s*(?:"[^"]*"|\w+)\s*\)))(?:,\s*(?:"([^"]*)"|(\w+)|(\w+\(\s*("[^"]*"|\w+)\s*\))))?(?:,\s*(?:"([^"]*)"|(\w+)|(\w+\(\s*(?:"[^"]*"|\w+)\s*\))))?\)/g + // ^(\w+)$|^(\w+\(\s*(?:"[^"]*"|\w+)\s*\)) + let regex_const = /^(\w+)$|^(\w+\((?:"([^"]*)"|(\w+)|(\w+\(\s*(?:"[^"]*"|\w+)\s*\)))((?:,\s*(?:"([^"]*)"|(\w+)|(\w+\(\s*("[^"]*"|\w+)\s*\))))?)*\))$/ + // console.log("Replacing context") + // console.log(operation_string) + let match = regex.exec(operation_string) + + while (match != null) { + + // console.log("A match") + + let match_instance = match[0] + let match_group = match[1] || match[2] || match[3] + let match_type = match[4] || match[5] || match[6] + let match_default = match[7] || match[8] || match[9] + // console.log(match_group) + let new_value = contextService.retrieveContextValue(match_group) + // console.log(new_value) + if (new_value == null || new_value == "") { + if (match_default == null) { + throw new Error("Missing required value for " + match_group); + } - let match = regex.exec(policy_string) - while(match != null) { - let match_group = match[1] + new_value = match_default + } - let new_value = contextService.retrieveContextValue(match_group) - if (new_value.length == 0 && !optional){ - throw new Error("Missing required value for " + match_group); + + let isNumber = /^[0-9]*$/.test(new_value); + + let isConst = regex_const.test(new_value); + + // console.log("new value!", new_value) + let isQuoted = new_value.length > 1 && new_value[0] == '"' && new_value.slice(-1) == '"'; + + // console.log("isQuoted", isQuoted) + // console.log("isQuoted x", new_value[0]) + // console.log("isQuoted x", new_value.slice(-1)) + let mustBeQuoted = !isNumber && !isConst && !isQuoted + + if (match_type != null) { + if (match_type != "str" && match_type != "int" && match_type != "const") { + throw new Error("Not a valid type " + match_type + ". Should be str, int or const."); + } + if (match_type == "str" && !isQuoted) { + // console.log("Adding quotes 1") + new_value = '"' + new_value + '"' + } + else if (match_type == "int" && !isNumber) { + throw new Error("Expected a number but got " + new_value); + } + if (match_type == "const" && !isConst) { + throw new Error("Expected a constant that can be parsed to an atom, but got: " + new_value); + } } - function isNumber(s:string) { - return /^[0-9]*$/.test(s); + console.log("out"); + + if (match_type == null && mustBeQuoted) { + // console.log("Adding quotes 2") + new_value = '"' + new_value + '"' } + // console.log("Will replace ", match_instance, " by ", new_value) + operation_string = operation_string.replace(match_instance, new_value) + // console.log(operation_string) + regex = /_context_value\((?:"([^"]*)"|(\w+)|(\w+\(\s*(?:"[^"]*"|\w+)\s*\)))(?:,\s*(?:"([^"]*)"|(\w+)|(\w+\(\s*("[^"]*"|\w+)\s*\))))?(?:,\s*(?:"([^"]*)"|(\w+)|(\w+\(\s*(?:"[^"]*"|\w+)\s*\))))?\)/g - if (!isNumber(new_value) && new_value.length>0) { - if ( new_value[0] === new_value[0].toUpperCase() && new_value[0]!='"'){ - new_value = '"'+new_value+'"' - } - } - policy_string = policy_string.replace(regex, new_value) - - match = regex.exec(policy_string) + match = regex.exec(operation_string) } - return policy_string + return operation_string } -function handleCallback(when:WhenDto, event: Event) { +function handleCallback(when: WhenDto, event: Event | null) { let frontendService = LocatorService.injector.get(DrawFrontendService) - let policy_string = when.policy + let operation_string = when.operation - policy_string = replaceContext(policy_string, true) - policy_string = replaceContext(policy_string, false) + operation_string = replaceContext(operation_string) - when.policy = policy_string + when.operation = operation_string - frontendService.policyPost(when) + frontendService.operationPost(when) } -function handleContext(when:WhenDto, event: Event | null) { +function handleContext(when: WhenDto, event: Event | null) { let contextService = LocatorService.injector.get(ContextService) - let policy = when.policy - - policy = replaceContext(policy, true) - policy = replaceContext(policy, false) - - if (policy[0]=='('){ - policy = policy.substring(1) - policy = policy.slice(0,-1) - let splits = aspArgumentSplitter(policy) + let operation = when.operation + operation = replaceContext(operation) + if (operation[0] == '(') { + operation = operation.substring(1) + operation = operation.slice(0, -1) + let splits = aspArgumentSplitter(operation) if (splits.length >= 2) { if (splits.length > 2) { console.log("ATTENTION, CONTEXT LENGTH GREATER THAN 2 FOR") @@ -240,14 +280,14 @@ function handleContext(when:WhenDto, event: Event | null) { let key = splits[0] let value = splits[1] - if (event!=null){ + if (event != null) { let regex = /_value/g - let eventTarget : EventTarget | null = event.target - + let eventTarget: EventTarget | null = event.target + if (eventTarget != null && "value" in eventTarget) { let match = value.match(regex) - + if (match != null && typeof eventTarget.value === "string") { if (eventTarget.value == "") { console.log("EVENT TARGET IS EMPTY") @@ -260,17 +300,17 @@ function handleContext(when:WhenDto, event: Event | null) { } for (let index = 2; index < splits.length; index++) { - value = value + "," + splits[index] + value = value + "," + splits[index] } contextService.addContext(key, value) return } - } + } - let message = "The value of context event should be a tuple of size 2, but got " +when.policy + let message = "The value of context event should be a tuple of size 2, but got " + when.operation console.error(message) let frontendService = LocatorService.injector.get(DrawFrontendService) - frontendService.postMessage(message,"warning") + frontendService.postMessage(message, "warning") } @Injectable({ @@ -279,117 +319,126 @@ function handleContext(when:WhenDto, event: Event | null) { export class CallBackHelperService { constructor(private frontendService: DrawFrontendService) { - document.onclick = defaultClickContextHandler; - document.oncontextmenu = defaultClickContextHandler; - } - - findCallback(action: string, callbacks: WhenDto[]): WhenDto | null { - let value = null - let index = callbacks.findIndex(callback => callback.actionType == action) - if (index >= 0) { - value = callbacks[index] - } - return value - } - - setCallbacks(html: HTMLElement, dos:WhenDto[]) { - this.handleEvent(html, dos, "click", "click") - this.handleEvent(html, dos, "input", "input") - this.handleEvent(html, dos, "right_click", "contextmenu") - this.handleEvent(html, dos, "mouseenter", "mouseenter") - this.handleEvent(html, dos, "mouseleave", "mouseleave") - this.handleEvent(html, dos, "load", "load") - this.handleEvent(html, dos, "dblclick", "dblclick") + document.onclick = defaultClickContextHandler; + document.oncontextmenu = defaultClickContextHandler; + } + + findCallback(action: string, callbacks: WhenDto[]): WhenDto | null { + let value = null + let index = callbacks.findIndex(callback => callback.actionType == action) + if (index >= 0) { + value = callbacks[index] } + return value + } - handleEvent(html: HTMLElement, dos:WhenDto[], supportedAttributeName:string = "", htmlEventName:string = "") { - let allEvents:WhenDto[] = [] - dos.forEach((when:WhenDto) => { - if (when.actionType == supportedAttributeName) { - allEvents.push(when) - } - }) - - if (allEvents.length > 0 && htmlEventName != "") { - if(supportedAttributeName=="load"){ - allEvents.forEach((when:WhenDto) => { - if (when.interactionType == "context") { - handleContext(when, null) - } - if (when.interactionType == "update") { - handleUpdate(when, null) - } - }) - return - } - if (supportedAttributeName == "click") { - html.style.cursor = "pointer" - } - html.addEventListener(htmlEventName,function(event: Event){ - allEvents.sort( function (a, b) { - if (a.interactionType < b.interactionType) { - return 1; - } - if (a.interactionType > b.interactionType) { - return -1; - } - return 0; - }); - - const updates = allEvents.filter((w) => w.interactionType == "update") - const context = allEvents.filter((w) => w.interactionType == "context") - const call = allEvents.filter((w) => w.interactionType == "call" || w.interactionType == "callback") - // const context_menu = allEvents.filter((w) => w.interactionType == "show_context_menu" ) - - // context_menu.forEach((when:WhenDto) => { - // try{ - // if (when.interactionType == "update") { - // handleUpdate(when, event) - // } else if (when.interactionType == "context") { - // handleContext(when, event) - // } else if (when.interactionType == "call" || when.interactionType == "callback") { - // handleCallback(when, event) - // } - // }catch(error:any){ - // let frontendService = LocatorService.injector.get(DrawFrontendService) - // frontendService.postMessage(error.message,"warning") - // } - // }) - - updates.forEach((when:WhenDto) => { - try{ - handleUpdate(when, event) - }catch(error:any){ - let frontendService = LocatorService.injector.get(DrawFrontendService) - frontendService.postMessage(error.message,"warning") - } - }) + setCallbacks(html: HTMLElement, dos: WhenDto[]) { + this.handleEvent(html, dos, "click", "click") + this.handleEvent(html, dos, "input", "input") + this.handleEvent(html, dos, "right_click", "contextmenu") + this.handleEvent(html, dos, "mouseenter", "mouseenter") + this.handleEvent(html, dos, "mouseleave", "mouseleave") + this.handleEvent(html, dos, "load", "load") + this.handleEvent(html, dos, "dblclick", "dblclick") + } - context.forEach((when:WhenDto) => { - try{ - handleContext(when, event) - }catch(error:any){ - let frontendService = LocatorService.injector.get(DrawFrontendService) - frontendService.postMessage(error.message,"warning") - } - }) + handleEvent(html: HTMLElement, dos: WhenDto[], supportedAttributeName: string = "", htmlEventName: string = "") { + let allEvents: WhenDto[] = [] + dos.forEach((when: WhenDto) => { + if (when.actionType == supportedAttributeName) { + allEvents.push(when) + } + }) + if (allEvents.length > 0 && htmlEventName != "") { + if (supportedAttributeName == "load") { - if (call.length>1) { - call[0].policy = "(" + call.map(x=>{return x.policy}).join(',') + ")" + allEvents.forEach((when: WhenDto) => { + if (when.interactionType == "context") { + handleContext(when, null) + } + if (when.interactionType == "update") { + handleUpdate(when, null) } - call.forEach((when:WhenDto) => { - try{ - handleCallback(call[0],event) - }catch(error:any){ + if (when.interactionType == "call" || when.interactionType == "callback") { + console.log("call") + try { + handleCallback(when, null) + } catch (error: any) { let frontendService = LocatorService.injector.get(DrawFrontendService) - frontendService.postMessage(error.message,"warning") + frontendService.postMessage(error.message, "warning") } - }) + } }) - + return } + if (supportedAttributeName == "click") { + html.style.cursor = "pointer" + } + html.addEventListener(htmlEventName, function (event: Event) { + allEvents.sort(function (a, b) { + if (a.interactionType < b.interactionType) { + return 1; + } + if (a.interactionType > b.interactionType) { + return -1; + } + return 0; + }); + + const updates = allEvents.filter((w) => w.interactionType == "update") + const context = allEvents.filter((w) => w.interactionType == "context") + const call = allEvents.filter((w) => w.interactionType == "call" || w.interactionType == "callback") + // const context_menu = allEvents.filter((w) => w.interactionType == "show_context_menu" ) + + // context_menu.forEach((when:WhenDto) => { + // try{ + // if (when.interactionType == "update") { + // handleUpdate(when, event) + // } else if (when.interactionType == "context") { + // handleContext(when, event) + // } else if (when.interactionType == "call" || when.interactionType == "callback") { + // handleCallback(when, event) + // } + // }catch(error:any){ + // let frontendService = LocatorService.injector.get(DrawFrontendService) + // frontendService.postMessage(error.message,"warning") + // } + // }) + + updates.forEach((when: WhenDto) => { + try { + handleUpdate(when, event) + } catch (error: any) { + let frontendService = LocatorService.injector.get(DrawFrontendService) + frontendService.postMessage(error.message, "warning") + } + }) + + context.forEach((when: WhenDto) => { + try { + handleContext(when, event) + } catch (error: any) { + let frontendService = LocatorService.injector.get(DrawFrontendService) + frontendService.postMessage(error.message, "warning") + } + }) + + if (call.length > 1) { + call[0].operation = "(" + call.map(x => { return x.operation }).join(',') + ")" + } + call.forEach((when: WhenDto) => { + try { + handleCallback(call[0], event) + } catch (error: any) { + let frontendService = LocatorService.injector.get(DrawFrontendService) + frontendService.postMessage(error.message, "warning") + } + }) + }) + } - + } + } diff --git a/angular_frontend/src/app/canvas/canvas.component.ts b/angular_frontend/src/app/canvas/canvas.component.ts index 439efe84..edbd9a24 100644 --- a/angular_frontend/src/app/canvas/canvas.component.ts +++ b/angular_frontend/src/app/canvas/canvas.component.ts @@ -2,7 +2,7 @@ import { ChangeDetectorRef, Component, ElementRef, Input, ViewChild } from '@ang import { AttributeDto, WhenDto, ElementDto } from '../types/json-response.dto'; import { CallBackHelperService } from '../callback-helper.service'; import { AttributeHelperService } from '../attribute-helper.service'; -import { Buffer } from "buffer";import { DATE_PIPE_DEFAULT_OPTIONS } from '@angular/common'; +import { Buffer } from "buffer"; import { DATE_PIPE_DEFAULT_OPTIONS } from '@angular/common'; import { ElementLookupService } from '../element-lookup.service'; ; @@ -12,8 +12,8 @@ import { ElementLookupService } from '../element-lookup.service'; styleUrls: ['./canvas.component.scss'] }) export class CanvasComponent { - @ViewChild("theImage",{static:false}) theImage! : ElementRef - @ViewChild("svgContainer",{static:false}) svgContainer!:ElementRef; + @ViewChild("theImage", { static: false }) theImage!: ElementRef + @ViewChild("svgContainer", { static: false }) svgContainer!: ElementRef; @Input() element: ElementDto | null = null @Input() parentLayout: string = "" @@ -24,18 +24,18 @@ export class CanvasComponent { imageType: string = "" - constructor (private cd: ChangeDetectorRef, private callbackService: CallBackHelperService, private attributeService: AttributeHelperService, private elementLookupService: ElementLookupService) {} + constructor(private cd: ChangeDetectorRef, private callbackService: CallBackHelperService, private attributeService: AttributeHelperService, private elementLookupService: ElementLookupService) { } ngAfterViewInit(): void { if (this.element != null) { this.elementLookupService.addElementObject(this.element.id, this, this.element) - + let image = this.attributeService.findAttribute("image", this.element.attributes) let image_type = this.attributeService.findAttribute("image_type", this.element.attributes) if (image != null && image_type != null && image_type.value.startsWith("clingraph")) { - this.svgImageHandler(this.element, image, image_type) + this.svgImageHandler(this.element, image, image_type) } else { this.defaultImageHandler(this.element, image) } @@ -48,18 +48,18 @@ export class CanvasComponent { console.log("TODO?") } - svgImageHandler(element: ElementDto, image: AttributeDto, imageType : AttributeDto) { - - const decodeBase64 = (str: string):string => Buffer.from(str, 'base64').toString('binary'); + svgImageHandler(element: ElementDto, image: AttributeDto, imageType: AttributeDto) { + + const decodeBase64 = (str: string): string => Buffer.from(str, 'base64').toString('binary'); const regexPattern: RegExp = /\(([^,]+),\s*([^)]+)\)/; this.imageType = "svg" this.cd.detectChanges() - + // Add the SVG let svgString = decodeBase64(image.value) - this.svgContainer.nativeElement.innerHTML = svgString + this.svgContainer.nativeElement.innerHTML = svgString this.cd.detectChanges() @@ -68,24 +68,24 @@ export class CanvasComponent { // let svgEdgeElements = this.svgContainer.nativeElement.querySelectorAll(".edge") // console.log(svgNodeElements) - let nodeIdNodeElementLookup : {"key":string, "value":ElementDto}[] = [] + let nodeIdNodeElementLookup: { "key": string, "value": ElementDto }[] = [] element.children.forEach(child => { // console.log(child) let id_attr = this.attributeService.findAttribute("clingraph_id", child.attributes) if (id_attr != null) { let key = id_attr.value - if (child.type=="svg_edge"){ - const match = key.match(regexPattern); - if (!match){ - console.error("Invalid edge format expected a tuple (X,Y) but got ", key) - }else{ - key = match[1].replaceAll('"','')+"--"+ match[2].replaceAll('"','') - let key2 = match[1].replaceAll('"','')+"->"+ match[2].replaceAll('"','') - nodeIdNodeElementLookup.push({"key":key2,"value":child}) - } + if (child.type == "svg_edge") { + const match = key.match(regexPattern); + if (!match) { + console.error("Invalid edge format expected a tuple (X,Y) but got ", key) + } else { + key = match[1].replaceAll('"', '') + "--" + match[2].replaceAll('"', '') + let key2 = match[1].replaceAll('"', '') + "->" + match[2].replaceAll('"', '') + nodeIdNodeElementLookup.push({ "key": key2, "value": child }) + } } - nodeIdNodeElementLookup.push({"key":key,"value":child}) + nodeIdNodeElementLookup.push({ "key": key, "value": child }) } }) @@ -93,27 +93,27 @@ export class CanvasComponent { this.addEventListeners(svgNodeUiNodeAssociationList) - + this.cd.detectChanges() } - generateSvgNodeUiNodeAssociationList(svgNodeElements : any, nodeIdNodeElementLookup : {"key":string, "value":ElementDto}[]) { - + generateSvgNodeUiNodeAssociationList(svgNodeElements: any, nodeIdNodeElementLookup: { "key": string, "value": ElementDto }[]) { + // console.log(nodeIdNodeElementLookup) - let svgNodeUiNodeAssociationList : {"svg":HTMLElement, "ui":ElementDto}[] = [] + let svgNodeUiNodeAssociationList: { "svg": HTMLElement, "ui": ElementDto }[] = [] - svgNodeElements.forEach((svgNodeElement : HTMLElement) => { + svgNodeElements.forEach((svgNodeElement: HTMLElement) => { // svgNodeElement.tooltip('hide') - let correspondingElementDtoNode : null | ElementDto = null + let correspondingElementDtoNode: null | ElementDto = null // console.error("----") // console.error(svgNodeElement.id) - nodeIdNodeElementLookup.forEach((item:{"key":string,"value":ElementDto}) => { + nodeIdNodeElementLookup.forEach((item: { "key": string, "value": ElementDto }) => { if (svgNodeElement.id == item.key) { correspondingElementDtoNode = item.value } else { // if (svgNodeElement.id.startsWith("edge")){ - // key = + // key = // } for (const child of Array.from(svgNodeElement.children)) { if (child.tagName == "title") { @@ -125,25 +125,24 @@ export class CanvasComponent { } } }) - + if (correspondingElementDtoNode != null) { this.elementLookupService.addElementTagHTML(correspondingElementDtoNode['id'], svgNodeElement, correspondingElementDtoNode) - svgNodeUiNodeAssociationList.push({"svg":svgNodeElement,"ui":correspondingElementDtoNode}) + svgNodeUiNodeAssociationList.push({ "svg": svgNodeElement, "ui": correspondingElementDtoNode }) } else { console.log("Warning: Could not find for the following svgElement a corresponding clingraph node or edge!") - console.log(svgNodeElement) } }) return svgNodeUiNodeAssociationList } - addEventListeners(svgNodeUiNodeAssociationList : {"svg":HTMLElement, "ui":ElementDto}[]) { - - svgNodeUiNodeAssociationList.forEach((elem : {"svg":HTMLElement, "ui":ElementDto}) => { + addEventListeners(svgNodeUiNodeAssociationList: { "svg": HTMLElement, "ui": ElementDto }[]) { + + svgNodeUiNodeAssociationList.forEach((elem: { "svg": HTMLElement, "ui": ElementDto }) => { let uiElement = elem.ui - let clickRelatedDoList : WhenDto[] = [] + let clickRelatedDoList: WhenDto[] = [] this.callbackService.setCallbacks(elem.svg, elem.ui.when) /* @@ -176,11 +175,11 @@ export class CanvasComponent { } - defaultImageHandler(element : ElementDto, image : AttributeDto | null) { + defaultImageHandler(element: ElementDto, image: AttributeDto | null) { this.imageType = "normal" - + this.cd.detectChanges() - + let htmlDdbut = this.theImage.nativeElement this.attributeService.addAttributes(htmlDdbut, element.attributes) @@ -192,7 +191,7 @@ export class CanvasComponent { let imgPath = this.attributeService.findAttribute("image_path", element.attributes) if (image != null) { - this.imageSource ="data:image/png;base64," + image.value + this.imageSource = "data:image/png;base64," + image.value } else if (imgPath != null) { this.imageSource = imgPath.value } diff --git a/angular_frontend/src/app/clingraphviz/main-page/main-page.component.ts b/angular_frontend/src/app/clingraphviz/main-page/main-page.component.ts index ba07aa7e..3f4da55e 100644 --- a/angular_frontend/src/app/clingraphviz/main-page/main-page.component.ts +++ b/angular_frontend/src/app/clingraphviz/main-page/main-page.component.ts @@ -16,32 +16,32 @@ export class MainPageComponent implements AfterViewInit { @Input() element: ElementDto | null = null @ViewChild("svgContainer") - svgContainer!:ElementRef; + svgContainer!: ElementRef; optionsForm: FormGroup = new FormGroup({}) svgString = "" type = "" - nodeOptionsList:NodeOptions[] = [] + nodeOptionsList: NodeOptions[] = [] currID: string = "" - optionsList: (Input_Option|Select_Option)[] = [] + optionsList: (Input_Option | Select_Option)[] = [] errStr: string = "" - constructor(private attributeService: AttributeHelperService, private frontendService: DrawFrontendService, private fb:FormBuilder, private cd: ChangeDetectorRef, private aspService:ASPtranslateService){} - //private svgService: SvgServiceService } + constructor(private attributeService: AttributeHelperService, private frontendService: DrawFrontendService, private fb: FormBuilder, private cd: ChangeDetectorRef, private aspService: ASPtranslateService) { } + //private svgService: SvgServiceService } ngAfterViewInit(): void { if (this.element != null) { let data = this.attributeService.findAttribute("clingraph_interactive", this.element.attributes) if (data != null) { - let clingraph_viz_data : ClingraphVizDto = data as ClingraphVizDto + let clingraph_viz_data: ClingraphVizDto = data as ClingraphVizDto this.svgString = clingraph_viz_data.data; this.svgContainer.nativeElement.innerHTML = this.svgString - this.nodeOptionsList = clingraph_viz_data.option_data; + this.nodeOptionsList = clingraph_viz_data.option_data; console.log("NodeOptions after init:", this.nodeOptionsList) - console.log("form after init: ",this.optionsForm) + console.log("form after init: ", this.optionsForm) this.cd.detectChanges() } @@ -49,34 +49,34 @@ export class MainPageComponent implements AfterViewInit { } } - retrieveSelectOptions(opt:(Input_Option|Select_Option)){ - if("options" in opt){ + retrieveSelectOptions(opt: (Input_Option | Select_Option)) { + if ("options" in opt) { return opt.options } else { return [] } } - handleNodeClick(event:Event){ - console.log("clicked") + handleNodeClick(event: Event) { + // console.log("clicked") let element = event.target as HTMLElement let parent = element.parentNode as HTMLElement - console.log(element) - console.log(parent) - if(parent !== null && parent.nodeName == 'g'){ - console.log("past first") + // console.log(element) + // console.log(parent) + if (parent !== null && parent.nodeName == 'g') { + // console.log("past first") let title = parent.getElementsByTagName("title")[0] - console.log(title) - if(title !== null){ - console.log("past second") + // console.log(title) + if (title !== null) { + // console.log("past second") const compId = title.textContent - if(compId !== null && compId !== ""){ - if(parent.id.startsWith("node")){ - console.log("clicked node with ID: ", compId) + if (compId !== null && compId !== "") { + if (parent.id.startsWith("node")) { + // console.log("clicked node with ID: ", compId) this.type = "node" this.updateOptions(compId, "node") - } else if(element.id.startsWith("edge")){ - console.log("clicked") + } else if (element.id.startsWith("edge")) { + // console.log("clicked") this.type = "edge" this.updateOptions(compId, "edge") } @@ -85,57 +85,59 @@ export class MainPageComponent implements AfterViewInit { } } - checkClick(event:Event){ + checkClick(event: Event) { console.log("clicked box") let target = (event.target as HTMLElement) console.log(target.getAttribute("value")) console.log(target.getAttribute("checked")) - console.log("form: ",this.optionsForm) + console.log("form: ", this.optionsForm) } - updateOptions(id:string, compType:string){ + updateOptions(id: string, compType: string) { this.optionsList.forEach((val) => { val.state = this.optionsForm.value[val.name] }) this.currID = id - let list = this.nodeOptionsList.filter((val) => {return val.id == id && val.compType == compType}) - if(list.length != 1){ + let list = this.nodeOptionsList.filter((val) => { return val.id == id && val.compType == compType }) + if (list.length != 1) { console.log(`Something went wrong: There is more than one or no node/edge with id ${id} in the options list!`) this.errStr = `Something went wrong: There is more than one or no node/edge with id ${id} in the options list!` } else { - this.optionsList = list.map(((val) => {return val.options})).flat() + this.optionsList = list.map(((val) => { return val.options })).flat() let group = new FormGroup({}) this.optionsList.forEach((val) => { - if(val.type == "checkbox"){ + if (val.type == "checkbox") { let check = val.state == "true" || val.state == true ? true : false - group.addControl(val.name,new FormControl(check)) + group.addControl(val.name, new FormControl(check)) } else { - group.addControl(val.name,new FormControl(val.state)) + group.addControl(val.name, new FormControl(val.state)) } }) - this.optionsForm = group - console.log("form after update: ",this.optionsForm) - console.log(this.nodeOptionsList) + this.optionsForm = group + console.log("form after update: ", this.optionsForm) + console.log(this.nodeOptionsList) + } } -} - submitForm(){ + submitForm() { this.errStr = "" let asp: string[] = [] let form = this.optionsForm.value console.log("Form: ", form) this.optionsList.forEach((val) => { - val.state = form[val.name] + val.state = form[val.name] + }) + this.nodeOptionsList.forEach((val) => { + val.options.forEach((opt) => { + asp.push(this.aspService.toUserInputASP(val.compType, val.id, opt.type, opt.name, opt.state)) }) - this.nodeOptionsList.forEach((val) => {val.options.forEach((opt) => { - asp.push(this.aspService.toUserInputASP(val.compType,val.id,opt.type,opt.name,opt.state)) - })}) - let aspString:string = asp.join(",") - let req = {"function":`graphUpdate(${aspString})`} + }) + let aspString: string = asp.join(",") + let req = { "function": `graphUpdate(${aspString})` } console.log(req) this.frontendService.uncheckedPost(req as GraphRequest) } - + } diff --git a/angular_frontend/src/app/draw-frontend.service.ts b/angular_frontend/src/app/draw-frontend.service.ts index 29868d8b..e69567a6 100644 --- a/angular_frontend/src/app/draw-frontend.service.ts +++ b/angular_frontend/src/app/draw-frontend.service.ts @@ -8,13 +8,15 @@ import { Subject } from 'rxjs'; import { HttpService } from './http.service'; import { ServerRequest } from './types/server-request'; import { ContextService } from './context.service'; +import { LocatorService } from './locator.service'; +import { ElementLookupDto, ElementLookupService } from './element-lookup.service'; @Injectable({ - providedIn: 'root' + providedIn: 'root' }) export class DrawFrontendService { - frontendJson : Subject = new Subject() + frontendJson: Subject = new Subject() menuBar: Subject = new Subject() messageLists: Subject = new Subject() contextMenus: Subject = new Subject() @@ -26,36 +28,52 @@ export class DrawFrontendService { constructor(private httpService: HttpService, private httpClient: HttpClient, private contextService: ContextService) { } - initialGet() : void { + initialGet(): void { + let loader = document.getElementById("loader") + + loader?.removeAttribute("hidden") + this.httpService.get().subscribe( - {next: (data:ElementDto) => { - this.lastData = data - this.frontendJson.next(data) - }}) + { + next: (data: ElementDto) => { + this.lastData = data + this.frontendJson.next(data) + loader?.setAttribute("hidden", "true") + } + }) + } - policyPost(callback: WhenDto) : void { + operationPost(callback: WhenDto): void { let context = this.contextService.getContext() + let loader = document.getElementById("loader") + loader?.removeAttribute("hidden") + + this.httpService.post(callback.operation, context).subscribe( + { + next: (data: ElementDto) => { + this.lastData = data + this.frontendJson.next(data) + loader?.setAttribute("hidden", "true") + } + }) - this.httpService.post(callback.policy, context).subscribe( - {next: (data:ElementDto) => { - this.lastData = data - this.frontendJson.next(data) - }}) } - uncheckedPost(serverRequest: ServerRequest) : void { + uncheckedPost(serverRequest: ServerRequest): void { this.httpClient.post(this.backend_URI + "/backend", serverRequest).subscribe( - //this.httpService.post(serverRequest.function).subscribe( - {next: (data:ElementDto) => { - this.lastData = data - this.frontendJson.next(data) - }}) + //this.httpService.post(serverRequest.function).subscribe( + { + next: (data: ElementDto) => { + this.lastData = data + this.frontendJson.next(data) + } + }) } - detectCreateMenuBar(element:ElementDto) { + detectCreateMenuBar(element: ElementDto) { if (element.type == "menu_bar") { this.menuBar.next(element) } else { @@ -65,7 +83,7 @@ export class DrawFrontendService { } } - getAllMessagesContextMenus(element:ElementDto, messageList:ElementDto[], contextMenuList: ElementDto[]) { + getAllMessagesContextMenus(element: ElementDto, messageList: ElementDto[], contextMenuList: ElementDto[]) { if (element.type == "message") { messageList.push(element) @@ -78,12 +96,12 @@ export class DrawFrontendService { } } - postMessage(message:string, type:string="danger"){ - let messageList : ElementDto[] = [this.getErrorMessage(message)] + postMessage(message: string, type: string = "danger") { + let messageList: ElementDto[] = [this.getErrorMessage(message)] this.messageLists.next(messageList) } - - getErrorMessage(message:string, type:string="danger"){ + + getErrorMessage(message: string, type: string = "danger") { let messageElement: ElementDto = { "id": "client_error", "type": "message", @@ -92,7 +110,7 @@ export class DrawFrontendService { { "id": "client_error", "key": "message", - "value": message + "value": message }, { "id": "client_error", diff --git a/angular_frontend/src/app/dropdown-menu/dropdown-menu.component.ts b/angular_frontend/src/app/dropdown-menu/dropdown-menu.component.ts index c5c0df66..9e27fc4e 100644 --- a/angular_frontend/src/app/dropdown-menu/dropdown-menu.component.ts +++ b/angular_frontend/src/app/dropdown-menu/dropdown-menu.component.ts @@ -14,15 +14,15 @@ import { CallBackHelperService } from '../callback-helper.service'; }) export class DropdownMenuComponent { // Why does the dropdown need this? - @Input() element : ElementDto | null = null + @Input() element: ElementDto | null = null @Input() parentLayout: string = "" - @ViewChild('ddbut', {static:true}) ddbut! : ElementRef + @ViewChild('ddbut', { static: true }) ddbut!: ElementRef - buttonLabel : string = "" - dropDownMenuItems : DropdownMenuItemChild[] = [] + buttonLabel: string = "" + dropDownMenuItems: DropdownMenuItemChild[] = [] - constructor(private attributeService: AttributeHelperService, private cd: ChangeDetectorRef, private frontendService: DrawFrontendService, @Inject(DOCUMENT) document: Document, private elementLookupService: ElementLookupService, private callbackHelperService: CallBackHelperService) { + constructor(private attributeService: AttributeHelperService, private cd: ChangeDetectorRef, private frontendService: DrawFrontendService, @Inject(DOCUMENT) document: Document, private elementLookupService: ElementLookupService, private callbackHelperService: CallBackHelperService) { } @@ -33,7 +33,7 @@ export class DropdownMenuComponent { this.element.children.forEach(child => { - let childLabel = this.attributeService.findGetAttributeValue("label",child.attributes,"") + let childLabel = this.attributeService.findGetAttributeValue("label", child.attributes, "") let childObject = new DropdownMenuItemChild(childLabel, child) @@ -43,7 +43,7 @@ export class DropdownMenuComponent { this.cd.detectChanges() - let htmlChild : HTMLElement | null = document.getElementById(child.id) + let htmlChild: HTMLElement | null = document.getElementById(child.id) if (htmlChild != null) { childObject.setHtmlElement(htmlChild) childObject.setAttributes(child.attributes) @@ -51,18 +51,18 @@ export class DropdownMenuComponent { this.callbackHelperService.setCallbacks(htmlChild, child.when) let icon = htmlChild.children.item(0) - + if (icon != null) { - + this.attributeService.addClasses(icon, child.attributes, ["fa"], [], 'icon') } - + } }) this.cd.detectChanges() - + this.setAttributes(this.element.attributes) } } @@ -73,7 +73,7 @@ export class DropdownMenuComponent { if (buttonLabel != null) { this.buttonLabel = buttonLabel.value } - + let htmlDdbut = this.ddbut.nativeElement this.attributeService.addAttributes(htmlDdbut, attributes) @@ -84,20 +84,20 @@ export class DropdownMenuComponent { htmlDdbut.style.border_color = this.attributeService.findGetAttributeValue("border_color", attributes, "black") this.cd.detectChanges() - + } onClick(element: ElementDto) { - let callback : WhenDto = element.when[0] + let callback: WhenDto = element.when[0] - this.frontendService.policyPost(callback) + this.frontendService.operationPost(callback) } } class DropdownMenuItemChild { - label!:string - element!:ElementDto + label!: string + element!: ElementDto htmlElement: HTMLElement | null = null constructor(label: string, element: ElementDto) { @@ -105,7 +105,7 @@ class DropdownMenuItemChild { this.element = element } - setHtmlElement(htmlElement : HTMLElement) { + setHtmlElement(htmlElement: HTMLElement) { this.htmlElement = htmlElement } @@ -115,8 +115,8 @@ class DropdownMenuItemChild { attributeService.addAttributes(this.htmlElement, attributes) attributeService.textAttributes(this.htmlElement, attributes) attributeService.setAttributesDirectly(this.htmlElement, attributes) - attributeService.addClasses(this.htmlElement, attributes, ["dropdown-item"],[]) - + attributeService.addClasses(this.htmlElement, attributes, ["dropdown-item"], []) + } } } diff --git a/angular_frontend/src/app/http.service.ts b/angular_frontend/src/app/http.service.ts index 11937439..b5acd995 100644 --- a/angular_frontend/src/app/http.service.ts +++ b/angular_frontend/src/app/http.service.ts @@ -19,49 +19,48 @@ export class HttpService { constructor( private http: HttpClient, private configService: ConfigService, private modalRefService: ModalRefService, private elementLookupService: ElementLookupService, private contextService: ContextService, private contextMenuService: ContextMenuService) { - this.backend_URI = configService.serverUrl + ":" + configService.serverPort - } + this.backend_URI = configService.serverUrl + ":" + configService.serverPort + } - private backend_URI = "http://localhost:8000" + private backend_URI = "http://localhost:8000" - get(): Observable{ - this.modalRefService.closeRemoveAllModals() - this.elementLookupService.clearElementLookupDict() - this.contextService.clearContext() - this.contextMenuService.removeAllContextMenus() - let frontendService = LocatorService.injector.get(DrawFrontendService) + get(): Observable { + this.modalRefService.closeRemoveAllModals() + this.elementLookupService.clearElementLookupDict() + this.contextService.clearContext() + this.contextMenuService.removeAllContextMenus() + let frontendService = LocatorService.injector.get(DrawFrontendService) - const response = this.http.get(this.backend_URI,) - + const response = this.http.get(this.backend_URI,) + .pipe( - catchError((error:HttpErrorResponse,caught) => { + catchError((error: HttpErrorResponse, caught) => { console.error('Error occurred during the HTTP request:', error); frontendService.postMessage("error connection") - return throwError(() => new Error(error.error)); + return throwError(() => new Error(error.error)); }) ); - - frontendService.lastData - return response; - } - post(policy: string, context: ContextItem[]): Observable{ - let clonedContext : ContextItem[] = [] - context.forEach(val => clonedContext.push(Object.assign({}, val))); + frontendService.lastData + return response; + } - this.modalRefService.closeRemoveAllModals() - this.elementLookupService.clearElementLookupDict() - this.contextService.clearContext() - this.contextMenuService.removeAllContextMenus() + post(operation: string, context: ContextItem[]): Observable { + let clonedContext: ContextItem[] = [] + context.forEach(val => clonedContext.push(Object.assign({}, val))); + this.modalRefService.closeRemoveAllModals() + this.elementLookupService.clearElementLookupDict() + this.contextService.clearContext() + this.contextMenuService.removeAllContextMenus() - let request = null - if (clonedContext.length > 0) { - request = this.http.post(this.backend_URI + "/backend", { function: policy, context: clonedContext }) - } else { - request = this.http.post(this.backend_URI + "/backend", { function: policy}) - } - return request + let request = null + if (clonedContext.length > 0) { + request = this.http.post(this.backend_URI + "/backend", { function: operation, context: clonedContext }) + } else { + request = this.http.post(this.backend_URI + "/backend", { function: operation }) } + return request + } } diff --git a/angular_frontend/src/app/menu-bar/menu-bar.component.ts b/angular_frontend/src/app/menu-bar/menu-bar.component.ts index 9371832b..d8b97cae 100644 --- a/angular_frontend/src/app/menu-bar/menu-bar.component.ts +++ b/angular_frontend/src/app/menu-bar/menu-bar.component.ts @@ -12,7 +12,7 @@ import { ElementLookupService } from '../element-lookup.service'; }) export class MenuBarComponent { @Input() element: ElementDto | null = null - @ViewChild("titleIcon",{static:false}) titleIcon! : ElementRef + @ViewChild("titleIcon", { static: false }) titleIcon!: ElementRef public isCollapsed = true; @@ -20,7 +20,7 @@ export class MenuBarComponent { // menuBarSections: MenuBarSection[] = [] menuBarButtons: MenuBarButton[] = [] - constructor(private cd: ChangeDetectorRef, private displayFrontend: DrawFrontendService, private callbackService: CallBackHelperService, private attributeService: AttributeHelperService, private elementLookupService: ElementLookupService, private callBackHelperService:CallBackHelperService) {} + constructor(private cd: ChangeDetectorRef, private displayFrontend: DrawFrontendService, private callbackService: CallBackHelperService, private attributeService: AttributeHelperService, private elementLookupService: ElementLookupService, private callBackHelperService: CallBackHelperService) { } ngAfterViewInit(): void { @@ -33,31 +33,31 @@ export class MenuBarComponent { this.menuBarButtons.push(menuBarButtonObject) }) this.cd.detectChanges() - - this.menuBarButtons.forEach((menuBarButtonObject:MenuBarButton) => { - let menuBarButtonHTML : HTMLElement | null = document.getElementById(menuBarButtonObject.id) + + this.menuBarButtons.forEach((menuBarButtonObject: MenuBarButton) => { + let menuBarButtonHTML: HTMLElement | null = document.getElementById(menuBarButtonObject.id) if (menuBarButtonHTML != null) { menuBarButtonObject.setHtmlElement(menuBarButtonHTML) menuBarButtonObject.setAttributes(menuBarButtonObject.element.attributes) - this.attributeService.addClasses(menuBarButtonHTML, menuBarButtonObject.element.attributes, ["btn-sm","mx-1"],["btn-outline-dark","border-0"]) + this.attributeService.addClasses(menuBarButtonHTML, menuBarButtonObject.element.attributes, ["btn-sm", "mx-1"], ["btn-outline-dark", "border-0"]) this.callBackHelperService.setCallbacks(menuBarButtonHTML, menuBarButtonObject.element.when) let icon = menuBarButtonHTML.children.item(0) if (icon != null) { - + this.attributeService.addClasses(icon, menuBarButtonObject.element.attributes, ["fa"], [], 'icon') } } }) - this.setAttributes(this.element.attributes) + this.setAttributes(this.element.attributes) - this.cd.detectChanges() + this.cd.detectChanges() } } - + setAttributes(attributes: AttributeDto[]) { let title = this.attributeService.findAttribute("title", attributes) if (title != null) { @@ -67,31 +67,31 @@ export class MenuBarComponent { let iconHtml = this.titleIcon.nativeElement this.attributeService.addClasses(iconHtml, attributes, ["fa"], [], 'icon') - + this.cd.detectChanges() } - policyExecutor(policy: WhenDto | null) { - if (policy != null) { - this.displayFrontend.policyPost(policy) + operationExecutor(operation: WhenDto | null) { + if (operation != null) { + this.displayFrontend.operationPost(operation) } } } class MenuBarButton { - id:string="" - title:string="" - element!:ElementDto - htmlElement:HTMLElement| null = null + id: string = "" + title: string = "" + element!: ElementDto + htmlElement: HTMLElement | null = null - constructor(id:string, title: string, element: ElementDto) { + constructor(id: string, title: string, element: ElementDto) { this.id = id this.title = title this.element = element } - setHtmlElement(htmlElement:HTMLElement) { + setHtmlElement(htmlElement: HTMLElement) { this.htmlElement = htmlElement } @@ -106,18 +106,18 @@ class MenuBarButton { } class MenuBarItem { - id:string="" - title:string="" - element!:ElementDto - htmlElement:HTMLElement| null = null + id: string = "" + title: string = "" + element!: ElementDto + htmlElement: HTMLElement | null = null - constructor(id:string, title: string, element: ElementDto) { + constructor(id: string, title: string, element: ElementDto) { this.id = id this.title = title this.element = element } - setHtmlElement(htmlElement:HTMLElement) { + setHtmlElement(htmlElement: HTMLElement) { this.htmlElement = htmlElement } @@ -132,25 +132,25 @@ class MenuBarItem { } class MenuBarSection { - id : string = "menuBarSection" - title:string = "" - element!:ElementDto - menuBarItems:MenuBarItem[] = [] - collapsed:boolean = true - htmlElement:HTMLElement| null = null - - constructor(id: string, title:string, menuBarItems:MenuBarItem[], element: ElementDto) { + id: string = "menuBarSection" + title: string = "" + element!: ElementDto + menuBarItems: MenuBarItem[] = [] + collapsed: boolean = true + htmlElement: HTMLElement | null = null + + constructor(id: string, title: string, menuBarItems: MenuBarItem[], element: ElementDto) { this.id = id this.title = title this.menuBarItems = menuBarItems this.element = element } - toggleCollapsed() : void { - this.collapsed = !this.collapsed + toggleCollapsed(): void { + this.collapsed = !this.collapsed } - setHtmlElement(htmlElement:HTMLElement) { + setHtmlElement(htmlElement: HTMLElement) { this.htmlElement = htmlElement } @@ -162,5 +162,5 @@ class MenuBarSection { this.title = "" } } - + } diff --git a/angular_frontend/src/app/modal/modal.component.ts b/angular_frontend/src/app/modal/modal.component.ts index 4b23c630..9a8a16b9 100644 --- a/angular_frontend/src/app/modal/modal.component.ts +++ b/angular_frontend/src/app/modal/modal.component.ts @@ -46,6 +46,8 @@ export class ModalComponent { let visibility = this.attributeService.findAttribute("visible", attributes) let modalTitle = this.attributeService.findAttribute("title", attributes) + let modalSize = this.attributeService.findAttribute("size", attributes) + if (modalTitle != null) { this.modalTitle = modalTitle.value } @@ -53,8 +55,19 @@ export class ModalComponent { if (visibility != null && this.element != null) { if ((visibility.value == "shown" || visibility.value == "visible") && (this.modalRef == null)) { - - this.modalRef = this.modalService.open(this.content, { ariaLabelledBy: 'modal-basic-title' }) + + if (modalSize != null) { + console.log(modalSize.value) + } + + let ngbModalOptions = null + if (modalSize != null) { + ngbModalOptions = { ariaLabelledBy: 'modal-basic-title', size: modalSize.value } + } else { + ngbModalOptions = { ariaLabelledBy: 'modal-basic-title' } + } + + this.modalRef = this.modalService.open(this.content, ngbModalOptions) this.modalRefService.registerModal(this.element.id, this.modalRef) diff --git a/angular_frontend/src/app/types/json-response.dto.ts b/angular_frontend/src/app/types/json-response.dto.ts index 66622475..17179999 100644 --- a/angular_frontend/src/app/types/json-response.dto.ts +++ b/angular_frontend/src/app/types/json-response.dto.ts @@ -25,7 +25,7 @@ export interface WhenDto { id: string, actionType: string, interactionType: string, - policy: string, + operation: string, event?: string, - interaction_type?: string + action?: string } diff --git a/angular_frontend/src/app/window/window.component.html b/angular_frontend/src/app/window/window.component.html index 1ce17bc1..386212b5 100644 --- a/angular_frontend/src/app/window/window.component.html +++ b/angular_frontend/src/app/window/window.component.html @@ -1,9 +1,14 @@ -
+
+
+
+
+
- - \ No newline at end of file + \ No newline at end of file diff --git a/angular_frontend/src/app/window/window.component.ts b/angular_frontend/src/app/window/window.component.ts index 3fd61311..550b61c9 100644 --- a/angular_frontend/src/app/window/window.component.ts +++ b/angular_frontend/src/app/window/window.component.ts @@ -14,10 +14,10 @@ import { CallBackHelperService } from '../callback-helper.service'; styleUrls: ['./window.component.scss'] }) export class WindowComponent { - @ViewChild('parent',{static:false}) parent!: ElementRef; - @ViewChild('child',{read: ViewContainerRef}) child!: ViewContainerRef; + @ViewChild('parent', { static: false }) parent!: ElementRef; + @ViewChild('child', { read: ViewContainerRef }) child!: ViewContainerRef; - element : ElementDto | null = null + element: ElementDto | null = null children: ComponentRef[] = [] @@ -27,88 +27,92 @@ export class WindowComponent { menuBar: ElementDto | null = null messageList: ElementDto[] = [] contextMenuList: ElementDto[] = [] - + constructor(private childBearerService: ChildBearerService, private attributeService: AttributeHelperService, private cd: ChangeDetectorRef, private frontendService: DrawFrontendService, private elementLookupService: ElementLookupService, private contextMenuService: ContextMenuService, private callbackService: CallBackHelperService) { } ngAfterViewInit(): void { - this.frontendService.messageLists.subscribe({next: data => { - this.messageList = data - this.cd.detectChanges() - }}) + this.frontendService.messageLists.subscribe({ + next: data => { + this.messageList = data + this.cd.detectChanges() + } + }) - this.frontendService.frontendJson.subscribe({next: (data:ElementDto) => { + this.frontendService.frontendJson.subscribe({ + next: (data: ElementDto) => { - this.children.forEach(child => { - this.child.clear() - }) - this.children = [] + this.children.forEach(child => { + this.child.clear() + }) + this.children = [] - this.cleanValues(data) + this.cleanValues(data) - this.frontendService.detectCreateMenuBar(data) + this.frontendService.detectCreateMenuBar(data) - let messageList : ElementDto[] = [] - let contextMenus : ElementDto[] = [] - this.frontendService.getAllMessagesContextMenus(data, messageList, contextMenus) - this.frontendService.messageLists.next(messageList) + let messageList: ElementDto[] = [] + let contextMenus: ElementDto[] = [] + this.frontendService.getAllMessagesContextMenus(data, messageList, contextMenus) + this.frontendService.messageLists.next(messageList) - this.frontendService.contextMenus.subscribe(data => { - data.forEach((item:ElementDto) => { - this.contextMenuService.registerContextMenu(item.id, item) + this.frontendService.contextMenus.subscribe(data => { + data.forEach((item: ElementDto) => { + this.contextMenuService.registerContextMenu(item.id, item) }) this.contextMenuList = data - }) + }) - this.frontendService.contextMenus.next(contextMenus) + this.frontendService.contextMenus.next(contextMenus) - let window = data.children[0] + let window = data.children[0] - this.window_id = window.id + this.window_id = window.id - this.element = window - this.window = window + this.element = window + this.window = window - this.cd.detectChanges() + this.cd.detectChanges() - let childLayout = this.attributeService.findGetAttributeValue("child_layout",window.attributes,"flex") + let childLayout = this.attributeService.findGetAttributeValue("child_layout", window.attributes, "flex") - this.elementLookupService.addElementAll(this.window_id, this, this.parent.nativeElement, window) + this.elementLookupService.addElementAll(this.window_id, this, this.parent.nativeElement, window) - window.children.forEach(item => { - let my_comp = this.childBearerService.bearChild(this.child, item, childLayout) - if (my_comp != null) { - this.children.push(my_comp) - } - }) + window.children.forEach(item => { + let my_comp = this.childBearerService.bearChild(this.child, item, childLayout) + if (my_comp != null) { + this.children.push(my_comp) + } + }) - this.setAttributes(window.attributes) - this.doCallbacks(window.when) - // Prevents Errors - this.cd.detectChanges() - }, - error: (err) => console.log(err)}) + this.setAttributes(window.attributes) + this.doCallbacks(window.when) + // Prevents Errors + this.cd.detectChanges() + }, + error: (err) => console.log(err) + }) this.frontendService.initialGet() } setAttributes(attributes: AttributeDto[]) { - let parentHTML = this.parent.nativeElement - this.attributeService.setChildLayout(parentHTML, attributes) - this.attributeService.addAttributes(parentHTML, attributes) - this.attributeService.addClasses(parentHTML, attributes,[],[]) - - this.cd.detectChanges() + let parentHTML = this.parent.nativeElement + this.attributeService.setChildLayout(parentHTML, attributes) + this.attributeService.addAttributes(parentHTML, attributes) + this.attributeService.addClasses(parentHTML, attributes, [], []) + + this.cd.detectChanges() } - doCallbacks(whens:WhenDto[]) { + doCallbacks(whens: WhenDto[]) { let parentHTML = this.parent.nativeElement this.callbackService.setCallbacks(parentHTML, whens) } - + cleanValues(element: ElementDto) { for (let i = 0; i < element.attributes.length; i++) { let value = element.attributes[i].value @@ -120,7 +124,7 @@ export class WindowComponent { element.attributes[i].key = key if (key != "image") { - value = value.replace("\\n","
") + value = value.replace("\\n", "
") } } @@ -128,13 +132,13 @@ export class WindowComponent { if (element.when[i].event !== undefined) { element.when[i].actionType = element.when[i].event! } - if (element.when[i].interaction_type !== undefined) { - element.when[i].interactionType = element.when[i].interaction_type! + if (element.when[i].action !== undefined) { + element.when[i].interactionType = element.when[i].action! } - let policy = element.when[i].policy - policy = this.stringSanitizer(policy) - element.when[i].policy = policy + let operation = element.when[i].operation + operation = this.stringSanitizer(operation) + element.when[i].operation = operation let action = element.when[i].actionType action = this.stringSanitizer(action) @@ -150,7 +154,7 @@ export class WindowComponent { }) } - stringSanitizer(value:string) : string { + stringSanitizer(value: string): string { if (value == null) { return value } diff --git a/angular_frontend/src/assets/config.json b/angular_frontend/src/assets/config.json index 25131302..0c351ef2 100644 --- a/angular_frontend/src/assets/config.json +++ b/angular_frontend/src/assets/config.json @@ -1,4 +1,4 @@ { - "serverUrl":"http://localhost", - "serverPort":"8000" + "serverUrl": "http://localhost", + "serverPort": "8000" } \ No newline at end of file diff --git a/angular_frontend/src/styles.scss b/angular_frontend/src/styles.scss index 73b110a3..7b1c0883 100644 --- a/angular_frontend/src/styles.scss +++ b/angular_frontend/src/styles.scss @@ -16,3 +16,16 @@ $light: #F4F5F7; /* Importing Bootstrap SCSS file. */ @import 'bootstrap/scss/bootstrap'; + +.myspinner { + position: fixed; + top: 0; + left: 0; + opacity: 70%; + width: 100%; + height: 100%; + z-index: 9999; + display: flex; + justify-content: end; + align-items: end; +} \ No newline at end of file diff --git a/clinguin/__init__.py b/clinguin/__init__.py index df21fa31..87ddbd3c 100644 --- a/clinguin/__init__.py +++ b/clinguin/__init__.py @@ -1,6 +1,7 @@ """ Clinguin package - package entry point """ + import copy import sys import threading diff --git a/clinguin/client/__init__.py b/clinguin/client/__init__.py index d7366719..b0e223a0 100644 --- a/clinguin/client/__init__.py +++ b/clinguin/client/__init__.py @@ -1,8 +1,9 @@ """ Program base of client. """ + from .api.api import Api -from .api.frontend_policy_dto import FrontendPolicyDto +from .api.frontend_operation_dto import FrontendOperationDto from .application.client_base import ClientBase from .presentation.abstract_frontend import AbstractFrontend @@ -10,5 +11,5 @@ AbstractFrontend.__name__, ClientBase.__name__, Api.__name__, - FrontendPolicyDto.__name__, + FrontendOperationDto.__name__, ] diff --git a/clinguin/client/api/api.py b/clinguin/client/api/api.py index 07d511e0..5f8654b5 100644 --- a/clinguin/client/api/api.py +++ b/clinguin/client/api/api.py @@ -1,6 +1,7 @@ """ Module that contains the API-Class """ + import json import logging import traceback @@ -8,7 +9,7 @@ from clinguin.utils import Logger -from .frontend_policy_dto import FrontendPolicyDto +from .frontend_operation_dto import FrontendOperationDto class Api: @@ -45,7 +46,7 @@ def get(self, endpoint): self._logger.error("<<>>") return (-2, "") - def post(self, endpoint, body: FrontendPolicyDto): + def post(self, endpoint, body: FrontendOperationDto): """ Used for post requests. """ diff --git a/clinguin/client/api/frontend_policy_dto.py b/clinguin/client/api/frontend_operation_dto.py similarity index 83% rename from clinguin/client/api/frontend_policy_dto.py rename to clinguin/client/api/frontend_operation_dto.py index 71b45d80..05de8943 100644 --- a/clinguin/client/api/frontend_policy_dto.py +++ b/clinguin/client/api/frontend_operation_dto.py @@ -1,10 +1,11 @@ """ -Module contains the FrontendPolicyDto class +Module contains the FrontendOperationDto class """ + import json -class FrontendPolicyDto: +class FrontendOperationDto: """ Dto class for encapsulating the json that shall be sent to the backend that handles the callbacks. """ diff --git a/clinguin/client/application/client_base.py b/clinguin/client/application/client_base.py index 3978acec..d4767d00 100644 --- a/clinguin/client/application/client_base.py +++ b/clinguin/client/application/client_base.py @@ -1,11 +1,12 @@ """ Module that contains the ClientBase class """ + import logging import time from clinguin.client.api.api import Api -from clinguin.client.api.frontend_policy_dto import FrontendPolicyDto +from clinguin.client.api.frontend_operation_dto import FrontendOperationDto from clinguin.utils import CaseConverter, Logger @@ -24,7 +25,7 @@ def __init__(self, args): self.api = Api() self.connected = False - self.solve_dto = FrontendPolicyDto("solve") + self.solve_dto = FrontendOperationDto("solve") self.frontend_generator = args.frontend(self, args) @@ -99,11 +100,13 @@ def base_engine(self, response): else: self._logger.error("Could not find element type: %s", child["type"]) - def post_with_policy(self, click_policy): + def post_with_operation(self, click_operation): """ Prepare post request for API. """ - (status_code, json) = self.api.post("backend", FrontendPolicyDto(click_policy)) + (status_code, json) = self.api.post( + "backend", FrontendOperationDto(click_operation) + ) if status_code == 200: self.draw(json) else: diff --git a/clinguin/client/presentation/frontends/angular_frontend/clinguin_angular_frontend/index.html b/clinguin/client/presentation/frontends/angular_frontend/clinguin_angular_frontend/index.html index 5f050353..de29db5d 100644 --- a/clinguin/client/presentation/frontends/angular_frontend/clinguin_angular_frontend/index.html +++ b/clinguin/client/presentation/frontends/angular_frontend/clinguin_angular_frontend/index.html @@ -8,8 +8,8 @@ - + - + diff --git a/clinguin/client/presentation/frontends/angular_frontend/clinguin_angular_frontend/main.68af7957abc58eb3.js b/clinguin/client/presentation/frontends/angular_frontend/clinguin_angular_frontend/main.68af7957abc58eb3.js deleted file mode 100644 index f2d598b0..00000000 --- a/clinguin/client/presentation/frontends/angular_frontend/clinguin_angular_frontend/main.68af7957abc58eb3.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkClinGraphViz=self.webpackChunkClinGraphViz||[]).push([[179],{362:(_i,Wt,Be)=>{"use strict";function $(e){return"function"==typeof e}function ct(e){const i=e(n=>{Error.call(n),n.stack=(new Error).stack});return i.prototype=Object.create(Error.prototype),i.prototype.constructor=i,i}const Je=ct(e=>function(i){e(this),this.message=i?`${i.length} errors occurred during unsubscription:\n${i.map((n,r)=>`${r+1}) ${n.toString()}`).join("\n ")}`:"",this.name="UnsubscriptionError",this.errors=i});function ke(e,t){if(e){const i=e.indexOf(t);0<=i&&e.splice(i,1)}}class de{constructor(t){this.initialTeardown=t,this.closed=!1,this._parentage=null,this._finalizers=null}unsubscribe(){let t;if(!this.closed){this.closed=!0;const{_parentage:i}=this;if(i)if(this._parentage=null,Array.isArray(i))for(const s of i)s.remove(this);else i.remove(this);const{initialTeardown:n}=this;if($(n))try{n()}catch(s){t=s instanceof Je?s.errors:[s]}const{_finalizers:r}=this;if(r){this._finalizers=null;for(const s of r)try{M(s)}catch(o){t=t??[],o instanceof Je?t=[...t,...o.errors]:t.push(o)}}if(t)throw new Je(t)}}add(t){var i;if(t&&t!==this)if(this.closed)M(t);else{if(t instanceof de){if(t.closed||t._hasParent(this))return;t._addParent(this)}(this._finalizers=null!==(i=this._finalizers)&&void 0!==i?i:[]).push(t)}}_hasParent(t){const{_parentage:i}=this;return i===t||Array.isArray(i)&&i.includes(t)}_addParent(t){const{_parentage:i}=this;this._parentage=Array.isArray(i)?(i.push(t),i):i?[i,t]:t}_removeParent(t){const{_parentage:i}=this;i===t?this._parentage=null:Array.isArray(i)&&ke(i,t)}remove(t){const{_finalizers:i}=this;i&&ke(i,t),t instanceof de&&t._removeParent(this)}}de.EMPTY=(()=>{const e=new de;return e.closed=!0,e})();const ye=de.EMPTY;function Ve(e){return e instanceof de||e&&"closed"in e&&$(e.remove)&&$(e.add)&&$(e.unsubscribe)}function M(e){$(e)?e():e.unsubscribe()}const ut={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},He={setTimeout(e,t,...i){const{delegate:n}=He;return n?.setTimeout?n.setTimeout(e,t,...i):setTimeout(e,t,...i)},clearTimeout(e){const{delegate:t}=He;return(t?.clearTimeout||clearTimeout)(e)},delegate:void 0};function dt(e){He.setTimeout(()=>{const{onUnhandledError:t}=ut;if(!t)throw e;t(e)})}function wt(){}const Z=Qe("C",void 0,void 0);function Qe(e,t,i){return{kind:e,value:t,error:i}}let Ke=null;function xe(e){if(ut.useDeprecatedSynchronousErrorHandling){const t=!Ke;if(t&&(Ke={errorThrown:!1,error:null}),e(),t){const{errorThrown:i,error:n}=Ke;if(Ke=null,i)throw n}}else e()}class en extends de{constructor(t){super(),this.isStopped=!1,t?(this.destination=t,Ve(t)&&t.add(this)):this.destination=rs}static create(t,i,n){return new mi(t,i,n)}next(t){this.isStopped?vr(function be(e){return Qe("N",e,void 0)}(t),this):this._next(t)}error(t){this.isStopped?vr(function le(e){return Qe("E",void 0,e)}(t),this):(this.isStopped=!0,this._error(t))}complete(){this.isStopped?vr(Z,this):(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe(),this.destination=null)}_next(t){this.destination.next(t)}_error(t){try{this.destination.error(t)}finally{this.unsubscribe()}}_complete(){try{this.destination.complete()}finally{this.unsubscribe()}}}const Ct=Function.prototype.bind;function Et(e,t){return Ct.call(e,t)}class mr{constructor(t){this.partialObserver=t}next(t){const{partialObserver:i}=this;if(i.next)try{i.next(t)}catch(n){vi(n)}}error(t){const{partialObserver:i}=this;if(i.error)try{i.error(t)}catch(n){vi(n)}else vi(t)}complete(){const{partialObserver:t}=this;if(t.complete)try{t.complete()}catch(i){vi(i)}}}class mi extends en{constructor(t,i,n){let r;if(super(),$(t)||!t)r={next:t??void 0,error:i??void 0,complete:n??void 0};else{let s;this&&ut.useDeprecatedNextContext?(s=Object.create(t),s.unsubscribe=()=>this.unsubscribe(),r={next:t.next&&Et(t.next,s),error:t.error&&Et(t.error,s),complete:t.complete&&Et(t.complete,s)}):r=t}this.destination=new mr(r)}}function vi(e){ut.useDeprecatedSynchronousErrorHandling?function It(e){ut.useDeprecatedSynchronousErrorHandling&&Ke&&(Ke.errorThrown=!0,Ke.error=e)}(e):dt(e)}function vr(e,t){const{onStoppedNotification:i}=ut;i&&He.setTimeout(()=>i(e,t))}const rs={closed:!0,next:wt,error:function vo(e){throw e},complete:wt},yr="function"==typeof Symbol&&Symbol.observable||"@@observable";function yi(e){return e}let ze=(()=>{class e{constructor(i){i&&(this._subscribe=i)}lift(i){const n=new e;return n.source=this,n.operator=i,n}subscribe(i,n,r){const s=function bo(e){return e&&e instanceof en||function os(e){return e&&$(e.next)&&$(e.error)&&$(e.complete)}(e)&&Ve(e)}(i)?i:new mi(i,n,r);return xe(()=>{const{operator:o,source:a}=this;s.add(o?o.call(s,a):a?this._subscribe(s):this._trySubscribe(s))}),s}_trySubscribe(i){try{return this._subscribe(i)}catch(n){i.error(n)}}forEach(i,n){return new(n=ss(n))((r,s)=>{const o=new mi({next:a=>{try{i(a)}catch(l){s(l),o.unsubscribe()}},error:s,complete:r});this.subscribe(o)})}_subscribe(i){var n;return null===(n=this.source)||void 0===n?void 0:n.subscribe(i)}[yr](){return this}pipe(...i){return function br(e){return 0===e.length?yi:1===e.length?e[0]:function(i){return e.reduce((n,r)=>r(n),i)}}(i)(this)}toPromise(i){return new(i=ss(i))((n,r)=>{let s;this.subscribe(o=>s=o,o=>r(o),()=>n(s))})}}return e.create=t=>new e(t),e})();function ss(e){var t;return null!==(t=e??ut.Promise)&&void 0!==t?t:Promise}const as=ct(e=>function(){e(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"});let ee=(()=>{class e extends ze{constructor(){super(),this.closed=!1,this.currentObservers=null,this.observers=[],this.isStopped=!1,this.hasError=!1,this.thrownError=null}lift(i){const n=new Rt(this,this);return n.operator=i,n}_throwIfClosed(){if(this.closed)throw new as}next(i){xe(()=>{if(this._throwIfClosed(),!this.isStopped){this.currentObservers||(this.currentObservers=Array.from(this.observers));for(const n of this.currentObservers)n.next(i)}})}error(i){xe(()=>{if(this._throwIfClosed(),!this.isStopped){this.hasError=this.isStopped=!0,this.thrownError=i;const{observers:n}=this;for(;n.length;)n.shift().error(i)}})}complete(){xe(()=>{if(this._throwIfClosed(),!this.isStopped){this.isStopped=!0;const{observers:i}=this;for(;i.length;)i.shift().complete()}})}unsubscribe(){this.isStopped=this.closed=!0,this.observers=this.currentObservers=null}get observed(){var i;return(null===(i=this.observers)||void 0===i?void 0:i.length)>0}_trySubscribe(i){return this._throwIfClosed(),super._trySubscribe(i)}_subscribe(i){return this._throwIfClosed(),this._checkFinalizedStatuses(i),this._innerSubscribe(i)}_innerSubscribe(i){const{hasError:n,isStopped:r,observers:s}=this;return n||r?ye:(this.currentObservers=null,s.push(i),new de(()=>{this.currentObservers=null,ke(s,i)}))}_checkFinalizedStatuses(i){const{hasError:n,thrownError:r,isStopped:s}=this;n?i.error(r):s&&i.complete()}asObservable(){const i=new ze;return i.source=this,i}}return e.create=(t,i)=>new Rt(t,i),e})();class Rt extends ee{constructor(t,i){super(),this.destination=t,this.source=i}next(t){var i,n;null===(n=null===(i=this.destination)||void 0===i?void 0:i.next)||void 0===n||n.call(i,t)}error(t){var i,n;null===(n=null===(i=this.destination)||void 0===i?void 0:i.error)||void 0===n||n.call(i,t)}complete(){var t,i;null===(i=null===(t=this.destination)||void 0===t?void 0:t.complete)||void 0===i||i.call(t)}_subscribe(t){var i,n;return null!==(n=null===(i=this.source)||void 0===i?void 0:i.subscribe(t))&&void 0!==n?n:ye}}function mt(e){return t=>{if(function ls(e){return $(e?.lift)}(t))return t.lift(function(i){try{return e(i,this)}catch(n){this.error(n)}});throw new TypeError("Unable to lift unknown Observable type")}}function ft(e,t,i,n,r){return new cs(e,t,i,n,r)}class cs extends en{constructor(t,i,n,r,s,o){super(t),this.onFinalize=s,this.shouldUnsubscribe=o,this._next=i?function(a){try{i(a)}catch(l){t.error(l)}}:super._next,this._error=r?function(a){try{r(a)}catch(l){t.error(l)}finally{this.unsubscribe()}}:super._error,this._complete=n?function(){try{n()}catch(a){t.error(a)}finally{this.unsubscribe()}}:super._complete}unsubscribe(){var t;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){const{closed:i}=this;super.unsubscribe(),!i&&(null===(t=this.onFinalize)||void 0===t||t.call(this))}}}function Pt(e,t){return mt((i,n)=>{let r=0;i.subscribe(ft(n,s=>{n.next(e.call(t,s,r++))}))})}function Xe(e){return this instanceof Xe?(this.v=e,this):new Xe(e)}function Ki(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var i,t=e[Symbol.asyncIterator];return t?t.call(e):(e=function q(e){var t="function"==typeof Symbol&&Symbol.iterator,i=t&&e[t],n=0;if(i)return i.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}(e),i={},n("next"),n("throw"),n("return"),i[Symbol.asyncIterator]=function(){return this},i);function n(s){i[s]=e[s]&&function(o){return new Promise(function(a,l){!function r(s,o,a,l){Promise.resolve(l).then(function(c){s({value:c,done:a})},o)}(a,l,(o=e[s](o)).done,o.value)})}}}"function"==typeof SuppressedError&&SuppressedError;const Fu=e=>e&&"number"==typeof e.length&&"function"!=typeof e;function dg(e){return $(e?.then)}function fg(e){return $(e[yr])}function hg(e){return Symbol.asyncIterator&&$(e?.[Symbol.asyncIterator])}function pg(e){return new TypeError(`You provided ${null!==e&&"object"==typeof e?"an invalid object":`'${e}'`} where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.`)}const gg=function SE(){return"function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator"}();function _g(e){return $(e?.[gg])}function mg(e){return function bi(e,t,i){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r,n=i.apply(e,t||[]),s=[];return r={},o("next"),o("throw"),o("return"),r[Symbol.asyncIterator]=function(){return this},r;function o(g){n[g]&&(r[g]=function(_){return new Promise(function(y,b){s.push([g,_,y,b])>1||a(g,_)})})}function a(g,_){try{!function l(g){g.value instanceof Xe?Promise.resolve(g.value.v).then(c,u):h(s[0][2],g)}(n[g](_))}catch(y){h(s[0][3],y)}}function c(g){a("next",g)}function u(g){a("throw",g)}function h(g,_){g(_),s.shift(),s.length&&a(s[0][0],s[0][1])}}(this,arguments,function*(){const i=e.getReader();try{for(;;){const{value:n,done:r}=yield Xe(i.read());if(r)return yield Xe(void 0);yield yield Xe(n)}}finally{i.releaseLock()}})}function vg(e){return $(e?.getReader)}function Ft(e){if(e instanceof ze)return e;if(null!=e){if(fg(e))return function TE(e){return new ze(t=>{const i=e[yr]();if($(i.subscribe))return i.subscribe(t);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}(e);if(Fu(e))return function ME(e){return new ze(t=>{for(let i=0;i{e.then(i=>{t.closed||(t.next(i),t.complete())},i=>t.error(i)).then(null,dt)})}(e);if(hg(e))return yg(e);if(_g(e))return function NE(e){return new ze(t=>{for(const i of e)if(t.next(i),t.closed)return;t.complete()})}(e);if(vg(e))return function AE(e){return yg(mg(e))}(e)}throw pg(e)}function yg(e){return new ze(t=>{(function OE(e,t){var i,n,r,s;return function m(e,t,i,n){return new(i||(i=Promise))(function(s,o){function a(u){try{c(n.next(u))}catch(h){o(h)}}function l(u){try{c(n.throw(u))}catch(h){o(h)}}function c(u){u.done?s(u.value):function r(s){return s instanceof i?s:new i(function(o){o(s)})}(u.value).then(a,l)}c((n=n.apply(e,t||[])).next())})}(this,void 0,void 0,function*(){try{for(i=Ki(e);!(n=yield i.next()).done;)if(t.next(n.value),t.closed)return}catch(o){r={error:o}}finally{try{n&&!n.done&&(s=i.return)&&(yield s.call(i))}finally{if(r)throw r.error}}t.complete()})})(e,t).catch(i=>t.error(i))})}function Xi(e,t,i,n=0,r=!1){const s=t.schedule(function(){i(),r?e.add(this.schedule(null,n)):this.unsubscribe()},n);if(e.add(s),!r)return s}function us(e,t,i=1/0){return $(t)?us((n,r)=>Pt((s,o)=>t(n,s,r,o))(Ft(e(n,r))),i):("number"==typeof t&&(i=t),mt((n,r)=>function xE(e,t,i,n,r,s,o,a){const l=[];let c=0,u=0,h=!1;const g=()=>{h&&!l.length&&!c&&t.complete()},_=b=>c{s&&t.next(b),c++;let D=!1;Ft(i(b,u++)).subscribe(ft(t,T=>{r?.(T),s?_(T):t.next(T)},()=>{D=!0},void 0,()=>{if(D)try{for(c--;l.length&&cy(T)):y(T)}g()}catch(T){t.error(T)}}))};return e.subscribe(ft(t,_,()=>{h=!0,g()})),()=>{a?.()}}(n,r,e,i)))}function bg(e=1/0){return us(yi,e)}const Do=new ze(e=>e.complete());function Dg(e){return e&&$(e.schedule)}function ku(e){return e[e.length-1]}function Lu(e){return $(ku(e))?e.pop():void 0}function Qa(e){return Dg(ku(e))?e.pop():void 0}function wg(e,t=0){return mt((i,n)=>{i.subscribe(ft(n,r=>Xi(n,e,()=>n.next(r),t),()=>Xi(n,e,()=>n.complete(),t),r=>Xi(n,e,()=>n.error(r),t)))})}function Cg(e,t=0){return mt((i,n)=>{n.add(e.schedule(()=>i.subscribe(n),t))})}function Eg(e,t){if(!e)throw new Error("Iterable cannot be null");return new ze(i=>{Xi(i,t,()=>{const n=e[Symbol.asyncIterator]();Xi(i,t,()=>{n.next().then(r=>{r.done?i.complete():i.next(r.value)})},0,!0)})})}function wo(e,t){return t?function HE(e,t){if(null!=e){if(fg(e))return function FE(e,t){return Ft(e).pipe(Cg(t),wg(t))}(e,t);if(Fu(e))return function LE(e,t){return new ze(i=>{let n=0;return t.schedule(function(){n===e.length?i.complete():(i.next(e[n++]),i.closed||this.schedule())})})}(e,t);if(dg(e))return function kE(e,t){return Ft(e).pipe(Cg(t),wg(t))}(e,t);if(hg(e))return Eg(e,t);if(_g(e))return function BE(e,t){return new ze(i=>{let n;return Xi(i,t,()=>{n=e[gg](),Xi(i,t,()=>{let r,s;try{({value:r,done:s}=n.next())}catch(o){return void i.error(o)}s?i.complete():i.next(r)},0,!0)}),()=>$(n?.return)&&n.return()})}(e,t);if(vg(e))return function VE(e,t){return Eg(mg(e),t)}(e,t)}throw pg(e)}(e,t):Ft(e)}class UE extends ee{constructor(t){super(),this._value=t}get value(){return this.getValue()}_subscribe(t){const i=super._subscribe(t);return!i.closed&&t.next(this._value),i}getValue(){const{hasError:t,thrownError:i,_value:n}=this;if(t)throw i;return this._throwIfClosed(),n}next(t){super.next(this._value=t)}}function ds(...e){return wo(e,Qa(e))}function Tg(e={}){const{connector:t=(()=>new ee),resetOnError:i=!0,resetOnComplete:n=!0,resetOnRefCountZero:r=!0}=e;return s=>{let o,a,l,c=0,u=!1,h=!1;const g=()=>{a?.unsubscribe(),a=void 0},_=()=>{g(),o=l=void 0,u=h=!1},y=()=>{const b=o;_(),b?.unsubscribe()};return mt((b,D)=>{c++,!h&&!u&&g();const T=l=l??t();D.add(()=>{c--,0===c&&!h&&!u&&(a=Bu(y,r))}),T.subscribe(D),!o&&c>0&&(o=new mi({next:C=>T.next(C),error:C=>{h=!0,g(),a=Bu(_,i,C),T.error(C)},complete:()=>{u=!0,g(),a=Bu(_,n),T.complete()}}),Ft(b).subscribe(o))})(s)}}function Bu(e,t,...i){if(!0===t)return void e();if(!1===t)return;const n=new mi({next:()=>{n.unsubscribe(),e()}});return Ft(t(...i)).subscribe(n)}function Vu(e,t){return mt((i,n)=>{let r=null,s=0,o=!1;const a=()=>o&&!r&&n.complete();i.subscribe(ft(n,l=>{r?.unsubscribe();let c=0;const u=s++;Ft(e(l,u)).subscribe(r=ft(n,h=>n.next(t?t(l,h,u,c++):h),()=>{r=null,a()}))},()=>{o=!0,a()}))})}function jE(e,t){return e===t}function Re(e){for(let t in e)if(e[t]===Re)return t;throw Error("Could not find renamed property on target object.")}function Ka(e,t){for(const i in t)t.hasOwnProperty(i)&&!e.hasOwnProperty(i)&&(e[i]=t[i])}function Nt(e){if("string"==typeof e)return e;if(Array.isArray(e))return"["+e.map(Nt).join(", ")+"]";if(null==e)return""+e;if(e.overriddenName)return`${e.overriddenName}`;if(e.name)return`${e.name}`;const t=e.toString();if(null==t)return""+t;const i=t.indexOf("\n");return-1===i?t:t.substring(0,i)}function Hu(e,t){return null==e||""===e?null===t?"":t:null==t||""===t?e:e+" "+t}const $E=Re({__forward_ref__:Re});function ae(e){return e.__forward_ref__=ae,e.toString=function(){return Nt(this())},e}function X(e){return Uu(e)?e():e}function Uu(e){return"function"==typeof e&&e.hasOwnProperty($E)&&e.__forward_ref__===ae}function ju(e){return e&&!!e.\u0275providers}const Ig="https://g.co/ng/security#xss";class F extends Error{constructor(t,i){super(function Xa(e,t){return`NG0${Math.abs(e)}${t?": "+t:""}`}(t,i)),this.code=t}}function te(e){return"string"==typeof e?e:null==e?"":String(e)}function $u(e,t){throw new F(-201,!1)}function jn(e,t){null==e&&function Q(e,t,i,n){throw new Error(`ASSERTION ERROR: ${e}`+(null==n?"":` [Expected=> ${i} ${n} ${t} <=Actual]`))}(t,e,null,"!=")}function G(e){return{token:e.token,providedIn:e.providedIn||null,factory:e.factory,value:void 0}}function Ae(e){return{providers:e.providers||[],imports:e.imports||[]}}function el(e){return Ng(e,nl)||Ng(e,Ag)}function Ng(e,t){return e.hasOwnProperty(t)?e[t]:null}function tl(e){return e&&(e.hasOwnProperty(Gu)||e.hasOwnProperty(JE))?e[Gu]:null}const nl=Re({\u0275prov:Re}),Gu=Re({\u0275inj:Re}),Ag=Re({ngInjectableDef:Re}),JE=Re({ngInjectorDef:Re});var ge=function(e){return e[e.Default=0]="Default",e[e.Host=1]="Host",e[e.Self=2]="Self",e[e.SkipSelf=4]="SkipSelf",e[e.Optional=8]="Optional",e}(ge||{});let zu;function _n(e){const t=zu;return zu=e,t}function xg(e,t,i){const n=el(e);return n&&"root"==n.providedIn?void 0===n.value?n.value=n.factory():n.value:i&ge.Optional?null:void 0!==t?t:void $u(Nt(e))}const Ue=globalThis,Co={},Ju="__NG_DI_FLAG__",il="ngTempTokenPath",XE=/\n/gm,Pg="__source";let fs;function er(e){const t=fs;return fs=e,t}function nS(e,t=ge.Default){if(void 0===fs)throw new F(-203,!1);return null===fs?xg(e,void 0,t):fs.get(e,t&ge.Optional?null:void 0,t)}function L(e,t=ge.Default){return(function Og(){return zu}()||nS)(X(e),t)}function fe(e,t=ge.Default){return L(e,rl(t))}function rl(e){return typeof e>"u"||"number"==typeof e?e:0|(e.optional&&8)|(e.host&&1)|(e.self&&2)|(e.skipSelf&&4)}function Qu(e){const t=[];for(let i=0;it){o=s-1;break}}}for(;ss?"":r[h+1].toLowerCase();const _=8&n?g:null;if(_&&-1!==Bg(_,c,0)||2&n&&c!==g){if(ti(n))return!1;o=!0}}}}else{if(!o&&!ti(n)&&!ti(l))return!1;if(o&&ti(l))continue;o=!1,n=l|1&n}}return ti(n)||o}function ti(e){return 0==(1&e)}function cS(e,t,i,n){if(null===t)return-1;let r=0;if(n||!i){let s=!1;for(;r-1)for(i++;i0?'="'+a+'"':"")+"]"}else 8&n?r+="."+o:4&n&&(r+=" "+o);else""!==r&&!ti(o)&&(t+=zg(s,r),r=""),n=o,s=s||!ti(n);i++}return""!==r&&(t+=zg(s,r)),t}function et(e){return Bi(()=>{const t=Yg(e),i={...t,decls:e.decls,vars:e.vars,template:e.template,consts:e.consts||null,ngContentSelectors:e.ngContentSelectors,onPush:e.changeDetection===sl.OnPush,directiveDefs:null,pipeDefs:null,dependencies:t.standalone&&e.dependencies||null,getStandaloneInjector:null,signals:e.signals??!1,data:e.data||{},encapsulation:e.encapsulation||ei.Emulated,styles:e.styles||Ee,_:null,schemas:e.schemas||null,tView:null,id:""};Zg(i);const n=e.dependencies;return i.directiveDefs=al(n,!1),i.pipeDefs=al(n,!0),i.id=function DS(e){let t=0;const i=[e.selectors,e.ngContentSelectors,e.hostVars,e.hostAttrs,e.consts,e.vars,e.decls,e.encapsulation,e.standalone,e.signals,e.exportAs,JSON.stringify(e.inputs),JSON.stringify(e.outputs),Object.getOwnPropertyNames(e.type.prototype),!!e.contentQueries,!!e.viewQuery].join("|");for(const r of i)t=Math.imul(31,t)+r.charCodeAt(0)<<0;return t+=2147483648,"c"+t}(i),i})}function mS(e){return me(e)||Vt(e)}function vS(e){return null!==e}function Pe(e){return Bi(()=>({type:e.type,bootstrap:e.bootstrap||Ee,declarations:e.declarations||Ee,imports:e.imports||Ee,exports:e.exports||Ee,transitiveCompileScopes:null,schemas:e.schemas||null,id:e.id||null}))}function qg(e,t){if(null==e)return Di;const i={};for(const n in e)if(e.hasOwnProperty(n)){let r=e[n],s=r;Array.isArray(r)&&(s=r[1],r=r[0]),i[r]=n,t&&(t[r]=s)}return i}function k(e){return Bi(()=>{const t=Yg(e);return Zg(t),t})}function me(e){return e[ol]||null}function Vt(e){return e[Ku]||null}function nn(e){return e[Xu]||null}function Yg(e){const t={};return{type:e.type,providersResolver:null,factory:null,hostBindings:e.hostBindings||null,hostVars:e.hostVars||0,hostAttrs:e.hostAttrs||null,contentQueries:e.contentQueries||null,declaredInputs:t,inputTransforms:null,inputConfig:e.inputs||Di,exportAs:e.exportAs||null,standalone:!0===e.standalone,signals:!0===e.signals,selectors:e.selectors||Ee,viewQuery:e.viewQuery||null,features:e.features||null,setInput:null,findHostDirectiveDefs:null,hostDirectives:null,inputs:qg(e.inputs,t),outputs:qg(e.outputs)}}function Zg(e){e.features?.forEach(t=>t(e))}function al(e,t){if(!e)return null;const i=t?nn:mS;return()=>("function"==typeof e?e():e).map(n=>i(n)).filter(vS)}const ht=0,H=1,ie=2,tt=3,ni=4,Io=5,qt=6,hs=7,vt=8,tr=9,ps=10,ne=11,No=12,Jg=13,gs=14,yt=15,Ao=16,_s=17,wi=18,Oo=19,Qg=20,nr=21,Hi=22,ll=23,cl=24,pe=25,td=1,Kg=2,Ci=7,ms=9,Ht=11;function vn(e){return Array.isArray(e)&&"object"==typeof e[td]}function rn(e){return Array.isArray(e)&&!0===e[td]}function nd(e){return 0!=(4&e.flags)}function Cr(e){return e.componentOffset>-1}function dl(e){return 1==(1&e.flags)}function ii(e){return!!e.template}function id(e){return 0!=(512&e[ie])}function Er(e,t){return e.hasOwnProperty(Vi)?e[Vi]:null}let MS=Ue.WeakRef??class TS{constructor(t){this.ref=t}deref(){return this.ref}},NS=0,Ei=null,fl=!1;function kt(e){const t=Ei;return Ei=e,t}class i_{constructor(){this.id=NS++,this.ref=function IS(e){return new MS(e)}(this),this.producers=new Map,this.consumers=new Map,this.trackingVersion=0,this.valueVersion=0}consumerPollProducersForChange(){for(const[t,i]of this.producers){const n=i.producerNode.deref();if(null!=n&&i.atTrackingVersion===this.trackingVersion){if(n.producerPollStatus(i.seenValueVersion))return!0}else this.producers.delete(t),n?.consumers.delete(this.id)}return!1}producerMayHaveChanged(){const t=fl;fl=!0;try{for(const[i,n]of this.consumers){const r=n.consumerNode.deref();null!=r&&r.trackingVersion===n.atTrackingVersion?r.onConsumerDependencyMayHaveChanged():(this.consumers.delete(i),r?.producers.delete(this.id))}}finally{fl=t}}producerAccessed(){if(fl)throw new Error("");if(null===Ei)return;let t=Ei.producers.get(this.id);void 0===t?(t={consumerNode:Ei.ref,producerNode:this.ref,seenValueVersion:this.valueVersion,atTrackingVersion:Ei.trackingVersion},Ei.producers.set(this.id,t),this.consumers.set(Ei.id,t)):(t.seenValueVersion=this.valueVersion,t.atTrackingVersion=Ei.trackingVersion)}get hasProducers(){return this.producers.size>0}get producerUpdatesAllowed(){return!1!==Ei?.consumerAllowSignalWrites}producerPollStatus(t){return this.valueVersion!==t||(this.onProducerUpdateValueVersion(),this.valueVersion!==t)}}let r_=null;const o_=()=>{};class RS extends i_{constructor(t,i,n){super(),this.watch=t,this.schedule=i,this.dirty=!1,this.cleanupFn=o_,this.registerOnCleanup=r=>{this.cleanupFn=r},this.consumerAllowSignalWrites=n}notify(){this.dirty||this.schedule(this),this.dirty=!0}onConsumerDependencyMayHaveChanged(){this.notify()}onProducerUpdateValueVersion(){}run(){if(this.dirty=!1,0!==this.trackingVersion&&!this.consumerPollProducersForChange())return;const t=kt(this);this.trackingVersion++;try{this.cleanupFn(),this.cleanupFn=o_,this.watch(this.registerOnCleanup)}finally{kt(t)}}cleanup(){this.cleanupFn()}}class PS{constructor(t,i,n){this.previousValue=t,this.currentValue=i,this.firstChange=n}isFirstChange(){return this.firstChange}}function sn(){return a_}function a_(e){return e.type.prototype.ngOnChanges&&(e.setInput=kS),FS}function FS(){const e=c_(this),t=e?.current;if(t){const i=e.previous;if(i===Di)e.previous=t;else for(let n in t)i[n]=t[n];e.current=null,this.ngOnChanges(t)}}function kS(e,t,i,n){const r=this.declaredInputs[i],s=c_(e)||function LS(e,t){return e[l_]=t}(e,{previous:Di,current:null}),o=s.current||(s.current={}),a=s.previous,l=a[r];o[r]=new PS(l&&l.currentValue,t,a===Di),e[n]=t}sn.ngInherit=!0;const l_="__ngSimpleChanges__";function c_(e){return e[l_]||null}const Si=function(e,t,i){};function We(e){for(;Array.isArray(e);)e=e[ht];return e}function gl(e,t){return We(t[e])}function yn(e,t){return We(t[e.index])}function f_(e,t){return e.data[t]}function On(e,t){const i=t[e];return vn(i)?i:i[ht]}function ir(e,t){return null==t?null:e[t]}function h_(e){e[_s]=0}function $S(e){1024&e[ie]||(e[ie]|=1024,g_(e,1))}function p_(e){1024&e[ie]&&(e[ie]&=-1025,g_(e,-1))}function g_(e,t){let i=e[tt];if(null===i)return;i[Io]+=t;let n=i;for(i=i[tt];null!==i&&(1===t&&1===n[Io]||-1===t&&0===n[Io]);)i[Io]+=t,n=i,i=i[tt]}const K={lFrame:T_(null),bindingsEnabled:!0,skipHydrationRootTNode:null};function v_(){return K.bindingsEnabled}function ys(){return null!==K.skipHydrationRootTNode}function A(){return K.lFrame.lView}function ve(){return K.lFrame.tView}function on(e){return K.lFrame.contextLView=e,e[vt]}function an(e){return K.lFrame.contextLView=null,e}function Ut(){let e=y_();for(;null!==e&&64===e.type;)e=e.parent;return e}function y_(){return K.lFrame.currentTNode}function Ti(e,t){const i=K.lFrame;i.currentTNode=e,i.isParent=t}function ud(){return K.lFrame.isParent}function dd(){K.lFrame.isParent=!1}function bs(){return K.lFrame.bindingIndex++}function ji(e){const t=K.lFrame,i=t.bindingIndex;return t.bindingIndex=t.bindingIndex+e,i}function tT(e,t){const i=K.lFrame;i.bindingIndex=i.bindingRootIndex=e,fd(t)}function fd(e){K.lFrame.currentDirectiveIndex=e}function C_(){return K.lFrame.currentQueryIndex}function pd(e){K.lFrame.currentQueryIndex=e}function iT(e){const t=e[H];return 2===t.type?t.declTNode:1===t.type?e[qt]:null}function E_(e,t,i){if(i&ge.SkipSelf){let r=t,s=e;for(;!(r=r.parent,null!==r||i&ge.Host||(r=iT(s),null===r||(s=s[gs],10&r.type))););if(null===r)return!1;t=r,e=s}const n=K.lFrame=S_();return n.currentTNode=t,n.lView=e,!0}function gd(e){const t=S_(),i=e[H];K.lFrame=t,t.currentTNode=i.firstChild,t.lView=e,t.tView=i,t.contextLView=e,t.bindingIndex=i.bindingStartIndex,t.inI18n=!1}function S_(){const e=K.lFrame,t=null===e?null:e.child;return null===t?T_(e):t}function T_(e){const t={currentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:-1,contextLView:null,elementDepthCount:0,currentNamespace:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:e,child:null,inI18n:!1};return null!==e&&(e.child=t),t}function M_(){const e=K.lFrame;return K.lFrame=e.parent,e.currentTNode=null,e.lView=null,e}const I_=M_;function _d(){const e=M_();e.isParent=!0,e.tView=null,e.selectedIndex=-1,e.contextLView=null,e.elementDepthCount=0,e.currentDirectiveIndex=-1,e.currentNamespace=null,e.bindingRootIndex=-1,e.bindingIndex=-1,e.currentQueryIndex=0}function cn(){return K.lFrame.selectedIndex}function Sr(e){K.lFrame.selectedIndex=e}function ot(){const e=K.lFrame;return f_(e.tView,e.selectedIndex)}let A_=!0;function _l(){return A_}function rr(e){A_=e}function ml(e,t){for(let i=t.directiveStart,n=t.directiveEnd;i=n)break}else t[l]<0&&(e[_s]+=65536),(a>13>16&&(3&e[ie])===t&&(e[ie]+=8192,x_(a,s)):x_(a,s)}const Ds=-1;class Po{constructor(t,i,n){this.factory=t,this.resolving=!1,this.canSeeViewProviders=i,this.injectImpl=n}}function yd(e){return e!==Ds}function Fo(e){return 32767&e}function ko(e,t){let i=function gT(e){return e>>16}(e),n=t;for(;i>0;)n=n[gs],i--;return n}let bd=!0;function bl(e){const t=bd;return bd=e,t}const R_=255,P_=5;let _T=0;const Mi={};function Dl(e,t){const i=F_(e,t);if(-1!==i)return i;const n=t[H];n.firstCreatePass&&(e.injectorIndex=t.length,Dd(n.data,e),Dd(t,null),Dd(n.blueprint,null));const r=wl(e,t),s=e.injectorIndex;if(yd(r)){const o=Fo(r),a=ko(r,t),l=a[H].data;for(let c=0;c<8;c++)t[s+c]=a[o+c]|l[o+c]}return t[s+8]=r,s}function Dd(e,t){e.push(0,0,0,0,0,0,0,0,t)}function F_(e,t){return-1===e.injectorIndex||e.parent&&e.parent.injectorIndex===e.injectorIndex||null===t[e.injectorIndex+8]?-1:e.injectorIndex}function wl(e,t){if(e.parent&&-1!==e.parent.injectorIndex)return e.parent.injectorIndex;let i=0,n=null,r=t;for(;null!==r;){if(n=j_(r),null===n)return Ds;if(i++,r=r[gs],-1!==n.injectorIndex)return n.injectorIndex|i<<16}return Ds}function wd(e,t,i){!function mT(e,t,i){let n;"string"==typeof i?n=i.charCodeAt(0)||0:i.hasOwnProperty(So)&&(n=i[So]),null==n&&(n=i[So]=_T++);const r=n&R_;t.data[e+(r>>P_)]|=1<=0?t&R_:wT:t}(i);if("function"==typeof s){if(!E_(t,e,n))return n&ge.Host?k_(r,0,n):L_(t,i,n,r);try{let o;if(o=s(n),null!=o||n&ge.Optional)return o;$u()}finally{I_()}}else if("number"==typeof s){let o=null,a=F_(e,t),l=Ds,c=n&ge.Host?t[yt][qt]:null;for((-1===a||n&ge.SkipSelf)&&(l=-1===a?wl(e,t):t[a+8],l!==Ds&&U_(n,!1)?(o=t[H],a=Fo(l),t=ko(l,t)):a=-1);-1!==a;){const u=t[H];if(H_(s,a,u.data)){const h=yT(a,t,i,o,n,c);if(h!==Mi)return h}l=t[a+8],l!==Ds&&U_(n,t[H].data[a+8]===c)&&H_(s,a,t)?(o=u,a=Fo(l),t=ko(l,t)):a=-1}}return r}function yT(e,t,i,n,r,s){const o=t[H],a=o.data[e+8],u=Cl(a,o,i,null==n?Cr(a)&&bd:n!=o&&0!=(3&a.type),r&ge.Host&&s===a);return null!==u?Tr(t,o,u,a):Mi}function Cl(e,t,i,n,r){const s=e.providerIndexes,o=t.data,a=1048575&s,l=e.directiveStart,u=s>>20,g=r?a+u:e.directiveEnd;for(let _=n?a:a+u;_=l&&y.type===i)return _}if(r){const _=o[l];if(_&&ii(_)&&_.type===i)return l}return null}function Tr(e,t,i,n){let r=e[i];const s=t.data;if(function fT(e){return e instanceof Po}(r)){const o=r;o.resolving&&function GE(e,t){const i=t?`. Dependency path: ${t.join(" > ")} > ${e}`:"";throw new F(-200,`Circular dependency in DI detected for ${e}${i}`)}(function Ne(e){return"function"==typeof e?e.name||e.toString():"object"==typeof e&&null!=e&&"function"==typeof e.type?e.type.name||e.type.toString():te(e)}(s[i]));const a=bl(o.canSeeViewProviders);o.resolving=!0;const c=o.injectImpl?_n(o.injectImpl):null;E_(e,n,ge.Default);try{r=e[i]=o.factory(void 0,s,e,n),t.firstCreatePass&&i>=n.directiveStart&&function uT(e,t,i){const{ngOnChanges:n,ngOnInit:r,ngDoCheck:s}=t.type.prototype;if(n){const o=a_(t);(i.preOrderHooks??=[]).push(e,o),(i.preOrderCheckHooks??=[]).push(e,o)}r&&(i.preOrderHooks??=[]).push(0-e,r),s&&((i.preOrderHooks??=[]).push(e,s),(i.preOrderCheckHooks??=[]).push(e,s))}(i,s[i],t)}finally{null!==c&&_n(c),bl(a),o.resolving=!1,I_()}}return r}function H_(e,t,i){return!!(i[t+(e>>P_)]&1<{const t=e.prototype.constructor,i=t[Vi]||Cd(t),n=Object.prototype;let r=Object.getPrototypeOf(e.prototype).constructor;for(;r&&r!==n;){const s=r[Vi]||Cd(r);if(s&&s!==i)return s;r=Object.getPrototypeOf(r)}return s=>new s})}function Cd(e){return Uu(e)?()=>{const t=Cd(X(e));return t&&t()}:Er(e)}function j_(e){const t=e[H],i=t.type;return 2===i?t.declTNode:1===i?e[qt]:null}const Es="__parameters__";function Ts(e,t,i){return Bi(()=>{const n=function Ed(e){return function(...i){if(e){const n=e(...i);for(const r in n)this[r]=n[r]}}}(t);function r(...s){if(this instanceof r)return n.apply(this,s),this;const o=new r(...s);return a.annotation=o,a;function a(l,c,u){const h=l.hasOwnProperty(Es)?l[Es]:Object.defineProperty(l,Es,{value:[]})[Es];for(;h.length<=u;)h.push(null);return(h[u]=h[u]||[]).push(o),l}}return i&&(r.prototype=Object.create(i.prototype)),r.prototype.ngMetadataName=e,r.annotationCls=r,r})}function Is(e,t){e.forEach(i=>Array.isArray(i)?Is(i,t):t(i))}function G_(e,t,i){t>=e.length?e.push(i):e.splice(t,0,i)}function El(e,t){return t>=e.length-1?e.pop():e.splice(t,1)[0]}function Vo(e,t){const i=[];for(let n=0;n=0?e[1|n]=i:(n=~n,function AT(e,t,i,n){let r=e.length;if(r==t)e.push(i,n);else if(1===r)e.push(n,e[0]),e[0]=i;else{for(r--,e.push(e[r-1],e[r]);r>t;)e[r]=e[r-2],r--;e[t]=i,e[t+1]=n}}(e,n,t,i)),n}function Sd(e,t){const i=Ns(e,t);if(i>=0)return e[1|i]}function Ns(e,t){return function z_(e,t,i){let n=0,r=e.length>>i;for(;r!==n;){const s=n+(r-n>>1),o=e[s<t?r=s:n=s+1}return~(r<0&&(e[i-1][ni]=n[ni]);const s=El(e,Ht+t);!function hM(e,t){Go(e,t,t[ne],2,null,null),t[ht]=null,t[qt]=null}(n[H],n);const o=s[wi];null!==o&&o.detachView(s[H]),n[tt]=null,n[ni]=null,n[ie]&=-129}return n}function Bd(e,t){if(!(256&t[ie])){const i=t[ne];t[ll]?.destroy(),t[cl]?.destroy(),i.destroyNode&&Go(e,t,i,3,null,null),function _M(e){let t=e[No];if(!t)return Vd(e[H],e);for(;t;){let i=null;if(vn(t))i=t[No];else{const n=t[Ht];n&&(i=n)}if(!i){for(;t&&!t[ni]&&t!==e;)vn(t)&&Vd(t[H],t),t=t[tt];null===t&&(t=e),vn(t)&&Vd(t[H],t),i=t&&t[ni]}t=i}}(t)}}function Vd(e,t){if(!(256&t[ie])){t[ie]&=-129,t[ie]|=256,function bM(e,t){let i;if(null!=e&&null!=(i=e.destroyHooks))for(let n=0;n=0?n[o]():n[-o].unsubscribe(),s+=2}else i[s].call(n[i[s+1]]);null!==n&&(t[hs]=null);const r=t[nr];if(null!==r){t[nr]=null;for(let s=0;s-1){const{encapsulation:s}=e.data[n.directiveStart+r];if(s===ei.None||s===ei.Emulated)return null}return yn(n,i)}}(e,t.parent,i)}function Mr(e,t,i,n,r){e.insertBefore(t,i,n,r)}function mm(e,t,i){e.appendChild(t,i)}function vm(e,t,i,n,r){null!==n?Mr(e,t,i,n,r):mm(e,t,i)}function Fl(e,t){return e.parentNode(t)}function ym(e,t,i){return Dm(e,t,i)}let Ud,Bl,zd,Vl,Dm=function bm(e,t,i){return 40&e.type?yn(e,i):null};function kl(e,t,i,n){const r=Hd(e,n,t),s=t[ne],a=ym(n.parent||t[qt],n,t);if(null!=r)if(Array.isArray(i))for(let l=0;le,createScript:e=>e,createScriptURL:e=>e})}catch{}return Bl}()?.createHTML(e)||e}function Ps(){if(void 0!==zd)return zd;if(typeof document<"u")return document;throw new F(210,!1)}function Im(e){return function Wd(){if(void 0===Vl&&(Vl=null,Ue.trustedTypes))try{Vl=Ue.trustedTypes.createPolicy("angular#unsafe-bypass",{createHTML:e=>e,createScript:e=>e,createScriptURL:e=>e})}catch{}return Vl}()?.createHTML(e)||e}class Om{constructor(t){this.changingThisBreaksApplicationSecurity=t}toString(){return`SafeValue must use [property]=binding: ${this.changingThisBreaksApplicationSecurity} (see ${Ig})`}}function or(e){return e instanceof Om?e.changingThisBreaksApplicationSecurity:e}function zo(e,t){const i=function kM(e){return e instanceof Om&&e.getTypeName()||null}(e);if(null!=i&&i!==t){if("ResourceURL"===i&&"URL"===t)return!0;throw new Error(`Required a safe ${t}, got a ${i} (see ${Ig})`)}return i===t}class LM{constructor(t){this.inertDocumentHelper=t}getInertBodyElement(t){t=""+t;try{const i=(new window.DOMParser).parseFromString(Rs(t),"text/html").body;return null===i?this.inertDocumentHelper.getInertBodyElement(t):(i.removeChild(i.firstChild),i)}catch{return null}}}class BM{constructor(t){this.defaultDoc=t,this.inertDocument=this.defaultDoc.implementation.createHTMLDocument("sanitization-inert")}getInertBodyElement(t){const i=this.inertDocument.createElement("template");return i.innerHTML=Rs(t),i}}const HM=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:\/?#]*(?:[\/?#]|$))/i;function qd(e){return(e=String(e)).match(HM)?e:"unsafe:"+e}function $i(e){const t={};for(const i of e.split(","))t[i]=!0;return t}function Wo(...e){const t={};for(const i of e)for(const n in i)i.hasOwnProperty(n)&&(t[n]=!0);return t}const Rm=$i("area,br,col,hr,img,wbr"),Pm=$i("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"),Fm=$i("rp,rt"),Yd=Wo(Rm,Wo(Pm,$i("address,article,aside,blockquote,caption,center,del,details,dialog,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5,h6,header,hgroup,hr,ins,main,map,menu,nav,ol,pre,section,summary,table,ul")),Wo(Fm,$i("a,abbr,acronym,audio,b,bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,picture,q,ruby,rp,rt,s,samp,small,source,span,strike,strong,sub,sup,time,track,tt,u,var,video")),Wo(Fm,Pm)),Zd=$i("background,cite,href,itemtype,longdesc,poster,src,xlink:href"),km=Wo(Zd,$i("abbr,accesskey,align,alt,autoplay,axis,bgcolor,border,cellpadding,cellspacing,class,clear,color,cols,colspan,compact,controls,coords,datetime,default,dir,download,face,headers,height,hidden,hreflang,hspace,ismap,itemscope,itemprop,kind,label,lang,language,loop,media,muted,nohref,nowrap,open,preload,rel,rev,role,rows,rowspan,rules,scope,scrolling,shape,size,sizes,span,srclang,srcset,start,summary,tabindex,target,title,translate,type,usemap,valign,value,vspace,width"),$i("aria-activedescendant,aria-atomic,aria-autocomplete,aria-busy,aria-checked,aria-colcount,aria-colindex,aria-colspan,aria-controls,aria-current,aria-describedby,aria-details,aria-disabled,aria-dropeffect,aria-errormessage,aria-expanded,aria-flowto,aria-grabbed,aria-haspopup,aria-hidden,aria-invalid,aria-keyshortcuts,aria-label,aria-labelledby,aria-level,aria-live,aria-modal,aria-multiline,aria-multiselectable,aria-orientation,aria-owns,aria-placeholder,aria-posinset,aria-pressed,aria-readonly,aria-relevant,aria-required,aria-roledescription,aria-rowcount,aria-rowindex,aria-rowspan,aria-selected,aria-setsize,aria-sort,aria-valuemax,aria-valuemin,aria-valuenow,aria-valuetext")),UM=$i("script,style,template");class jM{constructor(){this.sanitizedSomething=!1,this.buf=[]}sanitizeChildren(t){let i=t.firstChild,n=!0;for(;i;)if(i.nodeType===Node.ELEMENT_NODE?n=this.startElement(i):i.nodeType===Node.TEXT_NODE?this.chars(i.nodeValue):this.sanitizedSomething=!0,n&&i.firstChild)i=i.firstChild;else for(;i;){i.nodeType===Node.ELEMENT_NODE&&this.endElement(i);let r=this.checkClobberedElement(i,i.nextSibling);if(r){i=r;break}i=this.checkClobberedElement(i,i.parentNode)}return this.buf.join("")}startElement(t){const i=t.nodeName.toLowerCase();if(!Yd.hasOwnProperty(i))return this.sanitizedSomething=!0,!UM.hasOwnProperty(i);this.buf.push("<"),this.buf.push(i);const n=t.attributes;for(let r=0;r"),!0}endElement(t){const i=t.nodeName.toLowerCase();Yd.hasOwnProperty(i)&&!Rm.hasOwnProperty(i)&&(this.buf.push(""))}chars(t){this.buf.push(Lm(t))}checkClobberedElement(t,i){if(i&&(t.compareDocumentPosition(i)&Node.DOCUMENT_POSITION_CONTAINED_BY)===Node.DOCUMENT_POSITION_CONTAINED_BY)throw new Error(`Failed to sanitize html because the element is clobbered: ${t.outerHTML}`);return i}}const $M=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,GM=/([^\#-~ |!])/g;function Lm(e){return e.replace(/&/g,"&").replace($M,function(t){return"&#"+(1024*(t.charCodeAt(0)-55296)+(t.charCodeAt(1)-56320)+65536)+";"}).replace(GM,function(t){return"&#"+t.charCodeAt(0)+";"}).replace(//g,">")}let Hl;function Jd(e){return"content"in e&&function WM(e){return e.nodeType===Node.ELEMENT_NODE&&"TEMPLATE"===e.nodeName}(e)?e.content:null}var Fs=function(e){return e[e.NONE=0]="NONE",e[e.HTML=1]="HTML",e[e.STYLE=2]="STYLE",e[e.SCRIPT=3]="SCRIPT",e[e.URL=4]="URL",e[e.RESOURCE_URL=5]="RESOURCE_URL",e}(Fs||{});function Bm(e){const t=qo();return t?Im(t.sanitize(Fs.HTML,e)||""):zo(e,"HTML")?Im(or(e)):function zM(e,t){let i=null;try{Hl=Hl||function xm(e){const t=new BM(e);return function VM(){try{return!!(new window.DOMParser).parseFromString(Rs(""),"text/html")}catch{return!1}}()?new LM(t):t}(e);let n=t?String(t):"";i=Hl.getInertBodyElement(n);let r=5,s=n;do{if(0===r)throw new Error("Failed to sanitize html because the input is unstable");r--,n=s,s=i.innerHTML,i=Hl.getInertBodyElement(n)}while(n!==s);return Rs((new jM).sanitizeChildren(Jd(i)||i))}finally{if(i){const n=Jd(i)||i;for(;n.firstChild;)n.removeChild(n.firstChild)}}}(Ps(),te(e))}function Qd(e){const t=qo();return t?t.sanitize(Fs.URL,e)||"":zo(e,"URL")?or(e):qd(te(e))}function qo(){const e=A();return e&&e[ps].sanitizer}class W{constructor(t,i){this._desc=t,this.ngMetadataName="InjectionToken",this.\u0275prov=void 0,"number"==typeof i?this.__NG_ELEMENT_ID__=i:void 0!==i&&(this.\u0275prov=G({token:this,providedIn:i.providedIn||"root",factory:i.factory}))}get multi(){return this}toString(){return`InjectionToken ${this._desc}`}}const Ul=new W("ENVIRONMENT_INITIALIZER"),Hm=new W("INJECTOR",-1),Um=new W("INJECTOR_DEF_TYPES");class Kd{get(t,i=Co){if(i===Co){const n=new Error(`NullInjectorError: No provider for ${Nt(t)}!`);throw n.name="NullInjectorError",n}return i}}function XM(...e){return{\u0275providers:jm(0,e),\u0275fromNgModule:!0}}function jm(e,...t){const i=[],n=new Set;let r;const s=o=>{i.push(o)};return Is(t,o=>{const a=o;jl(a,s,[],n)&&(r||=[],r.push(a))}),void 0!==r&&$m(r,s),i}function $m(e,t){for(let i=0;i{t(s,n)})}}function jl(e,t,i,n){if(!(e=X(e)))return!1;let r=null,s=tl(e);const o=!s&&me(e);if(s||o){if(o&&!o.standalone)return!1;r=e}else{const l=e.ngModule;if(s=tl(l),!s)return!1;r=l}const a=n.has(r);if(o){if(a)return!1;if(n.add(r),o.dependencies){const l="function"==typeof o.dependencies?o.dependencies():o.dependencies;for(const c of l)jl(c,t,i,n)}}else{if(!s)return!1;{if(null!=s.imports&&!a){let c;n.add(r);try{Is(s.imports,u=>{jl(u,t,i,n)&&(c||=[],c.push(u))})}finally{}void 0!==c&&$m(c,t)}if(!a){const c=Er(r)||(()=>new r);t({provide:r,useFactory:c,deps:Ee},r),t({provide:Um,useValue:r,multi:!0},r),t({provide:Ul,useValue:()=>L(r),multi:!0},r)}const l=s.providers;if(null!=l&&!a){const c=e;ef(l,u=>{t(u,c)})}}}return r!==e&&void 0!==e.providers}function ef(e,t){for(let i of e)ju(i)&&(i=i.\u0275providers),Array.isArray(i)?ef(i,t):t(i)}const eI=Re({provide:String,useValue:Re});function tf(e){return null!==e&&"object"==typeof e&&eI in e}function Ir(e){return"function"==typeof e}const nf=new W("Set Injector scope."),$l={},nI={};let rf;function Gl(){return void 0===rf&&(rf=new Kd),rf}class Gn{}class zl extends Gn{get destroyed(){return this._destroyed}constructor(t,i,n,r){super(),this.parent=i,this.source=n,this.scopes=r,this.records=new Map,this._ngOnDestroyHooks=new Set,this._onDestroyHooks=[],this._destroyed=!1,af(t,o=>this.processProvider(o)),this.records.set(Hm,ks(void 0,this)),r.has("environment")&&this.records.set(Gn,ks(void 0,this));const s=this.records.get(nf);null!=s&&"string"==typeof s.value&&this.scopes.add(s.value),this.injectorDefTypes=new Set(this.get(Um.multi,Ee,ge.Self))}destroy(){this.assertNotDestroyed(),this._destroyed=!0;try{for(const i of this._ngOnDestroyHooks)i.ngOnDestroy();const t=this._onDestroyHooks;this._onDestroyHooks=[];for(const i of t)i()}finally{this.records.clear(),this._ngOnDestroyHooks.clear(),this.injectorDefTypes.clear()}}onDestroy(t){return this.assertNotDestroyed(),this._onDestroyHooks.push(t),()=>this.removeOnDestroy(t)}runInContext(t){this.assertNotDestroyed();const i=er(this),n=_n(void 0);try{return t()}finally{er(i),_n(n)}}get(t,i=Co,n=ge.Default){if(this.assertNotDestroyed(),t.hasOwnProperty(Lg))return t[Lg](this);n=rl(n);const s=er(this),o=_n(void 0);try{if(!(n&ge.SkipSelf)){let l=this.records.get(t);if(void 0===l){const c=function aI(e){return"function"==typeof e||"object"==typeof e&&e instanceof W}(t)&&el(t);l=c&&this.injectableDefInScope(c)?ks(sf(t),$l):null,this.records.set(t,l)}if(null!=l)return this.hydrate(t,l)}return(n&ge.Self?Gl():this.parent).get(t,i=n&ge.Optional&&i===Co?null:i)}catch(a){if("NullInjectorError"===a.name){if((a[il]=a[il]||[]).unshift(Nt(t)),s)throw a;return function rS(e,t,i,n){const r=e[il];throw t[Pg]&&r.unshift(t[Pg]),e.message=function sS(e,t,i,n=null){e=e&&"\n"===e.charAt(0)&&"\u0275"==e.charAt(1)?e.slice(2):e;let r=Nt(t);if(Array.isArray(t))r=t.map(Nt).join(" -> ");else if("object"==typeof t){let s=[];for(let o in t)if(t.hasOwnProperty(o)){let a=t[o];s.push(o+":"+("string"==typeof a?JSON.stringify(a):Nt(a)))}r=`{${s.join(", ")}}`}return`${i}${n?"("+n+")":""}[${r}]: ${e.replace(XE,"\n ")}`}("\n"+e.message,r,i,n),e.ngTokenPath=r,e[il]=null,e}(a,t,"R3InjectorError",this.source)}throw a}finally{_n(o),er(s)}}resolveInjectorInitializers(){const t=er(this),i=_n(void 0);try{const r=this.get(Ul.multi,Ee,ge.Self);for(const s of r)s()}finally{er(t),_n(i)}}toString(){const t=[],i=this.records;for(const n of i.keys())t.push(Nt(n));return`R3Injector[${t.join(", ")}]`}assertNotDestroyed(){if(this._destroyed)throw new F(205,!1)}processProvider(t){let i=Ir(t=X(t))?t:X(t&&t.provide);const n=function rI(e){return tf(e)?ks(void 0,e.useValue):ks(Wm(e),$l)}(t);if(Ir(t)||!0!==t.multi)this.records.get(i);else{let r=this.records.get(i);r||(r=ks(void 0,$l,!0),r.factory=()=>Qu(r.multi),this.records.set(i,r)),i=t,r.multi.push(t)}this.records.set(i,n)}hydrate(t,i){return i.value===$l&&(i.value=nI,i.value=i.factory()),"object"==typeof i.value&&i.value&&function oI(e){return null!==e&&"object"==typeof e&&"function"==typeof e.ngOnDestroy}(i.value)&&this._ngOnDestroyHooks.add(i.value),i.value}injectableDefInScope(t){if(!t.providedIn)return!1;const i=X(t.providedIn);return"string"==typeof i?"any"===i||this.scopes.has(i):this.injectorDefTypes.has(i)}removeOnDestroy(t){const i=this._onDestroyHooks.indexOf(t);-1!==i&&this._onDestroyHooks.splice(i,1)}}function sf(e){const t=el(e),i=null!==t?t.factory:Er(e);if(null!==i)return i;if(e instanceof W)throw new F(204,!1);if(e instanceof Function)return function iI(e){const t=e.length;if(t>0)throw Vo(t,"?"),new F(204,!1);const i=function ZE(e){return e&&(e[nl]||e[Ag])||null}(e);return null!==i?()=>i.factory(e):()=>new e}(e);throw new F(204,!1)}function Wm(e,t,i){let n;if(Ir(e)){const r=X(e);return Er(r)||sf(r)}if(tf(e))n=()=>X(e.useValue);else if(function zm(e){return!(!e||!e.useFactory)}(e))n=()=>e.useFactory(...Qu(e.deps||[]));else if(function Gm(e){return!(!e||!e.useExisting)}(e))n=()=>L(X(e.useExisting));else{const r=X(e&&(e.useClass||e.provide));if(!function sI(e){return!!e.deps}(e))return Er(r)||sf(r);n=()=>new r(...Qu(e.deps))}return n}function ks(e,t,i=!1){return{factory:e,value:t,multi:i?[]:void 0}}function af(e,t){for(const i of e)Array.isArray(i)?af(i,t):i&&ju(i)?af(i.\u0275providers,t):t(i)}const Wl=new W("AppId",{providedIn:"root",factory:()=>lI}),lI="ng",qm=new W("Platform Initializer"),Nr=new W("Platform ID",{providedIn:"platform",factory:()=>"unknown"}),Ym=new W("CSP nonce",{providedIn:"root",factory:()=>Ps().body?.querySelector("[ngCspNonce]")?.getAttribute("ngCspNonce")||null});let Zm=(e,t,i)=>null;function gf(e,t,i=!1){return Zm(e,t,i)}class vI{}class Km{}class bI{resolveComponentFactory(t){throw function yI(e){const t=Error(`No component factory found for ${Nt(e)}.`);return t.ngComponent=e,t}(t)}}let Kl=(()=>{class t{}return t.NULL=new bI,t})();function DI(){return Vs(Ut(),A())}function Vs(e,t){return new Fe(yn(e,t))}let Fe=(()=>{class t{constructor(n){this.nativeElement=n}}return t.__NG_ELEMENT_ID__=DI,t})();function wI(e){return e instanceof Fe?e.nativeElement:e}class vf{}let zn=(()=>{class t{constructor(){this.destroyNode=null}}return t.__NG_ELEMENT_ID__=()=>function CI(){const e=A(),i=On(Ut().index,e);return(vn(i)?i:e)[ne]}(),t})(),EI=(()=>{var e;class t{}return(e=t).\u0275prov=G({token:e,providedIn:"root",factory:()=>null}),t})();class Xl{constructor(t){this.full=t,this.major=t.split(".")[0],this.minor=t.split(".")[1],this.patch=t.split(".").slice(2).join(".")}}const SI=new Xl("16.2.3"),yf={};function iv(e,t=null,i=null,n){const r=rv(e,t,i,n);return r.resolveInjectorInitializers(),r}function rv(e,t=null,i=null,n,r=new Set){const s=[i||Ee,XM(e)];return n=n||("object"==typeof e?void 0:Nt(e)),new zl(s,t||Gl(),n||null,r)}let Zt=(()=>{var e;class t{static create(n,r){if(Array.isArray(n))return iv({name:""},r,n,"");{const s=n.name??"";return iv({name:s},n.parent,n.providers,s)}}}return(e=t).THROW_IF_NOT_FOUND=Co,e.NULL=new Kd,e.\u0275prov=G({token:e,providedIn:"any",factory:()=>L(Hm)}),e.__NG_ELEMENT_ID__=-1,t})();function wf(e){return t=>{setTimeout(e,void 0,t)}}const Y=class xI extends ee{constructor(t=!1){super(),this.__isAsync=t}emit(t){super.next(t)}subscribe(t,i,n){let r=t,s=i||(()=>null),o=n;if(t&&"object"==typeof t){const l=t;r=l.next?.bind(l),s=l.error?.bind(l),o=l.complete?.bind(l)}this.__isAsync&&(s=wf(s),r&&(r=wf(r)),o&&(o=wf(o)));const a=super.subscribe({next:r,error:s,complete:o});return t instanceof de&&t.add(a),a}};function sv(...e){}class Se{constructor({enableLongStackTrace:t=!1,shouldCoalesceEventChangeDetection:i=!1,shouldCoalesceRunChangeDetection:n=!1}){if(this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new Y(!1),this.onMicrotaskEmpty=new Y(!1),this.onStable=new Y(!1),this.onError=new Y(!1),typeof Zone>"u")throw new F(908,!1);Zone.assertZonePatched();const r=this;r._nesting=0,r._outer=r._inner=Zone.current,Zone.TaskTrackingZoneSpec&&(r._inner=r._inner.fork(new Zone.TaskTrackingZoneSpec)),t&&Zone.longStackTraceZoneSpec&&(r._inner=r._inner.fork(Zone.longStackTraceZoneSpec)),r.shouldCoalesceEventChangeDetection=!n&&i,r.shouldCoalesceRunChangeDetection=n,r.lastRequestAnimationFrameId=-1,r.nativeRequestAnimationFrame=function RI(){const e="function"==typeof Ue.requestAnimationFrame;let t=Ue[e?"requestAnimationFrame":"setTimeout"],i=Ue[e?"cancelAnimationFrame":"clearTimeout"];if(typeof Zone<"u"&&t&&i){const n=t[Zone.__symbol__("OriginalDelegate")];n&&(t=n);const r=i[Zone.__symbol__("OriginalDelegate")];r&&(i=r)}return{nativeRequestAnimationFrame:t,nativeCancelAnimationFrame:i}}().nativeRequestAnimationFrame,function kI(e){const t=()=>{!function FI(e){e.isCheckStableRunning||-1!==e.lastRequestAnimationFrameId||(e.lastRequestAnimationFrameId=e.nativeRequestAnimationFrame.call(Ue,()=>{e.fakeTopEventTask||(e.fakeTopEventTask=Zone.root.scheduleEventTask("fakeTopEventTask",()=>{e.lastRequestAnimationFrameId=-1,Ef(e),e.isCheckStableRunning=!0,Cf(e),e.isCheckStableRunning=!1},void 0,()=>{},()=>{})),e.fakeTopEventTask.invoke()}),Ef(e))}(e)};e._inner=e._inner.fork({name:"angular",properties:{isAngularZone:!0},onInvokeTask:(i,n,r,s,o,a)=>{try{return ov(e),i.invokeTask(r,s,o,a)}finally{(e.shouldCoalesceEventChangeDetection&&"eventTask"===s.type||e.shouldCoalesceRunChangeDetection)&&t(),av(e)}},onInvoke:(i,n,r,s,o,a,l)=>{try{return ov(e),i.invoke(r,s,o,a,l)}finally{e.shouldCoalesceRunChangeDetection&&t(),av(e)}},onHasTask:(i,n,r,s)=>{i.hasTask(r,s),n===r&&("microTask"==s.change?(e._hasPendingMicrotasks=s.microTask,Ef(e),Cf(e)):"macroTask"==s.change&&(e.hasPendingMacrotasks=s.macroTask))},onHandleError:(i,n,r,s)=>(i.handleError(r,s),e.runOutsideAngular(()=>e.onError.emit(s)),!1)})}(r)}static isInAngularZone(){return typeof Zone<"u"&&!0===Zone.current.get("isAngularZone")}static assertInAngularZone(){if(!Se.isInAngularZone())throw new F(909,!1)}static assertNotInAngularZone(){if(Se.isInAngularZone())throw new F(909,!1)}run(t,i,n){return this._inner.run(t,i,n)}runTask(t,i,n,r){const s=this._inner,o=s.scheduleEventTask("NgZoneEvent: "+r,t,PI,sv,sv);try{return s.runTask(o,i,n)}finally{s.cancelTask(o)}}runGuarded(t,i,n){return this._inner.runGuarded(t,i,n)}runOutsideAngular(t){return this._outer.run(t)}}const PI={};function Cf(e){if(0==e._nesting&&!e.hasPendingMicrotasks&&!e.isStable)try{e._nesting++,e.onMicrotaskEmpty.emit(null)}finally{if(e._nesting--,!e.hasPendingMicrotasks)try{e.runOutsideAngular(()=>e.onStable.emit(null))}finally{e.isStable=!0}}}function Ef(e){e.hasPendingMicrotasks=!!(e._hasPendingMicrotasks||(e.shouldCoalesceEventChangeDetection||e.shouldCoalesceRunChangeDetection)&&-1!==e.lastRequestAnimationFrameId)}function ov(e){e._nesting++,e.isStable&&(e.isStable=!1,e.onUnstable.emit(null))}function av(e){e._nesting--,Cf(e)}class LI{constructor(){this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new Y,this.onMicrotaskEmpty=new Y,this.onStable=new Y,this.onError=new Y}run(t,i,n){return t.apply(i,n)}runGuarded(t,i,n){return t.apply(i,n)}runOutsideAngular(t){return t()}runTask(t,i,n,r){return t.apply(i,n)}}const lv=new W("",{providedIn:"root",factory:cv});function cv(){const e=fe(Se);let t=!0;return function Sg(...e){const t=Qa(e),i=function PE(e,t){return"number"==typeof ku(e)?e.pop():t}(e,1/0),n=e;return n.length?1===n.length?Ft(n[0]):bg(i)(wo(n,t)):Do}(new ze(r=>{t=e.isStable&&!e.hasPendingMacrotasks&&!e.hasPendingMicrotasks,e.runOutsideAngular(()=>{r.next(t),r.complete()})}),new ze(r=>{let s;e.runOutsideAngular(()=>{s=e.onStable.subscribe(()=>{Se.assertNotInAngularZone(),queueMicrotask(()=>{!t&&!e.hasPendingMacrotasks&&!e.hasPendingMicrotasks&&(t=!0,r.next(!0))})})});const o=e.onUnstable.subscribe(()=>{Se.assertInAngularZone(),t&&(t=!1,e.runOutsideAngular(()=>{r.next(!1)}))});return()=>{s.unsubscribe(),o.unsubscribe()}}).pipe(Tg()))}let Sf=(()=>{var e;class t{constructor(){this.callbacks=new Set,this.deferredCallbacks=new Set,this.renderDepth=0,this.runningCallbacks=!1}begin(){if(this.runningCallbacks)throw new F(102,!1);this.renderDepth++}end(){if(this.renderDepth--,0===this.renderDepth)try{this.runningCallbacks=!0;for(const n of this.callbacks)n.invoke()}finally{this.runningCallbacks=!1;for(const n of this.deferredCallbacks)this.callbacks.add(n);this.deferredCallbacks.clear()}}register(n){(this.runningCallbacks?this.deferredCallbacks:this.callbacks).add(n)}unregister(n){this.callbacks.delete(n),this.deferredCallbacks.delete(n)}ngOnDestroy(){this.callbacks.clear(),this.deferredCallbacks.clear()}}return(e=t).\u0275prov=G({token:e,providedIn:"root",factory:()=>new e}),t})();function Jo(e){for(;e;){e[ie]|=64;const t=jo(e);if(id(e)&&!t)return e;e=t}return null}function Tf(e){return e.ngOriginalError}class Ar{constructor(){this._console=console}handleError(t){const i=this._findOriginalError(t);this._console.error("ERROR",t),i&&this._console.error("ORIGINAL ERROR",i)}_findOriginalError(t){let i=t&&Tf(t);for(;i&&Tf(i);)i=Tf(i);return i||null}}const pv=new W("",{providedIn:"root",factory:()=>!1});class vv extends i_{constructor(){super(...arguments),this.consumerAllowSignalWrites=!1,this._lView=null}set lView(t){this._lView=t}onConsumerDependencyMayHaveChanged(){Jo(this._lView)}onProducerUpdateValueVersion(){}get hasReadASignal(){return this.hasProducers}runInContext(t,i,n){const r=kt(this);this.trackingVersion++;try{t(i,n)}finally{kt(r)}}destroy(){this.trackingVersion++}}let tc=null;function yv(){return tc??=new vv,tc}function bv(e,t){return e[t]??yv()}function Dv(e,t){const i=yv();i.hasReadASignal&&(e[t]=tc,i.lView=e,tc=new vv)}const re={};function R(e){wv(ve(),A(),cn()+e,!1)}function wv(e,t,i,n){if(!n)if(3==(3&t[ie])){const s=e.preOrderCheckHooks;null!==s&&vl(t,s,i)}else{const s=e.preOrderHooks;null!==s&&yl(t,s,0,i)}Sr(i)}function v(e,t=ge.Default){const i=A();return null===i?L(e,t):B_(Ut(),i,X(e),t)}function nc(e,t,i,n,r,s,o,a,l,c,u){const h=t.blueprint.slice();return h[ht]=r,h[ie]=140|n,(null!==c||e&&2048&e[ie])&&(h[ie]|=2048),h_(h),h[tt]=h[gs]=e,h[vt]=i,h[ps]=o||e&&e[ps],h[ne]=a||e&&e[ne],h[tr]=l||e&&e[tr]||null,h[qt]=s,h[Oo]=function tM(){return eM++}(),h[Hi]=u,h[Qg]=c,h[yt]=2==t.type?e[yt]:h,h}function js(e,t,i,n,r){let s=e.data[t];if(null===s)s=function Mf(e,t,i,n,r){const s=y_(),o=ud(),l=e.data[t]=function tN(e,t,i,n,r,s){let o=t?t.injectorIndex:-1,a=0;return ys()&&(a|=128),{type:i,index:n,insertBeforeIndex:null,injectorIndex:o,directiveStart:-1,directiveEnd:-1,directiveStylingLast:-1,componentOffset:-1,propertyBindings:null,flags:a,providerIndexes:0,value:r,attrs:s,mergedAttrs:null,localNames:null,initialInputs:void 0,inputs:null,outputs:null,tView:null,next:null,prev:null,projectionNext:null,child:null,parent:t,projection:null,styles:null,stylesWithoutHost:null,residualStyles:void 0,classes:null,classesWithoutHost:null,residualClasses:void 0,classBindings:0,styleBindings:0}}(0,o?s:s&&s.parent,i,t,n,r);return null===e.firstChild&&(e.firstChild=l),null!==s&&(o?null==s.child&&null!==l.parent&&(s.child=l):null===s.next&&(s.next=l,l.prev=s)),l}(e,t,i,n,r),function eT(){return K.lFrame.inI18n}()&&(s.flags|=32);else if(64&s.type){s.type=i,s.value=n,s.attrs=r;const o=function Ro(){const e=K.lFrame,t=e.currentTNode;return e.isParent?t:t.parent}();s.injectorIndex=null===o?-1:o.injectorIndex}return Ti(s,!0),s}function Qo(e,t,i,n){if(0===i)return-1;const r=t.length;for(let s=0;spe&&wv(e,t,pe,!1),Si(a?2:0,r),a)s.runInContext(i,n,r);else{const c=kt(null);try{i(n,r)}finally{kt(c)}}}finally{a&&null===t[ll]&&Dv(t,ll),Sr(o),Si(a?3:1,r)}}function If(e,t,i){if(nd(t)){const n=kt(null);try{const s=t.directiveEnd;for(let o=t.directiveStart;onull;function Tv(e,t,i,n){for(let r in e)if(e.hasOwnProperty(r)){i=null===i?{}:i;const s=e[r];null===n?Mv(i,t,r,s):n.hasOwnProperty(r)&&Mv(i,t,n[r],s)}return i}function Mv(e,t,i,n){e.hasOwnProperty(i)?e[i].push(t,n):e[i]=[t,n]}function Rn(e,t,i,n,r,s,o,a){const l=yn(t,i);let u,c=t.inputs;!a&&null!=c&&(u=c[n])?(kf(e,i,u,n,r),Cr(t)&&function rN(e,t){const i=On(t,e);16&i[ie]||(i[ie]|=64)}(i,t.index)):3&t.type&&(n=function iN(e){return"class"===e?"className":"for"===e?"htmlFor":"formaction"===e?"formAction":"innerHtml"===e?"innerHTML":"readonly"===e?"readOnly":"tabindex"===e?"tabIndex":e}(n),r=null!=o?o(r,t.value||"",n):r,s.setProperty(l,n,r))}function xf(e,t,i,n){if(v_()){const r=null===n?null:{"":-1},s=function uN(e,t){const i=e.directiveRegistry;let n=null,r=null;if(i)for(let s=0;s0;){const i=e[--t];if("number"==typeof i&&i<0)return i}return 0})(o)!=a&&o.push(a),o.push(i,n,s)}}(e,t,n,Qo(e,i,r.hostVars,re),r)}function Ii(e,t,i,n,r,s){const o=yn(e,t);!function Pf(e,t,i,n,r,s,o){if(null==s)e.removeAttribute(t,r,i);else{const a=null==o?te(s):o(s,n||"",r);e.setAttribute(t,r,a,i)}}(t[ne],o,s,e.value,i,n,r)}function _N(e,t,i,n,r,s){const o=s[t];if(null!==o)for(let a=0;a{var e;class t{constructor(){this.all=new Set,this.queue=new Map}create(n,r,s){const o=typeof Zone>"u"?null:Zone.current,a=new RS(n,u=>{this.all.has(u)&&this.queue.set(u,o)},s);let l;this.all.add(a),a.notify();const c=()=>{a.cleanup(),l?.(),this.all.delete(a),this.queue.delete(a)};return l=r?.onDestroy(c),{destroy:c}}flush(){if(0!==this.queue.size)for(const[n,r]of this.queue)this.queue.delete(n),r?r.run(()=>n.run()):n.run()}get isQueueEmpty(){return 0===this.queue.size}}return(e=t).\u0275prov=G({token:e,providedIn:"root",factory:()=>new e}),t})();function rc(e,t,i){let n=i?e.styles:null,r=i?e.classes:null,s=0;if(null!==t)for(let o=0;o0){Hv(e,1);const r=e[H].components;null!==r&&jv(e,r,1)}}function jv(e,t,i){for(let n=0;n-1&&(Pl(t,n),El(i,n))}this._attachedToViewContainer=!1}Bd(this._lView[H],this._lView)}onDestroy(t){!function __(e,t){if(256==(256&e[ie]))throw new F(911,!1);null===e[nr]&&(e[nr]=[]),e[nr].push(t)}(this._lView,t)}markForCheck(){Jo(this._cdRefInjectingView||this._lView)}detach(){this._lView[ie]&=-129}reattach(){this._lView[ie]|=128}detectChanges(){sc(this._lView[H],this._lView,this.context)}checkNoChanges(){}attachToViewContainerRef(){if(this._appRef)throw new F(902,!1);this._attachedToViewContainer=!0}detachFromAppRef(){this._appRef=null,function gM(e,t){Go(e,t,t[ne],2,null,null)}(this._lView[H],this._lView)}attachToAppRef(t){if(this._attachedToViewContainer)throw new F(902,!1);this._appRef=t}}class SN extends Xo{constructor(t){super(t),this._view=t}detectChanges(){const t=this._view;sc(t[H],t,t[vt],!1)}checkNoChanges(){}get context(){return null}}class $v extends Kl{constructor(t){super(),this.ngModule=t}resolveComponentFactory(t){const i=me(t);return new ea(i,this.ngModule)}}function Gv(e){const t=[];for(let i in e)e.hasOwnProperty(i)&&t.push({propName:e[i],templateName:i});return t}class MN{constructor(t,i){this.injector=t,this.parentInjector=i}get(t,i,n){n=rl(n);const r=this.injector.get(t,yf,n);return r!==yf||i===yf?r:this.parentInjector.get(t,i,n)}}class ea extends Km{get inputs(){const t=this.componentDef,i=t.inputTransforms,n=Gv(t.inputs);if(null!==i)for(const r of n)i.hasOwnProperty(r.propName)&&(r.transform=i[r.propName]);return n}get outputs(){return Gv(this.componentDef.outputs)}constructor(t,i){super(),this.componentDef=t,this.ngModule=i,this.componentType=t.type,this.selector=function gS(e){return e.map(pS).join(",")}(t.selectors),this.ngContentSelectors=t.ngContentSelectors?t.ngContentSelectors:[],this.isBoundToModule=!!i}create(t,i,n,r){let s=(r=r||this.ngModule)instanceof Gn?r:r?.injector;s&&null!==this.componentDef.getStandaloneInjector&&(s=this.componentDef.getStandaloneInjector(s)||s);const o=s?new MN(t,s):t,a=o.get(vf,null);if(null===a)throw new F(407,!1);const h={rendererFactory:a,sanitizer:o.get(EI,null),effectManager:o.get(Lv,null),afterRenderEventManager:o.get(Sf,null)},g=a.createRenderer(null,this.componentDef),_=this.componentDef.selectors[0][0]||"div",y=n?function JI(e,t,i,n){const s=n.get(pv,!1)||i===ei.ShadowDom,o=e.selectRootElement(t,s);return function QI(e){Sv(e)}(o),o}(g,n,this.componentDef.encapsulation,o):Rl(g,_,function TN(e){const t=e.toLowerCase();return"svg"===t?"svg":"math"===t?"math":null}(_)),T=this.componentDef.signals?4608:this.componentDef.onPush?576:528;let C=null;null!==y&&(C=gf(y,o,!0));const P=Of(0,null,null,1,0,null,null,null,null,null,null),O=nc(null,P,null,T,null,null,h,g,o,null,C);let V,J;gd(O);try{const ue=this.componentDef;let _e,lt=null;ue.findHostDirectiveDefs?(_e=[],lt=new Map,ue.findHostDirectiveDefs(ue,_e,lt),_e.push(ue)):_e=[ue];const Dt=function NN(e,t){const i=e[H],n=pe;return e[n]=t,js(i,n,2,"#host",null)}(O,y),Bt=function AN(e,t,i,n,r,s,o){const a=r[H];!function ON(e,t,i,n){for(const r of e)t.mergedAttrs=To(t.mergedAttrs,r.hostAttrs);null!==t.mergedAttrs&&(rc(t,t.mergedAttrs,!0),null!==i&&Mm(n,i,t))}(n,e,t,o);let l=null;null!==t&&(l=gf(t,r[tr]));const c=s.rendererFactory.createRenderer(t,i);let u=16;i.signals?u=4096:i.onPush&&(u=64);const h=nc(r,Ev(i),null,u,r[e.index],e,s,c,null,null,l);return a.firstCreatePass&&Rf(a,e,n.length-1),ic(r,h),r[e.index]=h}(Dt,y,ue,_e,O,h,g);J=f_(P,pe),y&&function RN(e,t,i,n){if(n)ed(e,i,["ng-version",SI.full]);else{const{attrs:r,classes:s}=function _S(e){const t=[],i=[];let n=1,r=2;for(;n0&&Tm(e,i,s.join(" "))}}(g,ue,y,n),void 0!==i&&function PN(e,t,i){const n=e.projection=[];for(let r=0;r=0;n--){const r=e[n];r.hostVars=t+=r.hostVars,r.hostAttrs=To(r.hostAttrs,i=To(i,r.hostAttrs))}}(n)}function oc(e){return e===Di?{}:e===Ee?[]:e}function LN(e,t){const i=e.viewQuery;e.viewQuery=i?(n,r)=>{t(n,r),i(n,r)}:t}function BN(e,t){const i=e.contentQueries;e.contentQueries=i?(n,r,s)=>{t(n,r,s),i(n,r,s)}:t}function VN(e,t){const i=e.hostBindings;e.hostBindings=i?(n,r)=>{t(n,r),i(n,r)}:t}function ac(e){return!!function Bf(e){return null!==e&&("function"==typeof e||"object"==typeof e)}(e)&&(Array.isArray(e)||!(e instanceof Map)&&Symbol.iterator in e)}function Jt(e,t,i){return!Object.is(e[t],i)&&(e[t]=i,!0)}function Te(e,t,i,n){const r=A();return Jt(r,bs(),t)&&(ve(),Ii(ot(),r,e,t,i,n)),Te}function Gs(e,t,i,n){return Jt(e,bs(),i)?t+te(i)+n:re}function B(e,t,i,n,r,s,o,a){const l=A(),c=ve(),u=e+pe,h=c.firstCreatePass?function uA(e,t,i,n,r,s,o,a,l){const c=t.consts,u=js(t,e,4,o||null,ir(c,a));xf(t,i,u,ir(c,l)),ml(t,u);const h=u.tView=Of(2,u,n,r,s,t.directiveRegistry,t.pipeRegistry,null,t.schemas,c,null);return null!==t.queries&&(t.queries.template(t,u),h.queries=t.queries.embeddedTView(u)),u}(u,c,l,t,i,n,r,s,o):c.data[u];Ti(h,!1);const g=ay(c,l,h,e);_l()&&kl(c,l,g,h),Yt(g,l),ic(l,l[u]=Ov(g,l,g,h)),dl(h)&&Nf(c,l,h),null!=o&&Af(l,h,a)}let ay=function ly(e,t,i,n){return rr(!0),t[ne].createComment("")};function x(e,t,i){const n=A();return Jt(n,bs(),t)&&Rn(ve(),ot(),n,e,t,n[ne],i,!1),x}function Gf(e,t,i,n,r){const o=r?"class":"style";kf(e,i,t.inputs[o],o,n)}function j(e,t,i,n){const r=A(),s=ve(),o=pe+e,a=r[ne],l=s.firstCreatePass?function pA(e,t,i,n,r,s){const o=t.consts,l=js(t,e,2,n,ir(o,r));return xf(t,i,l,ir(o,s)),null!==l.attrs&&rc(l,l.attrs,!1),null!==l.mergedAttrs&&rc(l,l.mergedAttrs,!0),null!==t.queries&&t.queries.elementStart(t,l),l}(o,s,r,t,i,n):s.data[o],c=cy(s,r,l,a,t,e);r[o]=c;const u=dl(l);return Ti(l,!0),Mm(a,c,l),32!=(32&l.flags)&&_l()&&kl(s,r,c,l),0===function zS(){return K.lFrame.elementDepthCount}()&&Yt(c,r),function WS(){K.lFrame.elementDepthCount++}(),u&&(Nf(s,r,l),If(s,l,r)),null!==n&&Af(r,l),j}function U(){let e=Ut();ud()?dd():(e=e.parent,Ti(e,!1));const t=e;(function YS(e){return K.skipHydrationRootTNode===e})(t)&&function KS(){K.skipHydrationRootTNode=null}(),function qS(){K.lFrame.elementDepthCount--}();const i=ve();return i.firstCreatePass&&(ml(i,e),nd(e)&&i.queries.elementEnd(e)),null!=t.classesWithoutHost&&function hT(e){return 0!=(8&e.flags)}(t)&&Gf(i,t,A(),t.classesWithoutHost,!0),null!=t.stylesWithoutHost&&function pT(e){return 0!=(16&e.flags)}(t)&&Gf(i,t,A(),t.stylesWithoutHost,!1),U}function je(e,t,i,n){return j(e,t,i,n),U(),je}let cy=(e,t,i,n,r,s)=>(rr(!0),Rl(n,r,function N_(){return K.lFrame.currentNamespace}()));function Dn(){return A()}function fc(e){return!!e&&"function"==typeof e.then}function fy(e){return!!e&&"function"==typeof e.subscribe}function ce(e,t,i,n){const r=A(),s=ve(),o=Ut();return function py(e,t,i,n,r,s,o){const a=dl(n),c=e.firstCreatePass&&Pv(e),u=t[vt],h=Rv(t);let g=!0;if(3&n.type||o){const b=yn(n,t),D=o?o(b):b,T=h.length,C=o?O=>o(We(O[n.index])):n.index;let P=null;if(!o&&a&&(P=function bA(e,t,i,n){const r=e.cleanup;if(null!=r)for(let s=0;sl?a[l]:null}"string"==typeof o&&(s+=2)}return null}(e,t,r,n.index)),null!==P)(P.__ngLastListenerFn__||P).__ngNextListenerFn__=s,P.__ngLastListenerFn__=s,g=!1;else{s=_y(n,t,u,s,!1);const O=i.listen(D,r,s);h.push(s,O),c&&c.push(r,C,T,T+1)}}else s=_y(n,t,u,s,!1);const _=n.outputs;let y;if(g&&null!==_&&(y=_[r])){const b=y.length;if(b)for(let D=0;D-1?On(e.index,t):t);let l=gy(t,i,n,o),c=s.__ngNextListenerFn__;for(;c;)l=gy(t,i,c,o)&&l,c=c.__ngNextListenerFn__;return r&&!1===l&&o.preventDefault(),l}}function z(e=1){return function rT(e){return(K.lFrame.contextLView=function sT(e,t){for(;e>0;)t=t[gs],e--;return t}(e,K.lFrame.contextLView))[vt]}(e)}function DA(e,t){let i=null;const n=function uS(e){const t=e.attrs;if(null!=t){const i=t.indexOf(5);if(!(1&i))return t[i+1]}return null}(e);for(let r=0;r>17&32767}function Zf(e){return 2|e}function xr(e){return(131068&e)>>2}function Jf(e,t){return-131069&e|t<<2}function Qf(e){return 1|e}function Sy(e,t,i,n,r){const s=e[i+1],o=null===t;let a=n?ar(s):xr(s),l=!1;for(;0!==a&&(!1===l||o);){const u=e[a+1];MA(e[a],t)&&(l=!0,e[a+1]=n?Qf(u):Zf(u)),a=n?ar(u):xr(u)}l&&(e[i+1]=n?Zf(s):Qf(s))}function MA(e,t){return null===e||null==t||(Array.isArray(e)?e[1]:e)===t||!(!Array.isArray(e)||"string"!=typeof t)&&Ns(e,t)>=0}const Ot={textEnd:0,key:0,keyEnd:0,value:0,valueEnd:0};function Ty(e){return e.substring(Ot.key,Ot.keyEnd)}function My(e,t){const i=Ot.textEnd;return i===t?-1:(t=Ot.keyEnd=function OA(e,t,i){for(;t32;)t++;return t}(e,Ot.key=t,i),Ks(e,t,i))}function Ks(e,t,i){for(;t=0;i=My(t,i))xn(e,Ty(t),!0)}function Ry(e,t){return t>=e.expandoStartIndex}function Py(e,t,i,n){const r=e.data;if(null===r[i+1]){const s=r[cn()],o=Ry(e,i);By(s,n)&&null===t&&!o&&(t=!1),t=function FA(e,t,i,n){const r=function hd(e){const t=K.lFrame.currentDirectiveIndex;return-1===t?null:e[t]}(e);let s=n?t.residualClasses:t.residualStyles;if(null===r)0===(n?t.classBindings:t.styleBindings)&&(i=oa(i=Kf(null,e,t,i,n),t.attrs,n),s=null);else{const o=t.directiveStylingLast;if(-1===o||e[o]!==r)if(i=Kf(r,e,t,i,n),null===s){let l=function kA(e,t,i){const n=i?t.classBindings:t.styleBindings;if(0!==xr(n))return e[ar(n)]}(e,t,n);void 0!==l&&Array.isArray(l)&&(l=Kf(null,e,t,l[1],n),l=oa(l,t.attrs,n),function LA(e,t,i,n){e[ar(i?t.classBindings:t.styleBindings)]=n}(e,t,n,l))}else s=function BA(e,t,i){let n;const r=t.directiveEnd;for(let s=1+t.directiveStylingLast;s0)&&(c=!0)):u=i,r)if(0!==l){const g=ar(e[a+1]);e[n+1]=pc(g,a),0!==g&&(e[g+1]=Jf(e[g+1],n)),e[a+1]=function CA(e,t){return 131071&e|t<<17}(e[a+1],n)}else e[n+1]=pc(a,0),0!==a&&(e[a+1]=Jf(e[a+1],n)),a=n;else e[n+1]=pc(l,0),0===a?a=n:e[l+1]=Jf(e[l+1],n),l=n;c&&(e[n+1]=Zf(e[n+1])),Sy(e,u,n,!0),Sy(e,u,n,!1),function TA(e,t,i,n,r){const s=r?e.residualClasses:e.residualStyles;null!=s&&"string"==typeof t&&Ns(s,t)>=0&&(i[n+1]=Qf(i[n+1]))}(t,u,e,n,s),o=pc(a,l),s?t.classBindings=o:t.styleBindings=o}(r,s,t,i,o,n)}}function Kf(e,t,i,n,r){let s=null;const o=i.directiveEnd;let a=i.directiveStylingLast;for(-1===a?a=i.directiveStart:a++;a0;){const l=e[r],c=Array.isArray(l),u=c?l[1]:l,h=null===u;let g=i[r+1];g===re&&(g=h?Ee:void 0);let _=h?Sd(g,n):u===n?g:void 0;if(c&&!gc(_)&&(_=Sd(l,n)),gc(_)&&(a=_,o))return a;const y=e[r+1];r=o?ar(y):xr(y)}if(null!==t){let l=s?t.residualClasses:t.residualStyles;null!=l&&(a=Sd(l,n))}return a}function gc(e){return void 0!==e}function By(e,t){return 0!=(e.flags&(t?8:16))}function qe(e,t=""){const i=A(),n=ve(),r=e+pe,s=n.firstCreatePass?js(n,r,1,t,null):n.data[r],o=Vy(n,i,s,t,e);i[r]=o,_l()&&kl(n,i,o,s),Ti(s,!1)}let Vy=(e,t,i,n,r)=>(rr(!0),function xl(e,t){return e.createText(t)}(t[ne],n));function jt(e){return Ri("",e,""),jt}function Ri(e,t,i){const n=A(),r=Gs(n,e,t,i);return r!==re&&function zi(e,t,i){const n=gl(t,e);!function pm(e,t,i){e.setValue(t,i)}(e[ne],n,i)}(n,cn(),r),Ri}function qn(e,t,i){const n=A();return Jt(n,bs(),t)&&Rn(ve(),ot(),n,e,t,n[ne],i,!0),qn}const eo="en-US";let a0=eo;function th(e,t,i,n,r){if(e=X(e),Array.isArray(e))for(let s=0;s>20;if(Ir(e)||!e.multi){const _=new Po(c,r,v),y=ih(l,t,r?u:u+g,h);-1===y?(wd(Dl(a,o),s,l),nh(s,e,t.length),t.push(l),a.directiveStart++,a.directiveEnd++,r&&(a.providerIndexes+=1048576),i.push(_),o.push(_)):(i[y]=_,o[y]=_)}else{const _=ih(l,t,u+g,h),y=ih(l,t,u,u+g),D=y>=0&&i[y];if(r&&!D||!r&&!(_>=0&&i[_])){wd(Dl(a,o),s,l);const T=function lx(e,t,i,n,r){const s=new Po(e,i,v);return s.multi=[],s.index=t,s.componentProviders=0,x0(s,r,n&&!i),s}(r?ax:ox,i.length,r,n,c);!r&&D&&(i[y].providerFactory=T),nh(s,e,t.length,0),t.push(l),a.directiveStart++,a.directiveEnd++,r&&(a.providerIndexes+=1048576),i.push(T),o.push(T)}else nh(s,e,_>-1?_:y,x0(i[r?y:_],c,!r&&n));!r&&n&&D&&i[y].componentProviders++}}}function nh(e,t,i,n){const r=Ir(t),s=function tI(e){return!!e.useClass}(t);if(r||s){const l=(s?X(t.useClass):t).prototype.ngOnDestroy;if(l){const c=e.destroyHooks||(e.destroyHooks=[]);if(!r&&t.multi){const u=c.indexOf(i);-1===u?c.push(i,[n,l]):c[u+1].push(n,l)}else c.push(i,l)}}}function x0(e,t,i){return i&&e.componentProviders++,e.multi.push(t)-1}function ih(e,t,i,n){for(let r=i;r{i.providersResolver=(n,r)=>function sx(e,t,i){const n=ve();if(n.firstCreatePass){const r=ii(e);th(i,n.data,n.blueprint,r,!0),th(t,n.data,n.blueprint,r,!1)}}(n,r?r(e):e,t)}}class Fr{}class cx{}class sh extends Fr{constructor(t,i,n){super(),this._parent=i,this._bootstrapComponents=[],this.destroyCbs=[],this.componentFactoryResolver=new $v(this);const r=function An(e,t){const i=e[kg]||null;if(!i&&!0===t)throw new Error(`Type ${Nt(e)} does not have '\u0275mod' property.`);return i}(t);this._bootstrapComponents=function Gi(e){return e instanceof Function?e():e}(r.bootstrap),this._r3Injector=rv(t,i,[{provide:Fr,useValue:this},{provide:Kl,useValue:this.componentFactoryResolver},...n],Nt(t),new Set(["environment"])),this._r3Injector.resolveInjectorInitializers(),this.instance=this._r3Injector.get(t)}get injector(){return this._r3Injector}destroy(){const t=this._r3Injector;!t.destroyed&&t.destroy(),this.destroyCbs.forEach(i=>i()),this.destroyCbs=null}onDestroy(t){this.destroyCbs.push(t)}}class oh extends cx{constructor(t){super(),this.moduleType=t}create(t){return new sh(this.moduleType,t,[])}}class R0 extends Fr{constructor(t){super(),this.componentFactoryResolver=new $v(this),this.instance=null;const i=new zl([...t.providers,{provide:Fr,useValue:this},{provide:Kl,useValue:this.componentFactoryResolver}],t.parent||Gl(),t.debugName,new Set(["environment"]));this.injector=i,t.runEnvironmentInitializers&&i.resolveInjectorInitializers()}destroy(){this.injector.destroy()}onDestroy(t){this.injector.onDestroy(t)}}let hx=(()=>{var e;class t{constructor(n){this._injector=n,this.cachedInjectors=new Map}getOrCreateStandaloneInjector(n){if(!n.standalone)return null;if(!this.cachedInjectors.has(n)){const r=jm(0,n.type),s=r.length>0?function fx(e,t,i=null){return new R0({providers:e,parent:t,debugName:i,runEnvironmentInitializers:!0}).injector}([r],this._injector,`Standalone[${n.type.name}]`):null;this.cachedInjectors.set(n,s)}return this.cachedInjectors.get(n)}ngOnDestroy(){try{for(const n of this.cachedInjectors.values())null!==n&&n.destroy()}finally{this.cachedInjectors.clear()}}}return(e=t).\u0275prov=G({token:e,providedIn:"environment",factory:()=>new e(L(Gn))}),t})();function Yn(e){e.getStandaloneInjector=t=>t.get(hx).getOrCreateStandaloneInjector(e)}function kx(){return this._results[Symbol.iterator]()}class ch{get changes(){return this._changes||(this._changes=new Y)}constructor(t=!1){this._emitDistinctChangesOnly=t,this.dirty=!0,this._results=[],this._changesDetected=!1,this._changes=null,this.length=0,this.first=void 0,this.last=void 0;const i=ch.prototype;i[Symbol.iterator]||(i[Symbol.iterator]=kx)}get(t){return this._results[t]}map(t){return this._results.map(t)}filter(t){return this._results.filter(t)}find(t){return this._results.find(t)}reduce(t,i){return this._results.reduce(t,i)}forEach(t){this._results.forEach(t)}some(t){return this._results.some(t)}toArray(){return this._results.slice()}toString(){return this._results.toString()}reset(t,i){const n=this;n.dirty=!1;const r=function $n(e){return e.flat(Number.POSITIVE_INFINITY)}(t);(this._changesDetected=!function IT(e,t,i){if(e.length!==t.length)return!1;for(let n=0;n0&&(i[r-1][ni]=t),n{class t{}return t.__NG_ELEMENT_ID__=Ux,t})();const Vx=nt,Hx=class extends Vx{constructor(t,i,n){super(),this._declarationLView=t,this._declarationTContainer=i,this.elementRef=n}get ssrId(){return this._declarationTContainer.tView?.ssrId||null}createEmbeddedView(t,i){return this.createEmbeddedViewImpl(t,i)}createEmbeddedViewImpl(t,i,n){const r=function Lx(e,t,i,n){const r=t.tView,a=nc(e,r,i,4096&e[ie]?4096:16,null,t,null,null,null,n?.injector??null,n?.hydrationInfo??null);a[Ao]=e[t.index];const c=e[wi];return null!==c&&(a[wi]=c.createEmbeddedView(r)),Lf(r,a,i),a}(this._declarationLView,this._declarationTContainer,t,{injector:i,hydrationInfo:n});return new Xo(r)}};function Ux(){return bc(Ut(),A())}function bc(e,t){return 4&e.type?new Hx(t,e,Vs(e,t)):null}let Cn=(()=>{class t{}return t.__NG_ELEMENT_ID__=qx,t})();function qx(){return Q0(Ut(),A())}const Yx=Cn,Z0=class extends Yx{constructor(t,i,n){super(),this._lContainer=t,this._hostTNode=i,this._hostLView=n}get element(){return Vs(this._hostTNode,this._hostLView)}get injector(){return new un(this._hostTNode,this._hostLView)}get parentInjector(){const t=wl(this._hostTNode,this._hostLView);if(yd(t)){const i=ko(t,this._hostLView),n=Fo(t);return new un(i[H].data[n+8],i)}return new un(null,this._hostLView)}clear(){for(;this.length>0;)this.remove(this.length-1)}get(t){const i=J0(this._lContainer);return null!==i&&i[t]||null}get length(){return this._lContainer.length-Ht}createEmbeddedView(t,i,n){let r,s;"number"==typeof n?r=n:null!=n&&(r=n.index,s=n.injector);const a=t.createEmbeddedViewImpl(i||{},s,null);return this.insertImpl(a,r,false),a}createComponent(t,i,n,r,s){const o=t&&!function Bo(e){return"function"==typeof e}(t);let a;if(o)a=i;else{const b=i||{};a=b.index,n=b.injector,r=b.projectableNodes,s=b.environmentInjector||b.ngModuleRef}const l=o?t:new ea(me(t)),c=n||this.parentInjector;if(!s&&null==l.ngModule){const D=(o?c:this.parentInjector).get(Gn,null);D&&(s=D)}me(l.componentType??{});const _=l.create(c,r,null,s);return this.insertImpl(_.hostView,a,false),_}insert(t,i){return this.insertImpl(t,i,!1)}insertImpl(t,i,n){const r=t._lView;if(function jS(e){return rn(e[tt])}(r)){const l=this.indexOf(t);if(-1!==l)this.detach(l);else{const c=r[tt],u=new Z0(c,c[qt],c[tt]);u.detach(u.indexOf(t))}}const o=this._adjustIndex(i),a=this._lContainer;return Bx(a,r,o,!n),t.attachToViewContainerRef(),G_(uh(a),o,t),t}move(t,i){return this.insert(t,i)}indexOf(t){const i=J0(this._lContainer);return null!==i?i.indexOf(t):-1}remove(t){const i=this._adjustIndex(t,-1),n=Pl(this._lContainer,i);n&&(El(uh(this._lContainer),i),Bd(n[H],n))}detach(t){const i=this._adjustIndex(t,-1),n=Pl(this._lContainer,i);return n&&null!=El(uh(this._lContainer),i)?new Xo(n):null}_adjustIndex(t,i=0){return t??this.length+i}};function J0(e){return e[8]}function uh(e){return e[8]||(e[8]=[])}function Q0(e,t){let i;const n=t[e.index];return rn(n)?i=n:(i=Ov(n,t,null,e),t[e.index]=i,ic(t,i)),K0(i,t,e,n),new Z0(i,e,t)}let K0=function X0(e,t,i,n){if(e[Ci])return;let r;r=8&i.type?We(n):function Zx(e,t){const i=e[ne],n=i.createComment(""),r=yn(t,e);return Mr(i,Fl(i,r),n,function wM(e,t){return e.nextSibling(t)}(i,r),!1),n}(t,i),e[Ci]=r};class dh{constructor(t){this.queryList=t,this.matches=null}clone(){return new dh(this.queryList)}setDirty(){this.queryList.setDirty()}}class fh{constructor(t=[]){this.queries=t}createEmbeddedView(t){const i=t.queries;if(null!==i){const n=null!==t.contentQueries?t.contentQueries[0]:i.length,r=[];for(let s=0;s0)n.push(o[a/2]);else{const c=s[a+1],u=t[-l];for(let h=Ht;h{var e;class t{constructor(){this.initialized=!1,this.done=!1,this.donePromise=new Promise((n,r)=>{this.resolve=n,this.reject=r}),this.appInits=fe(w1,{optional:!0})??[]}runInitializers(){if(this.initialized)return;const n=[];for(const s of this.appInits){const o=s();if(fc(o))n.push(o);else if(fy(o)){const a=new Promise((l,c)=>{o.subscribe({complete:l,error:c})});n.push(a)}}const r=()=>{this.done=!0,this.resolve()};Promise.all(n).then(()=>{r()}).catch(s=>{this.reject(s)}),0===n.length&&r(),this.initialized=!0}}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275prov=G({token:e,factory:e.\u0275fac,providedIn:"root"}),t})();const oi=new W("LocaleId",{providedIn:"root",factory:()=>fe(oi,ge.Optional|ge.SkipSelf)||function SR(){return typeof $localize<"u"&&$localize.locale||eo}()});let Dh=(()=>{var e;class t{constructor(){this.taskId=0,this.pendingTasks=new Set,this.hasPendingTasks=new UE(!1)}add(){this.hasPendingTasks.next(!0);const n=this.taskId++;return this.pendingTasks.add(n),n}remove(n){this.pendingTasks.delete(n),0===this.pendingTasks.size&&this.hasPendingTasks.next(!1)}ngOnDestroy(){this.pendingTasks.clear(),this.hasPendingTasks.next(!1)}}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275prov=G({token:e,factory:e.\u0275fac,providedIn:"root"}),t})();const T1=new W(""),Ec=new W("");let Th,Eh=(()=>{var e;class t{constructor(n,r,s){this._ngZone=n,this.registry=r,this._pendingCount=0,this._isZoneStable=!0,this._didWork=!1,this._callbacks=[],this.taskTrackingZone=null,Th||(function YR(e){Th=e}(s),s.addToWindow(r)),this._watchAngularEvents(),n.run(()=>{this.taskTrackingZone=typeof Zone>"u"?null:Zone.current.get("TaskTrackingZone")})}_watchAngularEvents(){this._ngZone.onUnstable.subscribe({next:()=>{this._didWork=!0,this._isZoneStable=!1}}),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.subscribe({next:()=>{Se.assertNotInAngularZone(),queueMicrotask(()=>{this._isZoneStable=!0,this._runCallbacksIfReady()})}})})}increasePendingRequestCount(){return this._pendingCount+=1,this._didWork=!0,this._pendingCount}decreasePendingRequestCount(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error("pending async requests below zero");return this._runCallbacksIfReady(),this._pendingCount}isStable(){return this._isZoneStable&&0===this._pendingCount&&!this._ngZone.hasPendingMacrotasks}_runCallbacksIfReady(){if(this.isStable())queueMicrotask(()=>{for(;0!==this._callbacks.length;){let n=this._callbacks.pop();clearTimeout(n.timeoutId),n.doneCb(this._didWork)}this._didWork=!1});else{let n=this.getPendingTasks();this._callbacks=this._callbacks.filter(r=>!r.updateCb||!r.updateCb(n)||(clearTimeout(r.timeoutId),!1)),this._didWork=!0}}getPendingTasks(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map(n=>({source:n.source,creationLocation:n.creationLocation,data:n.data})):[]}addCallback(n,r,s){let o=-1;r&&r>0&&(o=setTimeout(()=>{this._callbacks=this._callbacks.filter(a=>a.timeoutId!==o),n(this._didWork,this.getPendingTasks())},r)),this._callbacks.push({doneCb:n,timeoutId:o,updateCb:s})}whenStable(n,r,s){if(s&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is "zone.js/plugins/task-tracking" loaded?');this.addCallback(n,r,s),this._runCallbacksIfReady()}getPendingRequestCount(){return this._pendingCount}registerApplication(n){this.registry.registerApplication(n,this)}unregisterApplication(n){this.registry.unregisterApplication(n)}findProviders(n,r,s){return[]}}return(e=t).\u0275fac=function(n){return new(n||e)(L(Se),L(Sh),L(Ec))},e.\u0275prov=G({token:e,factory:e.\u0275fac}),t})(),Sh=(()=>{var e;class t{constructor(){this._applications=new Map}registerApplication(n,r){this._applications.set(n,r)}unregisterApplication(n){this._applications.delete(n)}unregisterAllApplications(){this._applications.clear()}getTestability(n){return this._applications.get(n)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(n,r=!0){return Th?.findTestabilityInTree(this,n,r)??null}}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275prov=G({token:e,factory:e.\u0275fac,providedIn:"platform"}),t})(),lr=null;const M1=new W("AllowMultipleToken"),Mh=new W("PlatformDestroyListeners"),I1=new W("appBootstrapListener");function O1(e,t,i=[]){const n=`Platform: ${t}`,r=new W(n);return(s=[])=>{let o=Ih();if(!o||o.injector.get(M1,!1)){const a=[...i,...s,{provide:r,useValue:!0}];e?e(a):function QR(e){if(lr&&!lr.get(M1,!1))throw new F(400,!1);(function N1(){!function OS(e){r_=e}(()=>{throw new F(600,!1)})})(),lr=e;const t=e.get(R1);(function A1(e){e.get(qm,null)?.forEach(i=>i())})(e)}(function x1(e=[],t){return Zt.create({name:t,providers:[{provide:nf,useValue:"platform"},{provide:Mh,useValue:new Set([()=>lr=null])},...e]})}(a,n))}return function XR(e){const t=Ih();if(!t)throw new F(401,!1);return t}()}}function Ih(){return lr?.get(R1)??null}let R1=(()=>{var e;class t{constructor(n){this._injector=n,this._modules=[],this._destroyListeners=[],this._destroyed=!1}bootstrapModuleFactory(n,r){const s=function eP(e="zone.js",t){return"noop"===e?new LI:"zone.js"===e?new Se(t):e}(r?.ngZone,function P1(e){return{enableLongStackTrace:!1,shouldCoalesceEventChangeDetection:e?.eventCoalescing??!1,shouldCoalesceRunChangeDetection:e?.runCoalescing??!1}}({eventCoalescing:r?.ngZoneEventCoalescing,runCoalescing:r?.ngZoneRunCoalescing}));return s.run(()=>{const o=function dx(e,t,i){return new sh(e,t,i)}(n.moduleType,this.injector,function V1(e){return[{provide:Se,useFactory:e},{provide:Ul,multi:!0,useFactory:()=>{const t=fe(nP,{optional:!0});return()=>t.initialize()}},{provide:B1,useFactory:tP},{provide:lv,useFactory:cv}]}(()=>s)),a=o.injector.get(Ar,null);return s.runOutsideAngular(()=>{const l=s.onError.subscribe({next:c=>{a.handleError(c)}});o.onDestroy(()=>{Sc(this._modules,o),l.unsubscribe()})}),function F1(e,t,i){try{const n=i();return fc(n)?n.catch(r=>{throw t.runOutsideAngular(()=>e.handleError(r)),r}):n}catch(n){throw t.runOutsideAngular(()=>e.handleError(n)),n}}(a,s,()=>{const l=o.injector.get(bh);return l.runInitializers(),l.donePromise.then(()=>(function l0(e){jn(e,"Expected localeId to be defined"),"string"==typeof e&&(a0=e.toLowerCase().replace(/_/g,"-"))}(o.injector.get(oi,eo)||eo),this._moduleDoBootstrap(o),o))})})}bootstrapModule(n,r=[]){const s=k1({},r);return function ZR(e,t,i){const n=new oh(i);return Promise.resolve(n)}(0,0,n).then(o=>this.bootstrapModuleFactory(o,s))}_moduleDoBootstrap(n){const r=n.injector.get(kr);if(n._bootstrapComponents.length>0)n._bootstrapComponents.forEach(s=>r.bootstrap(s));else{if(!n.instance.ngDoBootstrap)throw new F(-403,!1);n.instance.ngDoBootstrap(r)}this._modules.push(n)}onDestroy(n){this._destroyListeners.push(n)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new F(404,!1);this._modules.slice().forEach(r=>r.destroy()),this._destroyListeners.forEach(r=>r());const n=this._injector.get(Mh,null);n&&(n.forEach(r=>r()),n.clear()),this._destroyed=!0}get destroyed(){return this._destroyed}}return(e=t).\u0275fac=function(n){return new(n||e)(L(Zt))},e.\u0275prov=G({token:e,factory:e.\u0275fac,providedIn:"platform"}),t})();function k1(e,t){return Array.isArray(t)?t.reduce(k1,e):{...e,...t}}let kr=(()=>{var e;class t{constructor(){this._bootstrapListeners=[],this._runningTick=!1,this._destroyed=!1,this._destroyListeners=[],this._views=[],this.internalErrorHandler=fe(B1),this.zoneIsStable=fe(lv),this.componentTypes=[],this.components=[],this.isStable=fe(Dh).hasPendingTasks.pipe(Vu(n=>n?ds(!1):this.zoneIsStable),function Mg(e,t=yi){return e=e??jE,mt((i,n)=>{let r,s=!0;i.subscribe(ft(n,o=>{const a=t(o);(s||!e(r,a))&&(s=!1,r=a,n.next(o))}))})}(),Tg()),this._injector=fe(Gn)}get destroyed(){return this._destroyed}get injector(){return this._injector}bootstrap(n,r){const s=n instanceof Km;if(!this._injector.get(bh).done)throw!s&&function Mo(e){const t=me(e)||Vt(e)||nn(e);return null!==t&&t.standalone}(n),new F(405,!1);let a;a=s?n:this._injector.get(Kl).resolveComponentFactory(n),this.componentTypes.push(a.componentType);const l=function JR(e){return e.isBoundToModule}(a)?void 0:this._injector.get(Fr),u=a.create(Zt.NULL,[],r||a.selector,l),h=u.location.nativeElement,g=u.injector.get(T1,null);return g?.registerApplication(h),u.onDestroy(()=>{this.detachView(u.hostView),Sc(this.components,u),g?.unregisterApplication(h)}),this._loadComponent(u),u}tick(){if(this._runningTick)throw new F(101,!1);try{this._runningTick=!0;for(let n of this._views)n.detectChanges()}catch(n){this.internalErrorHandler(n)}finally{this._runningTick=!1}}attachView(n){const r=n;this._views.push(r),r.attachToAppRef(this)}detachView(n){const r=n;Sc(this._views,r),r.detachFromAppRef()}_loadComponent(n){this.attachView(n.hostView),this.tick(),this.components.push(n);const r=this._injector.get(I1,[]);r.push(...this._bootstrapListeners),r.forEach(s=>s(n))}ngOnDestroy(){if(!this._destroyed)try{this._destroyListeners.forEach(n=>n()),this._views.slice().forEach(n=>n.destroy())}finally{this._destroyed=!0,this._views=[],this._bootstrapListeners=[],this._destroyListeners=[]}}onDestroy(n){return this._destroyListeners.push(n),()=>Sc(this._destroyListeners,n)}destroy(){if(this._destroyed)throw new F(406,!1);const n=this._injector;n.destroy&&!n.destroyed&&n.destroy()}get viewCount(){return this._views.length}warnIfDestroyed(){}}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275prov=G({token:e,factory:e.\u0275fac,providedIn:"root"}),t})();function Sc(e,t){const i=e.indexOf(t);i>-1&&e.splice(i,1)}const B1=new W("",{providedIn:"root",factory:()=>fe(Ar).handleError.bind(void 0)});function tP(){const e=fe(Se),t=fe(Ar);return i=>e.runOutsideAngular(()=>t.handleError(i))}let nP=(()=>{var e;class t{constructor(){this.zone=fe(Se),this.applicationRef=fe(kr)}initialize(){this._onMicrotaskEmptySubscription||(this._onMicrotaskEmptySubscription=this.zone.onMicrotaskEmpty.subscribe({next:()=>{this.zone.run(()=>{this.applicationRef.tick()})}}))}ngOnDestroy(){this._onMicrotaskEmptySubscription?.unsubscribe()}}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275prov=G({token:e,factory:e.\u0275fac,providedIn:"root"}),t})();let gt=(()=>{class t{}return t.__NG_ELEMENT_ID__=rP,t})();function rP(e){return function sP(e,t,i){if(Cr(e)&&!i){const n=On(e.index,t);return new Xo(n,n)}return 47&e.type?new Xo(t[yt],t):null}(Ut(),A(),16==(16&e))}class $1{constructor(){}supports(t){return ac(t)}create(t){return new dP(t)}}const uP=(e,t)=>t;class dP{constructor(t){this.length=0,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=t||uP}forEachItem(t){let i;for(i=this._itHead;null!==i;i=i._next)t(i)}forEachOperation(t){let i=this._itHead,n=this._removalsHead,r=0,s=null;for(;i||n;){const o=!n||i&&i.currentIndex{o=this._trackByFn(r,a),null!==i&&Object.is(i.trackById,o)?(n&&(i=this._verifyReinsertion(i,a,o,r)),Object.is(i.item,a)||this._addIdentityChange(i,a)):(i=this._mismatch(i,a,o,r),n=!0),i=i._next,r++}),this.length=r;return this._truncate(i),this.collection=t,this.isDirty}get isDirty(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}_reset(){if(this.isDirty){let t;for(t=this._previousItHead=this._itHead;null!==t;t=t._next)t._nextPrevious=t._next;for(t=this._additionsHead;null!==t;t=t._nextAdded)t.previousIndex=t.currentIndex;for(this._additionsHead=this._additionsTail=null,t=this._movesHead;null!==t;t=t._nextMoved)t.previousIndex=t.currentIndex;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(t,i,n,r){let s;return null===t?s=this._itTail:(s=t._prev,this._remove(t)),null!==(t=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null))?(Object.is(t.item,i)||this._addIdentityChange(t,i),this._reinsertAfter(t,s,r)):null!==(t=null===this._linkedRecords?null:this._linkedRecords.get(n,r))?(Object.is(t.item,i)||this._addIdentityChange(t,i),this._moveAfter(t,s,r)):t=this._addAfter(new fP(i,n),s,r),t}_verifyReinsertion(t,i,n,r){let s=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null);return null!==s?t=this._reinsertAfter(s,t._prev,r):t.currentIndex!=r&&(t.currentIndex=r,this._addToMoves(t,r)),t}_truncate(t){for(;null!==t;){const i=t._next;this._addToRemovals(this._unlink(t)),t=i}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)}_reinsertAfter(t,i,n){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(t);const r=t._prevRemoved,s=t._nextRemoved;return null===r?this._removalsHead=s:r._nextRemoved=s,null===s?this._removalsTail=r:s._prevRemoved=r,this._insertAfter(t,i,n),this._addToMoves(t,n),t}_moveAfter(t,i,n){return this._unlink(t),this._insertAfter(t,i,n),this._addToMoves(t,n),t}_addAfter(t,i,n){return this._insertAfter(t,i,n),this._additionsTail=null===this._additionsTail?this._additionsHead=t:this._additionsTail._nextAdded=t,t}_insertAfter(t,i,n){const r=null===i?this._itHead:i._next;return t._next=r,t._prev=i,null===r?this._itTail=t:r._prev=t,null===i?this._itHead=t:i._next=t,null===this._linkedRecords&&(this._linkedRecords=new G1),this._linkedRecords.put(t),t.currentIndex=n,t}_remove(t){return this._addToRemovals(this._unlink(t))}_unlink(t){null!==this._linkedRecords&&this._linkedRecords.remove(t);const i=t._prev,n=t._next;return null===i?this._itHead=n:i._next=n,null===n?this._itTail=i:n._prev=i,t}_addToMoves(t,i){return t.previousIndex===i||(this._movesTail=null===this._movesTail?this._movesHead=t:this._movesTail._nextMoved=t),t}_addToRemovals(t){return null===this._unlinkedRecords&&(this._unlinkedRecords=new G1),this._unlinkedRecords.put(t),t.currentIndex=null,t._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=t,t._prevRemoved=null):(t._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=t),t}_addIdentityChange(t,i){return t.item=i,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=t:this._identityChangesTail._nextIdentityChange=t,t}}class fP{constructor(t,i){this.item=t,this.trackById=i,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null}}class hP{constructor(){this._head=null,this._tail=null}add(t){null===this._head?(this._head=this._tail=t,t._nextDup=null,t._prevDup=null):(this._tail._nextDup=t,t._prevDup=this._tail,t._nextDup=null,this._tail=t)}get(t,i){let n;for(n=this._head;null!==n;n=n._nextDup)if((null===i||i<=n.currentIndex)&&Object.is(n.trackById,t))return n;return null}remove(t){const i=t._prevDup,n=t._nextDup;return null===i?this._head=n:i._nextDup=n,null===n?this._tail=i:n._prevDup=i,null===this._head}}class G1{constructor(){this.map=new Map}put(t){const i=t.trackById;let n=this.map.get(i);n||(n=new hP,this.map.set(i,n)),n.add(t)}get(t,i){const r=this.map.get(t);return r?r.get(t,i):null}remove(t){const i=t.trackById;return this.map.get(i).remove(t)&&this.map.delete(i),t}get isEmpty(){return 0===this.map.size}clear(){this.map.clear()}}function z1(e,t,i){const n=e.previousIndex;if(null===n)return n;let r=0;return i&&n{var e;class t{constructor(n){this.factories=n}static create(n,r){if(null!=r){const s=r.factories.slice();n=n.concat(s)}return new t(n)}static extend(n){return{provide:t,useFactory:r=>t.create(n,r||q1()),deps:[[t,new Id,new Md]]}}find(n){const r=this.factories.find(s=>s.supports(n));if(null!=r)return r;throw new F(901,!1)}}return(e=t).\u0275prov=G({token:e,providedIn:"root",factory:q1}),t})();const vP=O1(null,"core",[]);let yP=(()=>{var e;class t{constructor(n){}}return(e=t).\u0275fac=function(n){return new(n||e)(L(kr))},e.\u0275mod=Pe({type:e}),e.\u0275inj=Ae({}),t})();function Fh(e,t){const i=me(e),n=t.elementInjector||Gl();return new ea(i).create(n,t.projectableNodes,t.hostElement,t.environmentInjector)}let kh=null;function ba(){return kh}class xP{}const Qt=new W("DocumentToken");function hb(e,t){t=encodeURIComponent(t);for(const i of e.split(";")){const n=i.indexOf("="),[r,s]=-1==n?[i,""]:[i.slice(0,n),i.slice(n+1)];if(r.trim()===t)return decodeURIComponent(s)}return null}class mF{constructor(t,i,n,r){this.$implicit=t,this.ngForOf=i,this.index=n,this.count=r}get first(){return 0===this.index}get last(){return this.index===this.count-1}get even(){return this.index%2==0}get odd(){return!this.even}}let kn=(()=>{var e;class t{set ngForOf(n){this._ngForOf=n,this._ngForOfDirty=!0}set ngForTrackBy(n){this._trackByFn=n}get ngForTrackBy(){return this._trackByFn}constructor(n,r,s){this._viewContainer=n,this._template=r,this._differs=s,this._ngForOf=null,this._ngForOfDirty=!0,this._differ=null}set ngForTemplate(n){n&&(this._template=n)}ngDoCheck(){if(this._ngForOfDirty){this._ngForOfDirty=!1;const n=this._ngForOf;!this._differ&&n&&(this._differ=this._differs.find(n).create(this.ngForTrackBy))}if(this._differ){const n=this._differ.diff(this._ngForOf);n&&this._applyChanges(n)}}_applyChanges(n){const r=this._viewContainer;n.forEachOperation((s,o,a)=>{if(null==s.previousIndex)r.createEmbeddedView(this._template,new mF(s.item,this._ngForOf,-1,-1),null===a?void 0:a);else if(null==a)r.remove(null===o?void 0:o);else if(null!==o){const l=r.get(o);r.move(l,a),_b(l,s)}});for(let s=0,o=r.length;s{_b(r.get(s.currentIndex),s)})}static ngTemplateContextGuard(n,r){return!0}}return(e=t).\u0275fac=function(n){return new(n||e)(v(Cn),v(nt),v(Ic))},e.\u0275dir=k({type:e,selectors:[["","ngFor","","ngForOf",""]],inputs:{ngForOf:"ngForOf",ngForTrackBy:"ngForTrackBy",ngForTemplate:"ngForTemplate"},standalone:!0}),t})();function _b(e,t){e.context.$implicit=t.item}let Ln=(()=>{var e;class t{constructor(n,r){this._viewContainer=n,this._context=new vF,this._thenTemplateRef=null,this._elseTemplateRef=null,this._thenViewRef=null,this._elseViewRef=null,this._thenTemplateRef=r}set ngIf(n){this._context.$implicit=this._context.ngIf=n,this._updateView()}set ngIfThen(n){mb("ngIfThen",n),this._thenTemplateRef=n,this._thenViewRef=null,this._updateView()}set ngIfElse(n){mb("ngIfElse",n),this._elseTemplateRef=n,this._elseViewRef=null,this._updateView()}_updateView(){this._context.$implicit?this._thenViewRef||(this._viewContainer.clear(),this._elseViewRef=null,this._thenTemplateRef&&(this._thenViewRef=this._viewContainer.createEmbeddedView(this._thenTemplateRef,this._context))):this._elseViewRef||(this._viewContainer.clear(),this._thenViewRef=null,this._elseTemplateRef&&(this._elseViewRef=this._viewContainer.createEmbeddedView(this._elseTemplateRef,this._context)))}static ngTemplateContextGuard(n,r){return!0}}return(e=t).\u0275fac=function(n){return new(n||e)(v(Cn),v(nt))},e.\u0275dir=k({type:e,selectors:[["","ngIf",""]],inputs:{ngIf:"ngIf",ngIfThen:"ngIfThen",ngIfElse:"ngIfElse"},standalone:!0}),t})();class vF{constructor(){this.$implicit=null,this.ngIf=null}}function mb(e,t){if(t&&!t.createEmbeddedView)throw new Error(`${e} must be a TemplateRef, but received '${Nt(t)}'.`)}let bb=(()=>{var e;class t{}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275mod=Pe({type:e}),e.\u0275inj=Ae({}),t})();function wb(e){return"server"===e}class Cb{}class mk extends xP{constructor(){super(...arguments),this.supportsDOMEvents=!0}}class ep extends mk{static makeCurrent(){!function OP(e){kh||(kh=e)}(new ep)}onAndCancel(t,i,n){return t.addEventListener(i,n),()=>{t.removeEventListener(i,n)}}dispatchEvent(t,i){t.dispatchEvent(i)}remove(t){t.parentNode&&t.parentNode.removeChild(t)}createElement(t,i){return(i=i||this.getDefaultDocument()).createElement(t)}createHtmlDocument(){return document.implementation.createHTMLDocument("fakeTitle")}getDefaultDocument(){return document}isElementNode(t){return t.nodeType===Node.ELEMENT_NODE}isShadowRoot(t){return t instanceof DocumentFragment}getGlobalEventTarget(t,i){return"window"===i?window:"document"===i?t:"body"===i?t.body:null}getBaseHref(t){const i=function vk(){return Ea=Ea||document.querySelector("base"),Ea?Ea.getAttribute("href"):null}();return null==i?null:function yk(e){jc=jc||document.createElement("a"),jc.setAttribute("href",e);const t=jc.pathname;return"/"===t.charAt(0)?t:`/${t}`}(i)}resetBaseElement(){Ea=null}getUserAgent(){return window.navigator.userAgent}getCookie(t){return hb(document.cookie,t)}}let jc,Ea=null,Dk=(()=>{var e;class t{build(){return new XMLHttpRequest}}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275prov=G({token:e,factory:e.\u0275fac}),t})();const tp=new W("EventManagerPlugins");let Ib=(()=>{var e;class t{constructor(n,r){this._zone=r,this._eventNameToPlugin=new Map,n.forEach(s=>{s.manager=this}),this._plugins=n.slice().reverse()}addEventListener(n,r,s){return this._findPluginFor(r).addEventListener(n,r,s)}getZone(){return this._zone}_findPluginFor(n){let r=this._eventNameToPlugin.get(n);if(r)return r;if(r=this._plugins.find(o=>o.supports(n)),!r)throw new F(5101,!1);return this._eventNameToPlugin.set(n,r),r}}return(e=t).\u0275fac=function(n){return new(n||e)(L(tp),L(Se))},e.\u0275prov=G({token:e,factory:e.\u0275fac}),t})();class Nb{constructor(t){this._doc=t}}const np="ng-app-id";let Ab=(()=>{var e;class t{constructor(n,r,s,o={}){this.doc=n,this.appId=r,this.nonce=s,this.platformId=o,this.styleRef=new Map,this.hostNodes=new Set,this.styleNodesInDOM=this.collectServerRenderedStyles(),this.platformIsServer=wb(o),this.resetHostNodes()}addStyles(n){for(const r of n)1===this.changeUsageCount(r,1)&&this.onStyleAdded(r)}removeStyles(n){for(const r of n)this.changeUsageCount(r,-1)<=0&&this.onStyleRemoved(r)}ngOnDestroy(){const n=this.styleNodesInDOM;n&&(n.forEach(r=>r.remove()),n.clear());for(const r of this.getAllStyles())this.onStyleRemoved(r);this.resetHostNodes()}addHost(n){this.hostNodes.add(n);for(const r of this.getAllStyles())this.addStyleToHost(n,r)}removeHost(n){this.hostNodes.delete(n)}getAllStyles(){return this.styleRef.keys()}onStyleAdded(n){for(const r of this.hostNodes)this.addStyleToHost(r,n)}onStyleRemoved(n){const r=this.styleRef;r.get(n)?.elements?.forEach(s=>s.remove()),r.delete(n)}collectServerRenderedStyles(){const n=this.doc.head?.querySelectorAll(`style[${np}="${this.appId}"]`);if(n?.length){const r=new Map;return n.forEach(s=>{null!=s.textContent&&r.set(s.textContent,s)}),r}return null}changeUsageCount(n,r){const s=this.styleRef;if(s.has(n)){const o=s.get(n);return o.usage+=r,o.usage}return s.set(n,{usage:r,elements:[]}),r}getStyleElement(n,r){const s=this.styleNodesInDOM,o=s?.get(r);if(o?.parentNode===n)return s.delete(r),o.removeAttribute(np),o;{const a=this.doc.createElement("style");return this.nonce&&a.setAttribute("nonce",this.nonce),a.textContent=r,this.platformIsServer&&a.setAttribute(np,this.appId),a}}addStyleToHost(n,r){const s=this.getStyleElement(n,r);n.appendChild(s);const o=this.styleRef,a=o.get(r)?.elements;a?a.push(s):o.set(r,{elements:[s],usage:1})}resetHostNodes(){const n=this.hostNodes;n.clear(),n.add(this.doc.head)}}return(e=t).\u0275fac=function(n){return new(n||e)(L(Qt),L(Wl),L(Ym,8),L(Nr))},e.\u0275prov=G({token:e,factory:e.\u0275fac}),t})();const ip={svg:"http://www.w3.org/2000/svg",xhtml:"http://www.w3.org/1999/xhtml",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/",math:"http://www.w3.org/1998/MathML/"},rp=/%COMP%/g,Sk=new W("RemoveStylesOnCompDestroy",{providedIn:"root",factory:()=>!1});function xb(e,t){return t.map(i=>i.replace(rp,e))}let Rb=(()=>{var e;class t{constructor(n,r,s,o,a,l,c,u=null){this.eventManager=n,this.sharedStylesHost=r,this.appId=s,this.removeStylesOnCompDestroy=o,this.doc=a,this.platformId=l,this.ngZone=c,this.nonce=u,this.rendererByCompId=new Map,this.platformIsServer=wb(l),this.defaultRenderer=new sp(n,a,c,this.platformIsServer)}createRenderer(n,r){if(!n||!r)return this.defaultRenderer;this.platformIsServer&&r.encapsulation===ei.ShadowDom&&(r={...r,encapsulation:ei.Emulated});const s=this.getOrCreateRenderer(n,r);return s instanceof Fb?s.applyToHost(n):s instanceof op&&s.applyStyles(),s}getOrCreateRenderer(n,r){const s=this.rendererByCompId;let o=s.get(r.id);if(!o){const a=this.doc,l=this.ngZone,c=this.eventManager,u=this.sharedStylesHost,h=this.removeStylesOnCompDestroy,g=this.platformIsServer;switch(r.encapsulation){case ei.Emulated:o=new Fb(c,u,r,this.appId,h,a,l,g);break;case ei.ShadowDom:return new Nk(c,u,n,r,a,l,this.nonce,g);default:o=new op(c,u,r,h,a,l,g)}s.set(r.id,o)}return o}ngOnDestroy(){this.rendererByCompId.clear()}}return(e=t).\u0275fac=function(n){return new(n||e)(L(Ib),L(Ab),L(Wl),L(Sk),L(Qt),L(Nr),L(Se),L(Ym))},e.\u0275prov=G({token:e,factory:e.\u0275fac}),t})();class sp{constructor(t,i,n,r){this.eventManager=t,this.doc=i,this.ngZone=n,this.platformIsServer=r,this.data=Object.create(null),this.destroyNode=null}destroy(){}createElement(t,i){return i?this.doc.createElementNS(ip[i]||i,t):this.doc.createElement(t)}createComment(t){return this.doc.createComment(t)}createText(t){return this.doc.createTextNode(t)}appendChild(t,i){(Pb(t)?t.content:t).appendChild(i)}insertBefore(t,i,n){t&&(Pb(t)?t.content:t).insertBefore(i,n)}removeChild(t,i){t&&t.removeChild(i)}selectRootElement(t,i){let n="string"==typeof t?this.doc.querySelector(t):t;if(!n)throw new F(-5104,!1);return i||(n.textContent=""),n}parentNode(t){return t.parentNode}nextSibling(t){return t.nextSibling}setAttribute(t,i,n,r){if(r){i=r+":"+i;const s=ip[r];s?t.setAttributeNS(s,i,n):t.setAttribute(i,n)}else t.setAttribute(i,n)}removeAttribute(t,i,n){if(n){const r=ip[n];r?t.removeAttributeNS(r,i):t.removeAttribute(`${n}:${i}`)}else t.removeAttribute(i)}addClass(t,i){t.classList.add(i)}removeClass(t,i){t.classList.remove(i)}setStyle(t,i,n,r){r&(sr.DashCase|sr.Important)?t.style.setProperty(i,n,r&sr.Important?"important":""):t.style[i]=n}removeStyle(t,i,n){n&sr.DashCase?t.style.removeProperty(i):t.style[i]=""}setProperty(t,i,n){t[i]=n}setValue(t,i){t.nodeValue=i}listen(t,i,n){if("string"==typeof t&&!(t=ba().getGlobalEventTarget(this.doc,t)))throw new Error(`Unsupported event target ${t} for event ${i}`);return this.eventManager.addEventListener(t,i,this.decoratePreventDefault(n))}decoratePreventDefault(t){return i=>{if("__ngUnwrap__"===i)return t;!1===(this.platformIsServer?this.ngZone.runGuarded(()=>t(i)):t(i))&&i.preventDefault()}}}function Pb(e){return"TEMPLATE"===e.tagName&&void 0!==e.content}class Nk extends sp{constructor(t,i,n,r,s,o,a,l){super(t,s,o,l),this.sharedStylesHost=i,this.hostEl=n,this.shadowRoot=n.attachShadow({mode:"open"}),this.sharedStylesHost.addHost(this.shadowRoot);const c=xb(r.id,r.styles);for(const u of c){const h=document.createElement("style");a&&h.setAttribute("nonce",a),h.textContent=u,this.shadowRoot.appendChild(h)}}nodeOrShadowRoot(t){return t===this.hostEl?this.shadowRoot:t}appendChild(t,i){return super.appendChild(this.nodeOrShadowRoot(t),i)}insertBefore(t,i,n){return super.insertBefore(this.nodeOrShadowRoot(t),i,n)}removeChild(t,i){return super.removeChild(this.nodeOrShadowRoot(t),i)}parentNode(t){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(t)))}destroy(){this.sharedStylesHost.removeHost(this.shadowRoot)}}class op extends sp{constructor(t,i,n,r,s,o,a,l){super(t,s,o,a),this.sharedStylesHost=i,this.removeStylesOnCompDestroy=r,this.styles=l?xb(l,n.styles):n.styles}applyStyles(){this.sharedStylesHost.addStyles(this.styles)}destroy(){this.removeStylesOnCompDestroy&&this.sharedStylesHost.removeStyles(this.styles)}}class Fb extends op{constructor(t,i,n,r,s,o,a,l){const c=r+"-"+n.id;super(t,i,n,s,o,a,l,c),this.contentAttr=function Tk(e){return"_ngcontent-%COMP%".replace(rp,e)}(c),this.hostAttr=function Mk(e){return"_nghost-%COMP%".replace(rp,e)}(c)}applyToHost(t){this.applyStyles(),this.setAttribute(t,this.hostAttr,"")}createElement(t,i){const n=super.createElement(t,i);return super.setAttribute(n,this.contentAttr,""),n}}let Ak=(()=>{var e;class t extends Nb{constructor(n){super(n)}supports(n){return!0}addEventListener(n,r,s){return n.addEventListener(r,s,!1),()=>this.removeEventListener(n,r,s)}removeEventListener(n,r,s){return n.removeEventListener(r,s)}}return(e=t).\u0275fac=function(n){return new(n||e)(L(Qt))},e.\u0275prov=G({token:e,factory:e.\u0275fac}),t})();const kb=["alt","control","meta","shift"],Ok={"\b":"Backspace","\t":"Tab","\x7f":"Delete","\x1b":"Escape",Del:"Delete",Esc:"Escape",Left:"ArrowLeft",Right:"ArrowRight",Up:"ArrowUp",Down:"ArrowDown",Menu:"ContextMenu",Scroll:"ScrollLock",Win:"OS"},xk={alt:e=>e.altKey,control:e=>e.ctrlKey,meta:e=>e.metaKey,shift:e=>e.shiftKey};let Rk=(()=>{var e;class t extends Nb{constructor(n){super(n)}supports(n){return null!=t.parseEventName(n)}addEventListener(n,r,s){const o=t.parseEventName(r),a=t.eventCallback(o.fullKey,s,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>ba().onAndCancel(n,o.domEventName,a))}static parseEventName(n){const r=n.toLowerCase().split("."),s=r.shift();if(0===r.length||"keydown"!==s&&"keyup"!==s)return null;const o=t._normalizeKey(r.pop());let a="",l=r.indexOf("code");if(l>-1&&(r.splice(l,1),a="code."),kb.forEach(u=>{const h=r.indexOf(u);h>-1&&(r.splice(h,1),a+=u+".")}),a+=o,0!=r.length||0===o.length)return null;const c={};return c.domEventName=s,c.fullKey=a,c}static matchEventFullKeyCode(n,r){let s=Ok[n.key]||n.key,o="";return r.indexOf("code.")>-1&&(s=n.code,o="code."),!(null==s||!s)&&(s=s.toLowerCase()," "===s?s="space":"."===s&&(s="dot"),kb.forEach(a=>{a!==s&&(0,xk[a])(n)&&(o+=a+".")}),o+=s,o===r)}static eventCallback(n,r,s){return o=>{t.matchEventFullKeyCode(o,n)&&s.runGuarded(()=>r(o))}}static _normalizeKey(n){return"esc"===n?"escape":n}}return(e=t).\u0275fac=function(n){return new(n||e)(L(Qt))},e.\u0275prov=G({token:e,factory:e.\u0275fac}),t})();const Lk=O1(vP,"browser",[{provide:Nr,useValue:"browser"},{provide:qm,useValue:function Pk(){ep.makeCurrent()},multi:!0},{provide:Qt,useFactory:function kk(){return function AM(e){zd=e}(document),document},deps:[]}]),Bk=new W(""),Vb=[{provide:Ec,useClass:class bk{addToWindow(t){Ue.getAngularTestability=(n,r=!0)=>{const s=t.findTestabilityInTree(n,r);if(null==s)throw new F(5103,!1);return s},Ue.getAllAngularTestabilities=()=>t.getAllTestabilities(),Ue.getAllAngularRootElements=()=>t.getAllRootElements(),Ue.frameworkStabilizers||(Ue.frameworkStabilizers=[]),Ue.frameworkStabilizers.push(n=>{const r=Ue.getAllAngularTestabilities();let s=r.length,o=!1;const a=function(l){o=o||l,s--,0==s&&n(o)};r.forEach(l=>{l.whenStable(a)})})}findTestabilityInTree(t,i,n){return null==i?null:t.getTestability(i)??(n?ba().isShadowRoot(i)?this.findTestabilityInTree(t,i.host,!0):this.findTestabilityInTree(t,i.parentElement,!0):null)}},deps:[]},{provide:T1,useClass:Eh,deps:[Se,Sh,Ec]},{provide:Eh,useClass:Eh,deps:[Se,Sh,Ec]}],Hb=[{provide:nf,useValue:"root"},{provide:Ar,useFactory:function Fk(){return new Ar},deps:[]},{provide:tp,useClass:Ak,multi:!0,deps:[Qt,Se,Nr]},{provide:tp,useClass:Rk,multi:!0,deps:[Qt]},Rb,Ab,Ib,{provide:vf,useExisting:Rb},{provide:Cb,useClass:Dk,deps:[]},[]];let Vk=(()=>{var e;class t{constructor(n){}static withServerTransition(n){return{ngModule:t,providers:[{provide:Wl,useValue:n.appId}]}}}return(e=t).\u0275fac=function(n){return new(n||e)(L(Bk,12))},e.\u0275mod=Pe({type:e}),e.\u0275inj=Ae({providers:[...Hb,...Vb],imports:[bb,yP]}),t})();typeof window<"u"&&window;let Kt=(()=>{var e;class t{constructor(){this.elementLookup=[]}findElementIndex(n){let r=-1;for(let s=0;s{});if(null==a){let l=this.initializeElementLookupDtoAll(n,r,o,s);this.elementLookup.push(l)}else null==a.tagHtml&&(a.tagHtml=s),null==a.object&&(a.object=null)}getElement(n){return this.elementLookup.find(s=>s.id==n)??null}initializeElementLookupDtoAll(n,r,s,o){return new lp(n,r,s,o)}initializeElementLookupDtoNullObject(n,r,s){return new lp(n,null,r,s)}initializeElementLookupDtoNullTagHTML(n,r,s){return new lp(n,s,r,null)}clearElementLookupDict(){this.elementLookup.length=0}}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275prov=G({token:e,factory:e.\u0275fac,providedIn:"root"}),t})();class lp{constructor(t,i,n,r){this.id=t,this.object=i,this.element=n,this.tagHtml=r}}let Xt=(()=>{var e;class t{}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275prov=G({token:e,factory:e.\u0275fac,providedIn:"root"}),t})();function Gb(e){return mt((t,i)=>{let s,n=null,r=!1;n=t.subscribe(ft(i,void 0,void 0,o=>{s=Ft(e(o,Gb(e)(t))),n?(n.unsubscribe(),n=null,s.subscribe(i)):r=!0})),r&&(n.unsubscribe(),n=null,s.subscribe(i))})}function ci(e,t){return mt((i,n)=>{let r=0;i.subscribe(ft(n,s=>e.call(t,s,r++)&&n.next(s)))})}function zb(e){return mt((t,i)=>{try{t.subscribe(i)}finally{i.add(e)}})}class $c{}class Gc{}class Pi{constructor(t){this.normalizedNames=new Map,this.lazyUpdate=null,t?"string"==typeof t?this.lazyInit=()=>{this.headers=new Map,t.split("\n").forEach(i=>{const n=i.indexOf(":");if(n>0){const r=i.slice(0,n),s=r.toLowerCase(),o=i.slice(n+1).trim();this.maybeSetNormalizedName(r,s),this.headers.has(s)?this.headers.get(s).push(o):this.headers.set(s,[o])}})}:typeof Headers<"u"&&t instanceof Headers?(this.headers=new Map,t.forEach((i,n)=>{this.setHeaderEntries(n,i)})):this.lazyInit=()=>{this.headers=new Map,Object.entries(t).forEach(([i,n])=>{this.setHeaderEntries(i,n)})}:this.headers=new Map}has(t){return this.init(),this.headers.has(t.toLowerCase())}get(t){this.init();const i=this.headers.get(t.toLowerCase());return i&&i.length>0?i[0]:null}keys(){return this.init(),Array.from(this.normalizedNames.values())}getAll(t){return this.init(),this.headers.get(t.toLowerCase())||null}append(t,i){return this.clone({name:t,value:i,op:"a"})}set(t,i){return this.clone({name:t,value:i,op:"s"})}delete(t,i){return this.clone({name:t,value:i,op:"d"})}maybeSetNormalizedName(t,i){this.normalizedNames.has(i)||this.normalizedNames.set(i,t)}init(){this.lazyInit&&(this.lazyInit instanceof Pi?this.copyFrom(this.lazyInit):this.lazyInit(),this.lazyInit=null,this.lazyUpdate&&(this.lazyUpdate.forEach(t=>this.applyUpdate(t)),this.lazyUpdate=null))}copyFrom(t){t.init(),Array.from(t.headers.keys()).forEach(i=>{this.headers.set(i,t.headers.get(i)),this.normalizedNames.set(i,t.normalizedNames.get(i))})}clone(t){const i=new Pi;return i.lazyInit=this.lazyInit&&this.lazyInit instanceof Pi?this.lazyInit:this,i.lazyUpdate=(this.lazyUpdate||[]).concat([t]),i}applyUpdate(t){const i=t.name.toLowerCase();switch(t.op){case"a":case"s":let n=t.value;if("string"==typeof n&&(n=[n]),0===n.length)return;this.maybeSetNormalizedName(t.name,i);const r=("a"===t.op?this.headers.get(i):void 0)||[];r.push(...n),this.headers.set(i,r);break;case"d":const s=t.value;if(s){let o=this.headers.get(i);if(!o)return;o=o.filter(a=>-1===s.indexOf(a)),0===o.length?(this.headers.delete(i),this.normalizedNames.delete(i)):this.headers.set(i,o)}else this.headers.delete(i),this.normalizedNames.delete(i)}}setHeaderEntries(t,i){const n=(Array.isArray(i)?i:[i]).map(s=>s.toString()),r=t.toLowerCase();this.headers.set(r,n),this.maybeSetNormalizedName(t,r)}forEach(t){this.init(),Array.from(this.normalizedNames.keys()).forEach(i=>t(this.normalizedNames.get(i),this.headers.get(i)))}}class Yk{encodeKey(t){return Wb(t)}encodeValue(t){return Wb(t)}decodeKey(t){return decodeURIComponent(t)}decodeValue(t){return decodeURIComponent(t)}}const Jk=/%(\d[a-f0-9])/gi,Qk={40:"@","3A":":",24:"$","2C":",","3B":";","3D":"=","3F":"?","2F":"/"};function Wb(e){return encodeURIComponent(e).replace(Jk,(t,i)=>Qk[i]??t)}function zc(e){return`${e}`}class ur{constructor(t={}){if(this.updates=null,this.cloneFrom=null,this.encoder=t.encoder||new Yk,t.fromString){if(t.fromObject)throw new Error("Cannot specify both fromString and fromObject.");this.map=function Zk(e,t){const i=new Map;return e.length>0&&e.replace(/^\?/,"").split("&").forEach(r=>{const s=r.indexOf("="),[o,a]=-1==s?[t.decodeKey(r),""]:[t.decodeKey(r.slice(0,s)),t.decodeValue(r.slice(s+1))],l=i.get(o)||[];l.push(a),i.set(o,l)}),i}(t.fromString,this.encoder)}else t.fromObject?(this.map=new Map,Object.keys(t.fromObject).forEach(i=>{const n=t.fromObject[i],r=Array.isArray(n)?n.map(zc):[zc(n)];this.map.set(i,r)})):this.map=null}has(t){return this.init(),this.map.has(t)}get(t){this.init();const i=this.map.get(t);return i?i[0]:null}getAll(t){return this.init(),this.map.get(t)||null}keys(){return this.init(),Array.from(this.map.keys())}append(t,i){return this.clone({param:t,value:i,op:"a"})}appendAll(t){const i=[];return Object.keys(t).forEach(n=>{const r=t[n];Array.isArray(r)?r.forEach(s=>{i.push({param:n,value:s,op:"a"})}):i.push({param:n,value:r,op:"a"})}),this.clone(i)}set(t,i){return this.clone({param:t,value:i,op:"s"})}delete(t,i){return this.clone({param:t,value:i,op:"d"})}toString(){return this.init(),this.keys().map(t=>{const i=this.encoder.encodeKey(t);return this.map.get(t).map(n=>i+"="+this.encoder.encodeValue(n)).join("&")}).filter(t=>""!==t).join("&")}clone(t){const i=new ur({encoder:this.encoder});return i.cloneFrom=this.cloneFrom||this,i.updates=(this.updates||[]).concat(t),i}init(){null===this.map&&(this.map=new Map),null!==this.cloneFrom&&(this.cloneFrom.init(),this.cloneFrom.keys().forEach(t=>this.map.set(t,this.cloneFrom.map.get(t))),this.updates.forEach(t=>{switch(t.op){case"a":case"s":const i=("a"===t.op?this.map.get(t.param):void 0)||[];i.push(zc(t.value)),this.map.set(t.param,i);break;case"d":if(void 0===t.value){this.map.delete(t.param);break}{let n=this.map.get(t.param)||[];const r=n.indexOf(zc(t.value));-1!==r&&n.splice(r,1),n.length>0?this.map.set(t.param,n):this.map.delete(t.param)}}}),this.cloneFrom=this.updates=null)}}class Kk{constructor(){this.map=new Map}set(t,i){return this.map.set(t,i),this}get(t){return this.map.has(t)||this.map.set(t,t.defaultValue()),this.map.get(t)}delete(t){return this.map.delete(t),this}has(t){return this.map.has(t)}keys(){return this.map.keys()}}function qb(e){return typeof ArrayBuffer<"u"&&e instanceof ArrayBuffer}function Yb(e){return typeof Blob<"u"&&e instanceof Blob}function Zb(e){return typeof FormData<"u"&&e instanceof FormData}class Sa{constructor(t,i,n,r){let s;if(this.url=i,this.body=null,this.reportProgress=!1,this.withCredentials=!1,this.responseType="json",this.method=t.toUpperCase(),function Xk(e){switch(e){case"DELETE":case"GET":case"HEAD":case"OPTIONS":case"JSONP":return!1;default:return!0}}(this.method)||r?(this.body=void 0!==n?n:null,s=r):s=n,s&&(this.reportProgress=!!s.reportProgress,this.withCredentials=!!s.withCredentials,s.responseType&&(this.responseType=s.responseType),s.headers&&(this.headers=s.headers),s.context&&(this.context=s.context),s.params&&(this.params=s.params)),this.headers||(this.headers=new Pi),this.context||(this.context=new Kk),this.params){const o=this.params.toString();if(0===o.length)this.urlWithParams=i;else{const a=i.indexOf("?");this.urlWithParams=i+(-1===a?"?":ah.set(g,t.setHeaders[g]),l)),t.setParams&&(c=Object.keys(t.setParams).reduce((h,g)=>h.set(g,t.setParams[g]),c)),new Sa(i,n,s,{params:c,headers:l,context:u,reportProgress:a,responseType:r,withCredentials:o})}}var so=function(e){return e[e.Sent=0]="Sent",e[e.UploadProgress=1]="UploadProgress",e[e.ResponseHeader=2]="ResponseHeader",e[e.DownloadProgress=3]="DownloadProgress",e[e.Response=4]="Response",e[e.User=5]="User",e}(so||{});class cp{constructor(t,i=200,n="OK"){this.headers=t.headers||new Pi,this.status=void 0!==t.status?t.status:i,this.statusText=t.statusText||n,this.url=t.url||null,this.ok=this.status>=200&&this.status<300}}class up extends cp{constructor(t={}){super(t),this.type=so.ResponseHeader}clone(t={}){return new up({headers:t.headers||this.headers,status:void 0!==t.status?t.status:this.status,statusText:t.statusText||this.statusText,url:t.url||this.url||void 0})}}class oo extends cp{constructor(t={}){super(t),this.type=so.Response,this.body=void 0!==t.body?t.body:null}clone(t={}){return new oo({body:void 0!==t.body?t.body:this.body,headers:t.headers||this.headers,status:void 0!==t.status?t.status:this.status,statusText:t.statusText||this.statusText,url:t.url||this.url||void 0})}}class Jb extends cp{constructor(t){super(t,0,"Unknown Error"),this.name="HttpErrorResponse",this.ok=!1,this.message=this.status>=200&&this.status<300?`Http failure during parsing for ${t.url||"(unknown url)"}`:`Http failure response for ${t.url||"(unknown url)"}: ${t.status} ${t.statusText}`,this.error=t.error||null}}function dp(e,t){return{body:t,headers:e.headers,context:e.context,observe:e.observe,params:e.params,reportProgress:e.reportProgress,responseType:e.responseType,withCredentials:e.withCredentials}}let Wc=(()=>{var e;class t{constructor(n){this.handler=n}request(n,r,s={}){let o;if(n instanceof Sa)o=n;else{let c,u;c=s.headers instanceof Pi?s.headers:new Pi(s.headers),s.params&&(u=s.params instanceof ur?s.params:new ur({fromObject:s.params})),o=new Sa(n,r,void 0!==s.body?s.body:null,{headers:c,context:s.context,params:u,reportProgress:s.reportProgress,responseType:s.responseType||"json",withCredentials:s.withCredentials})}const a=ds(o).pipe(function qk(e,t){return $(t)?us(e,t,1):us(e,1)}(c=>this.handler.handle(c)));if(n instanceof Sa||"events"===s.observe)return a;const l=a.pipe(ci(c=>c instanceof oo));switch(s.observe||"body"){case"body":switch(o.responseType){case"arraybuffer":return l.pipe(Pt(c=>{if(null!==c.body&&!(c.body instanceof ArrayBuffer))throw new Error("Response is not an ArrayBuffer.");return c.body}));case"blob":return l.pipe(Pt(c=>{if(null!==c.body&&!(c.body instanceof Blob))throw new Error("Response is not a Blob.");return c.body}));case"text":return l.pipe(Pt(c=>{if(null!==c.body&&"string"!=typeof c.body)throw new Error("Response is not a string.");return c.body}));default:return l.pipe(Pt(c=>c.body))}case"response":return l;default:throw new Error(`Unreachable: unhandled observe type ${s.observe}}`)}}delete(n,r={}){return this.request("DELETE",n,r)}get(n,r={}){return this.request("GET",n,r)}head(n,r={}){return this.request("HEAD",n,r)}jsonp(n,r){return this.request("JSONP",n,{params:(new ur).append(r,"JSONP_CALLBACK"),observe:"body",responseType:"json"})}options(n,r={}){return this.request("OPTIONS",n,r)}patch(n,r,s={}){return this.request("PATCH",n,dp(s,r))}post(n,r,s={}){return this.request("POST",n,dp(s,r))}put(n,r,s={}){return this.request("PUT",n,dp(s,r))}}return(e=t).\u0275fac=function(n){return new(n||e)(L($c))},e.\u0275prov=G({token:e,factory:e.\u0275fac}),t})();function Xb(e,t){return t(e)}function n2(e,t){return(i,n)=>t.intercept(i,{handle:r=>e(r,n)})}const r2=new W(""),Ta=new W(""),eD=new W("");function s2(){let e=null;return(t,i)=>{null===e&&(e=(fe(r2,{optional:!0})??[]).reduceRight(n2,Xb));const n=fe(Dh),r=n.add();return e(t,i).pipe(zb(()=>n.remove(r)))}}let tD=(()=>{var e;class t extends $c{constructor(n,r){super(),this.backend=n,this.injector=r,this.chain=null,this.pendingTasks=fe(Dh)}handle(n){if(null===this.chain){const s=Array.from(new Set([...this.injector.get(Ta),...this.injector.get(eD,[])]));this.chain=s.reduceRight((o,a)=>function i2(e,t,i){return(n,r)=>i.runInContext(()=>t(n,s=>e(s,r)))}(o,a,this.injector),Xb)}const r=this.pendingTasks.add();return this.chain(n,s=>this.backend.handle(s)).pipe(zb(()=>this.pendingTasks.remove(r)))}}return(e=t).\u0275fac=function(n){return new(n||e)(L(Gc),L(Gn))},e.\u0275prov=G({token:e,factory:e.\u0275fac}),t})();const c2=/^\)\]\}',?\n/;let iD=(()=>{var e;class t{constructor(n){this.xhrFactory=n}handle(n){if("JSONP"===n.method)throw new F(-2800,!1);const r=this.xhrFactory;return(r.\u0275loadImpl?wo(r.\u0275loadImpl()):ds(null)).pipe(Vu(()=>new ze(o=>{const a=r.build();if(a.open(n.method,n.urlWithParams),n.withCredentials&&(a.withCredentials=!0),n.headers.forEach((D,T)=>a.setRequestHeader(D,T.join(","))),n.headers.has("Accept")||a.setRequestHeader("Accept","application/json, text/plain, */*"),!n.headers.has("Content-Type")){const D=n.detectContentTypeHeader();null!==D&&a.setRequestHeader("Content-Type",D)}if(n.responseType){const D=n.responseType.toLowerCase();a.responseType="json"!==D?D:"text"}const l=n.serializeBody();let c=null;const u=()=>{if(null!==c)return c;const D=a.statusText||"OK",T=new Pi(a.getAllResponseHeaders()),C=function u2(e){return"responseURL"in e&&e.responseURL?e.responseURL:/^X-Request-URL:/m.test(e.getAllResponseHeaders())?e.getResponseHeader("X-Request-URL"):null}(a)||n.url;return c=new up({headers:T,status:a.status,statusText:D,url:C}),c},h=()=>{let{headers:D,status:T,statusText:C,url:P}=u(),O=null;204!==T&&(O=typeof a.response>"u"?a.responseText:a.response),0===T&&(T=O?200:0);let V=T>=200&&T<300;if("json"===n.responseType&&"string"==typeof O){const J=O;O=O.replace(c2,"");try{O=""!==O?JSON.parse(O):null}catch(ue){O=J,V&&(V=!1,O={error:ue,text:O})}}V?(o.next(new oo({body:O,headers:D,status:T,statusText:C,url:P||void 0})),o.complete()):o.error(new Jb({error:O,headers:D,status:T,statusText:C,url:P||void 0}))},g=D=>{const{url:T}=u(),C=new Jb({error:D,status:a.status||0,statusText:a.statusText||"Unknown Error",url:T||void 0});o.error(C)};let _=!1;const y=D=>{_||(o.next(u()),_=!0);let T={type:so.DownloadProgress,loaded:D.loaded};D.lengthComputable&&(T.total=D.total),"text"===n.responseType&&a.responseText&&(T.partialText=a.responseText),o.next(T)},b=D=>{let T={type:so.UploadProgress,loaded:D.loaded};D.lengthComputable&&(T.total=D.total),o.next(T)};return a.addEventListener("load",h),a.addEventListener("error",g),a.addEventListener("timeout",g),a.addEventListener("abort",g),n.reportProgress&&(a.addEventListener("progress",y),null!==l&&a.upload&&a.upload.addEventListener("progress",b)),a.send(l),o.next({type:so.Sent}),()=>{a.removeEventListener("error",g),a.removeEventListener("abort",g),a.removeEventListener("load",h),a.removeEventListener("timeout",g),n.reportProgress&&(a.removeEventListener("progress",y),null!==l&&a.upload&&a.upload.removeEventListener("progress",b)),a.readyState!==a.DONE&&a.abort()}})))}}return(e=t).\u0275fac=function(n){return new(n||e)(L(Cb))},e.\u0275prov=G({token:e,factory:e.\u0275fac}),t})();const fp=new W("XSRF_ENABLED"),rD=new W("XSRF_COOKIE_NAME",{providedIn:"root",factory:()=>"XSRF-TOKEN"}),sD=new W("XSRF_HEADER_NAME",{providedIn:"root",factory:()=>"X-XSRF-TOKEN"});class oD{}let h2=(()=>{var e;class t{constructor(n,r,s){this.doc=n,this.platform=r,this.cookieName=s,this.lastCookieString="",this.lastToken=null,this.parseCount=0}getToken(){if("server"===this.platform)return null;const n=this.doc.cookie||"";return n!==this.lastCookieString&&(this.parseCount++,this.lastToken=hb(n,this.cookieName),this.lastCookieString=n),this.lastToken}}return(e=t).\u0275fac=function(n){return new(n||e)(L(Qt),L(Nr),L(rD))},e.\u0275prov=G({token:e,factory:e.\u0275fac}),t})();function p2(e,t){const i=e.url.toLowerCase();if(!fe(fp)||"GET"===e.method||"HEAD"===e.method||i.startsWith("http://")||i.startsWith("https://"))return t(e);const n=fe(oD).getToken(),r=fe(sD);return null!=n&&!e.headers.has(r)&&(e=e.clone({headers:e.headers.set(r,n)})),t(e)}var dr=function(e){return e[e.Interceptors=0]="Interceptors",e[e.LegacyInterceptors=1]="LegacyInterceptors",e[e.CustomXsrfConfiguration=2]="CustomXsrfConfiguration",e[e.NoXsrfProtection=3]="NoXsrfProtection",e[e.JsonpSupport=4]="JsonpSupport",e[e.RequestsMadeViaParent=5]="RequestsMadeViaParent",e[e.Fetch=6]="Fetch",e}(dr||{});function Br(e,t){return{\u0275kind:e,\u0275providers:t}}function g2(...e){const t=[Wc,iD,tD,{provide:$c,useExisting:tD},{provide:Gc,useExisting:iD},{provide:Ta,useValue:p2,multi:!0},{provide:fp,useValue:!0},{provide:oD,useClass:h2}];for(const i of e)t.push(...i.\u0275providers);return function Xd(e){return{\u0275providers:e}}(t)}const aD=new W("LEGACY_INTERCEPTOR_FN");let m2=(()=>{var e;class t{}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275mod=Pe({type:e}),e.\u0275inj=Ae({providers:[g2(Br(dr.LegacyInterceptors,[{provide:aD,useFactory:s2},{provide:Ta,useExisting:aD,multi:!0}]))]}),t})(),lD=(()=>{var e;class t{constructor(n){this.http=n}load(){return this.http.get("/assets/config.json").toPromise().then(r=>(Object.assign(this,r),r))}}return(e=t).\u0275fac=function(n){return new(n||e)(L(Wc))},e.\u0275prov=G({token:e,factory:e.\u0275fac,providedIn:"root"}),t})(),cD=(()=>{var e;class t{constructor(){this.modals=[]}registerModal(n,r){this.modals.push({key:n,modalRef:r})}removeModalByKey(n){let r=-1;for(let s=0;s=0&&delete this.modals[r],r}closeRemoveAllModals(){this.modals.forEach(n=>{n.modalRef.close()}),this.modals.length=0}}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275prov=G({token:e,factory:e.\u0275fac,providedIn:"root"}),t})(),Yc=(()=>{var e;class t{constructor(){this.contextKeyVal=[]}addContext(n,r){let s=!1;for(let o=0;o=0?this.contextKeyVal[r].value:""}clearContext(){this.contextKeyVal.length=0}}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275prov=G({token:e,factory:e.\u0275fac,providedIn:"root"}),t})();class C2{constructor(t,i){this.key=t,this.value=i}}let Ma=(()=>{var e;class t{constructor(n){this.elementLookupService=n,this.contextMenus=[]}registerContextMenu(n,r){this.contextMenus.push({key:n,contextMenu:r}),this.elementLookupService.addElementTagHTML(n,null,r)}removeContextMenuByKey(n){let r=-1;for(let s=0;s=0&&delete this.contextMenus[r],r}retrieveContextValue(n){let r=-1;for(let s=0;s=0?this.contextMenus[r].contextMenu:null}removeAllContextMenus(){this.contextMenus.length=0}}return(e=t).\u0275fac=function(n){return new(n||e)(L(Kt))},e.\u0275prov=G({token:e,factory:e.\u0275fac,providedIn:"root"}),t})(),E2=(()=>{var e;class t{constructor(n,r,s,o,a,l){this.http=n,this.configService=r,this.modalRefService=s,this.elementLookupService=o,this.contextService=a,this.contextMenuService=l,this.backend_URI="http://localhost:8000",this.backend_URI=r.serverUrl+":"+r.serverPort}get(){this.modalRefService.closeRemoveAllModals(),this.elementLookupService.clearElementLookupDict(),this.contextService.clearContext(),this.contextMenuService.removeAllContextMenus();let n=Xt.injector.get(Qn);const r=this.http.get(this.backend_URI).pipe(Gb((s,o)=>(console.error("Error occurred during the HTTP request:",s),n.postMessage("error connection"),function Wk(e,t){const i=$(e)?e:()=>e,n=r=>r.error(i());return new ze(t?r=>t.schedule(n,0,r):n)}(()=>new Error(s.error)))));return r}post(n,r){let s=[];r.forEach(a=>s.push(Object.assign({},a))),this.modalRefService.closeRemoveAllModals(),this.elementLookupService.clearElementLookupDict(),this.contextService.clearContext(),this.contextMenuService.removeAllContextMenus();let o=null;return o=this.http.post(this.backend_URI+"/backend",s.length>0?{function:n,context:s}:{function:n}),o}}return(e=t).\u0275fac=function(n){return new(n||e)(L(Wc),L(lD),L(cD),L(Kt),L(Yc),L(Ma))},e.\u0275prov=G({token:e,factory:e.\u0275fac,providedIn:"root"}),t})(),Qn=(()=>{var e;class t{constructor(n,r,s){this.httpService=n,this.httpClient=r,this.contextService=s,this.frontendJson=new ee,this.menuBar=new ee,this.messageLists=new ee,this.contextMenus=new ee,this.lastData=null,this.backend_URI="http://localhost:8000"}initialGet(){this.httpService.get().subscribe({next:n=>{this.lastData=n,this.frontendJson.next(n)}})}policyPost(n){let r=this.contextService.getContext();this.httpService.post(n.policy,r).subscribe({next:s=>{this.lastData=s,this.frontendJson.next(s)}})}uncheckedPost(n){this.httpClient.post(this.backend_URI+"/backend",n).subscribe({next:r=>{this.lastData=r,this.frontendJson.next(r)}})}detectCreateMenuBar(n){"menu_bar"==n.type?this.menuBar.next(n):n.children.forEach(r=>{this.detectCreateMenuBar(r)})}getAllMessagesContextMenus(n,r,s){"message"==n.type?r.push(n):"context_menu"==n.type?s.push(n):n.children.forEach(o=>{this.getAllMessagesContextMenus(o,r,s)})}postMessage(n,r="danger"){let s=[this.getErrorMessage(n)];this.messageLists.next(s)}getErrorMessage(n,r="danger"){return{id:"client_error",type:"message",parent:"window",attributes:[{id:"client_error",key:"message",value:n},{id:"client_error",key:"title",value:"Error"},{id:"client_error",key:"type",value:r}],when:[],children:[]}}}return(e=t).\u0275fac=function(n){return new(n||e)(L(E2),L(Wc),L(Yc))},e.\u0275prov=G({token:e,factory:e.\u0275fac,providedIn:"root"}),t})(),Tn=(()=>{var e;class t{constructor(){}attrBackgroundColor(n,r){n.style.backgroundColor=r.value}attrHeight(n,r){n.style.height=r.value+"px"}attrWidth(n,r){n.style.width=r.value+"px"}setBorderHelper(n,r){let s=Number(this.findGetAttributeValue("border_width",r,"0")),o=this.findGetAttributeValue("border_color",r,"black");this.setBorder(n,s,o,"solid")}setBorder(n,r,s,o){r>0&&(n.style.border=String(r)+"px "+o+" "+s)}addAttributes(n,r){let s=[{key:"background_color",value:this.attrBackgroundColor},{key:"height",value:this.attrHeight},{key:"width",value:this.attrWidth}];r.forEach(o=>{let a=s.findIndex(l=>l.key==o.key);a>=0&&s[a].value(n,o)}),this.setHover(n,r)}addGeneralAttributes(n,r){this.setGrid(n,r),this.setBorderHelper(n,r)}setGrid(n,r){let s=this.findAttribute("grid_row",r),o=this.findAttribute("grid_row_span",r),a=this.findAttribute("grid_column",r),l=this.findAttribute("grid_column_span",r),c=1;null!=o&&(c=Number(o.value));let u=1;if(null!=l&&(u=Number(l.value)),null!=s){let h=Number(s.value)+1;n.style.gridRow=String(h)+"/span "+String(c)}if(null!=a){let h=Number(a.value)+1;n.style.gridColumn=String(h)+"/span "+String(u)}}setHover(n,r){let s=this.findGetAttributeValue("on_hover",r,"false"),o=this.findGetAttributeValue("on_hover_background_color",r,"white"),a=this.findGetAttributeValue("on_hover_foreground_color",r,"black"),l=this.findGetAttributeValue("on_hover_border_color",r,"white"),c=this.findGetAttributeValue("background_color",r,"white"),u=this.findGetAttributeValue("foreground_color",r,"black"),h=Number(this.findGetAttributeValue("border_width",r,"0")),g=this.findGetAttributeValue("border_color",r,"black"),_="solid";"true"==s&&(n.onmouseenter=y=>{n.style.backgroundColor=o,n.style.color=a,this.setBorder(n,h,l,_)},n.onmouseleave=y=>{n.style.backgroundColor=c,n.style.color=u,this.setBorder(n,h,g,_)})}textAttributes(n,r){}addClasses(n,r,s,o,a="class"){s.forEach(function(c){n.classList.add(c)});let l=!1;r.forEach(function(c){if(c.key==a){l=!0;let u=String(c.value);n.classList.add(u)}}),l||o.forEach(function(c){n.classList.add(c)})}setAttributesDirectly(n,r){r.forEach(s=>{n.style[s.key]=s.value})}findAttribute(n,r){let s=null,o=r.findIndex(a=>a.key==n);return o>=0&&(s=r[o]),s}findGetAttributeValue(n,r,s){let o=s,a=r.findIndex(l=>l.key==n);return a>=0&&(o=r[a].value),o}setAbsoulteRelativePositions(n,r,s){let o=Number(this.findGetAttributeValue("pos_x",s.attributes,"-1")),a=Number(this.findGetAttributeValue("pos_y",s.attributes,"-1"));o>=0&&"absstatic"==n&&(r.style.left=String(o)+"px"),o>=0&&"relstatic"==n&&(r.style.left=String(o)+"%"),a>=0&&"absstatic"==n&&(r.style.top=String(a)+"px"),a>=0&&"relstatic"==n&&(r.style.top=String(a)+"%"),(a>=0||o>=0)&&("absstatic"==n||"relstatic"==n)&&(r.style.position="absolute");let l=this.findAttribute("grid_row",s.attributes),c=this.findAttribute("grid_column",s.attributes);null==l&&"grid"==n&&(r.style.gridRow="1"),null==c&&"grid"==n&&(r.style.gridColumn="1")}setChildLayout(n,r){let s=this.findAttribute("child_layout",r),o=this.findAttribute("flex_direction",r);if(null!=s){let a=s?.value;"grid"==a?n.style.display="grid":"flex"==a?(n.style.display="flex",n.style.flexDirection=null!=o?o.value:"column"):("absstatic"==a||"relstatic"==a)&&(n.style.position="relative",n.style.display="flex")}else n.style.display="flex",n.style.flexDirection=null!=o?o.value:"column"}setVisibility(n,r){let s=this.findAttribute("visibility",r);null!=s&&("hidden"==s.value||"collapse"==s.value?n.style.visibility="collapse":("shown"==s.value||"visible"==s.value)&&(n.style.visibility="visible"))}}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275prov=G({token:e,factory:e.\u0275fac,providedIn:"root"}),t})();const S2=["child"];function T2(e,t){}let uD=(()=>{var e;class t{constructor(n,r,s,o){this.childBearerService=n,this.cd=r,this.attributeService=s,this.elementLookupService=o,this.element=null,this.parentLayout="",this.container_id="",this.container=null,this.children=[]}ngAfterViewInit(){if(null!=this.element){"modal"!=this.element.type&&this.elementLookupService.addElementObject(this.element.id,this,this.element);let n=this.attributeService.findGetAttributeValue("child_layout",this.element.attributes,"flex");this.element.children.forEach(r=>{let s=this.childBearerService.bearChild(this.child,r,n);null!=s&&this.children.push(s)}),this.cd.detectChanges()}}}return(e=t).\u0275fac=function(n){return new(n||e)(v(Tu),v(gt),v(Tn),v(Kt))},e.\u0275cmp=et({type:e,selectors:[["app-container"]],viewQuery:function(n,r){if(1&n&&at(S2,5,Cn),2&n){let s;se(s=oe())&&(r.child=s.first)}},inputs:{element:"element",parentLayout:"parentLayout"},decls:2,vars:0,consts:[["child",""]],template:function(n,r){1&n&&B(0,T2,0,0,"ng-template",null,0,En)}}),t})();function dD(e){let t=[],i="",n=0;for(let r=0;r0&&(e.preventDefault(),e.stopPropagation(),hD())}function hD(){let e=Xt.injector.get(Ma),t=!1;return e.contextMenus.forEach(i=>{let n=document.getElementById(i.key);null!=n&&"block"==n.style.display&&(n.style.display="none",t=!0)}),t}function pD(e,t){let i=Xt.injector.get(Kt),n=e.policy;n=n.substring(1),n=n.slice(0,-1);let r=dD(n),s=r[0],o=r[1],a=r[2],l=i.getElement(s);if(null!=l){if("context_menu"==l.element.type&&null!=t)return void("visibility"!=o||"visible"!=a?console.error("For updates to context menu only tuples of form (_,visibility,visible) are valid, but got: "+s+","+o+","+a):function M2(e,t){if(t.preventDefault(),t.stopPropagation(),1!=hD()&&null!=Xt.injector.get(Ma).retrieveContextValue(e)&&"pageX"in t&&"pageY"in t&&"number"==typeof t.pageX&&"number"==typeof t.pageY){let r=document.getElementById(e);null!=r&&("block"==r.style.display?r.style.display="none":(r.style.display="block",r.style.left=t.pageX+"px",r.style.top=t.pageY+"px"))}}(s,t));let c=l.element.attributes,u=!1;for(let h in c)c[h].key==o&&(u=!0,c[h]={id:s,key:o,value:a});0==u&&c.push({id:s,key:o,value:a}),l.element.attributes=c,null!=l.object&&"setAttributes"in l.object&&null!=l.object.setAttributes&&"function"==typeof l.object.setAttributes&&l.object.setAttributes(c),null==l.object&&l.element.type.startsWith("svg")&&null!=l.tagHtml&&l.tagHtml.style.setProperty(o,a.replaceAll('"',"")),null!=l.tagHtml&&Xt.injector.get(Tu).setChildTagAttributes(l.tagHtml,l.element)}else console.log("COULD NOT FIND ELEMENT FOR when:"+s+"::"+o+"::"+a),console.log(e)}function Zc(e,t){let i=Xt.injector.get(Yc),n=/_context_value\(([^)]*)\)/;t&&(n=/_context_value_optional\(([^)]*)\)/);let r=n.exec(e);for(;null!=r;){let a=function(l){return/^[0-9]*$/.test(l)},s=r[1],o=i.retrieveContextValue(s);if(0==o.length&&!t)throw new Error("Missing required value for "+s);!a(o)&&o.length>0&&o[0]===o[0].toUpperCase()&&'"'!=o[0]&&(o='"'+o+'"'),e=e.replace(n,o),r=n.exec(e)}return e}function gD(e,t){let i=Xt.injector.get(Yc),n=e.policy;if(n=Zc(n,!0),n=Zc(n,!1),"("==n[0]){n=n.substring(1),n=n.slice(0,-1);let o=dD(n);if(o.length>=2){o.length>2&&(console.log("ATTENTION, CONTEXT LENGTH GREATER THAN 2 FOR"),console.log(e));let a=o[0],l=o[1];if(null!=t){let u=t.target;if(null!=u&&"value"in u&&null!=l.match(/_value/g)&&"string"==typeof u.value){if(""==u.value)return void console.log("EVENT TARGET IS EMPTY");l=l.replace("_value",u.value)}}for(let c=2;c{var e;class t{constructor(n){this.frontendService=n,document.onclick=fD,document.oncontextmenu=fD}findCallback(n,r){let s=null,o=r.findIndex(a=>a.actionType==n);return o>=0&&(s=r[o]),s}setCallbacks(n,r){this.handleEvent(n,r,"click","click"),this.handleEvent(n,r,"input","input"),this.handleEvent(n,r,"right_click","contextmenu"),this.handleEvent(n,r,"mouseenter","mouseenter"),this.handleEvent(n,r,"mouseleave","mouseleave"),this.handleEvent(n,r,"load","load"),this.handleEvent(n,r,"dblclick","dblclick")}handleEvent(n,r,s="",o=""){let a=[];if(r.forEach(l=>{l.actionType==s&&a.push(l)}),a.length>0&&""!=o){if("load"==s)return void a.forEach(l=>{"context"==l.interactionType&&gD(l,null),"update"==l.interactionType&&pD(l,null)});"click"==s&&(n.style.cursor="pointer"),n.addEventListener(o,function(l){a.sort(function(g,_){return g.interactionType<_.interactionType?1:g.interactionType>_.interactionType?-1:0});const c=a.filter(g=>"update"==g.interactionType),u=a.filter(g=>"context"==g.interactionType),h=a.filter(g=>"call"==g.interactionType||"callback"==g.interactionType);c.forEach(g=>{try{pD(g,l)}catch(_){Xt.injector.get(Qn).postMessage(_.message,"warning")}}),u.forEach(g=>{try{gD(g,l)}catch(_){Xt.injector.get(Qn).postMessage(_.message,"warning")}}),h.length>1&&(h[0].policy="("+h.map(g=>g.policy).join(",")+")"),h.forEach(g=>{try{!function I2(e,t){let i=Xt.injector.get(Qn),n=e.policy;n=Zc(n,!0),n=Zc(n,!1),e.policy=n,i.policyPost(e)}(h[0])}catch(_){Xt.injector.get(Qn).postMessage(_.message,"warning")}})})}}}return(e=t).\u0275fac=function(n){return new(n||e)(L(Qn))},e.\u0275prov=G({token:e,factory:e.\u0275fac,providedIn:"root"}),t})();const{isArray:N2}=Array;function _D(e){return Pt(t=>function A2(e,t){return N2(t)?e(...t):e(t)}(e,t))}const O2=["addListener","removeListener"],x2=["addEventListener","removeEventListener"],R2=["on","off"];function $t(e,t,i,n){if($(i)&&(n=i,i=void 0),n)return $t(e,t,i).pipe(_D(n));const[r,s]=function k2(e){return $(e.addEventListener)&&$(e.removeEventListener)}(e)?x2.map(o=>a=>e[o](t,a,i)):function P2(e){return $(e.addListener)&&$(e.removeListener)}(e)?O2.map(mD(e,t)):function F2(e){return $(e.on)&&$(e.off)}(e)?R2.map(mD(e,t)):[];if(!r&&Fu(e))return us(o=>$t(o,t,i))(Ft(e));if(!r)throw new TypeError("Invalid event target");return new ze(o=>{const a=(...l)=>o.next(1s(a)})}function mD(e,t){return i=>n=>e[i](t,n)}class L2 extends de{constructor(t,i){super()}schedule(t,i=0){return this}}const Jc={setInterval(e,t,...i){const{delegate:n}=Jc;return n?.setInterval?n.setInterval(e,t,...i):setInterval(e,t,...i)},clearInterval(e){const{delegate:t}=Jc;return(t?.clearInterval||clearInterval)(e)},delegate:void 0},vD={now:()=>(vD.delegate||Date).now(),delegate:void 0};class Ia{constructor(t,i=Ia.now){this.schedulerActionCtor=t,this.now=i}schedule(t,i=0,n){return new this.schedulerActionCtor(this,t).schedule(n,i)}}Ia.now=vD.now;const yD=new class V2 extends Ia{constructor(t,i=Ia.now){super(t,i),this.actions=[],this._active=!1}flush(t){const{actions:i}=this;if(this._active)return void i.push(t);let n;this._active=!0;do{if(n=t.execute(t.state,t.delay))break}while(t=i.shift());if(this._active=!1,n){for(;t=i.shift();)t.unsubscribe();throw n}}}(class B2 extends L2{constructor(t,i){super(t,i),this.scheduler=t,this.work=i,this.pending=!1}schedule(t,i=0){var n;if(this.closed)return this;this.state=t;const r=this.id,s=this.scheduler;return null!=r&&(this.id=this.recycleAsyncId(s,r,i)),this.pending=!0,this.delay=i,this.id=null!==(n=this.id)&&void 0!==n?n:this.requestAsyncId(s,this.id,i),this}requestAsyncId(t,i,n=0){return Jc.setInterval(t.flush.bind(t,this),n)}recycleAsyncId(t,i,n=0){if(null!=n&&this.delay===n&&!1===this.pending)return i;null!=i&&Jc.clearInterval(i)}execute(t,i){if(this.closed)return new Error("executing a cancelled action");this.pending=!1;const n=this._execute(t,i);if(n)return n;!1===this.pending&&null!=this.id&&(this.id=this.recycleAsyncId(this.scheduler,this.id,null))}_execute(t,i){let r,n=!1;try{this.work(t)}catch(s){n=!0,r=s||new Error("Scheduled action threw falsy error")}if(n)return this.unsubscribe(),r}unsubscribe(){if(!this.closed){const{id:t,scheduler:i}=this,{actions:n}=i;this.work=this.state=this.scheduler=null,this.pending=!1,ke(n,this),null!=t&&(this.id=this.recycleAsyncId(i,t,null)),this.delay=null,super.unsubscribe()}}}),H2=yD;function bD(e=0,t,i=H2){let n=-1;return null!=t&&(Dg(t)?i=t:n=t),new ze(r=>{let s=function U2(e){return e instanceof Date&&!isNaN(e)}(e)?+e-i.now():e;s<0&&(s=0);let o=0;return i.schedule(function(){r.closed||(r.next(o++),0<=n?this.schedule(void 0,n):r.complete())},s)})}const{isArray:j2}=Array;function DD(e){return 1===e.length&&j2(e[0])?e[0]:e}function wD(...e){return 1===(e=DD(e)).length?Ft(e[0]):new ze(function $2(e){return t=>{let i=[];for(let n=0;i&&!t.closed&&n{if(i){for(let s=0;s{let r=i.map(()=>[]),s=i.map(()=>!1);n.add(()=>{r=s=null});for(let o=0;!n.closed&&o{if(r[o].push(a),r.every(l=>l.length)){const l=r.map(c=>c.shift());n.next(t?t(...l):l),r.some((c,u)=>!c.length&&s[u])&&n.complete()}},()=>{s[o]=!0,!r[o].length&&n.complete()}));return()=>{r=s=null}}):Do}function Qc(...e){return function G2(){return bg(1)}()(wo(e,Qa(e)))}function Mt(e){return mt((t,i)=>{Ft(e).subscribe(ft(i,()=>i.complete(),wt)),!i.closed&&t.subscribe(i)})}function ui(e){return e<=0?()=>Do:mt((t,i)=>{let n=0;t.subscribe(ft(i,r=>{++n<=e&&(i.next(r),e<=n&&i.complete())}))})}function CD(e,t,i){const n=$(e)||t||i?{next:e,error:t,complete:i}:e;return n?mt((r,s)=>{var o;null===(o=n.subscribe)||void 0===o||o.call(n);let a=!0;r.subscribe(ft(s,l=>{var c;null===(c=n.next)||void 0===c||c.call(n,l),s.next(l)},()=>{var l;a=!1,null===(l=n.complete)||void 0===l||l.call(n),s.complete()},l=>{var c;a=!1,null===(c=n.error)||void 0===c||c.call(n,l),s.error(l)},()=>{var l,c;a&&(null===(l=n.unsubscribe)||void 0===l||l.call(n)),null===(c=n.finalize)||void 0===c||c.call(n)}))}):yi}function pp(...e){const t=Lu(e);return mt((i,n)=>{const r=e.length,s=new Array(r);let o=e.map(()=>!1),a=!1;for(let l=0;l{s[l]=c,!a&&!o[l]&&(o[l]=!0,(a=o.every(yi))&&(o=null))},wt));i.subscribe(ft(n,l=>{if(a){const c=[l,...s];n.next(t?t(...c):c)}}))})}function ED(e,t){return t?i=>Qc(t.pipe(ui(1),function W2(){return mt((e,t)=>{e.subscribe(ft(t,wt))})}()),i.pipe(ED(e))):us((i,n)=>Ft(e(i,n)).pipe(ui(1),function q2(e){return Pt(()=>e)}(i)))}const{isArray:Q2}=Array,{getPrototypeOf:K2,prototype:X2,keys:eL}=Object;function iL(e,t){return e.reduce((i,n,r)=>(i[n]=t[r],i),{})}let SD=(()=>{var e;class t{constructor(n,r){this._renderer=n,this._elementRef=r,this.onChange=s=>{},this.onTouched=()=>{}}setProperty(n,r){this._renderer.setProperty(this._elementRef.nativeElement,n,r)}registerOnTouched(n){this.onTouched=n}registerOnChange(n){this.onChange=n}setDisabledState(n){this.setProperty("disabled",n)}}return(e=t).\u0275fac=function(n){return new(n||e)(v(zn),v(Fe))},e.\u0275dir=k({type:e}),t})(),Vr=(()=>{var e;class t extends SD{}return(e=t).\u0275fac=function(){let i;return function(r){return(i||(i=St(e)))(r||e)}}(),e.\u0275dir=k({type:e,features:[Oe]}),t})();const Kn=new W("NgValueAccessor"),sL={provide:Kn,useExisting:ae(()=>gp),multi:!0};let gp=(()=>{var e;class t extends Vr{writeValue(n){this.setProperty("checked",n)}}return(e=t).\u0275fac=function(){let i;return function(r){return(i||(i=St(e)))(r||e)}}(),e.\u0275dir=k({type:e,selectors:[["input","type","checkbox","formControlName",""],["input","type","checkbox","formControl",""],["input","type","checkbox","ngModel",""]],hostBindings:function(n,r){1&n&&ce("change",function(o){return r.onChange(o.target.checked)})("blur",function(){return r.onTouched()})},features:[$e([sL]),Oe]}),t})();const oL={provide:Kn,useExisting:ae(()=>Kc),multi:!0},lL=new W("CompositionEventMode");let Kc=(()=>{var e;class t extends SD{constructor(n,r,s){super(n,r),this._compositionMode=s,this._composing=!1,null==this._compositionMode&&(this._compositionMode=!function aL(){const e=ba()?ba().getUserAgent():"";return/android (\d+)/.test(e.toLowerCase())}())}writeValue(n){this.setProperty("value",n??"")}_handleInput(n){(!this._compositionMode||this._compositionMode&&!this._composing)&&this.onChange(n)}_compositionStart(){this._composing=!0}_compositionEnd(n){this._composing=!1,this._compositionMode&&this.onChange(n)}}return(e=t).\u0275fac=function(n){return new(n||e)(v(zn),v(Fe),v(lL,8))},e.\u0275dir=k({type:e,selectors:[["input","formControlName","",3,"type","checkbox"],["textarea","formControlName",""],["input","formControl","",3,"type","checkbox"],["textarea","formControl",""],["input","ngModel","",3,"type","checkbox"],["textarea","ngModel",""],["","ngDefaultControl",""]],hostBindings:function(n,r){1&n&&ce("input",function(o){return r._handleInput(o.target.value)})("blur",function(){return r.onTouched()})("compositionstart",function(){return r._compositionStart()})("compositionend",function(o){return r._compositionEnd(o.target.value)})},features:[$e([oL]),Oe]}),t})();const Gt=new W("NgValidators"),hr=new W("NgAsyncValidators");function FD(e){return null!=e}function kD(e){return fc(e)?wo(e):e}function LD(e){let t={};return e.forEach(i=>{t=null!=i?{...t,...i}:t}),0===Object.keys(t).length?null:t}function BD(e,t){return t.map(i=>i(e))}function VD(e){return e.map(t=>function uL(e){return!e.validate}(t)?t:i=>t.validate(i))}function _p(e){return null!=e?function HD(e){if(!e)return null;const t=e.filter(FD);return 0==t.length?null:function(i){return LD(BD(i,t))}}(VD(e)):null}function UD(e){if(!e)return null;const t=e.filter(FD);return 0==t.length?null:function(i){return function rL(...e){const t=Lu(e),{args:i,keys:n}=function tL(e){if(1===e.length){const t=e[0];if(Q2(t))return{args:t,keys:null};if(function nL(e){return e&&"object"==typeof e&&K2(e)===X2}(t)){const i=eL(t);return{args:i.map(n=>t[n]),keys:i}}}return{args:e,keys:null}}(e),r=new ze(s=>{const{length:o}=i;if(!o)return void s.complete();const a=new Array(o);let l=o,c=o;for(let u=0;u{h||(h=!0,c--),a[u]=g},()=>l--,void 0,()=>{(!l||!h)&&(c||s.next(n?iL(n,a):a),s.complete())}))}});return t?r.pipe(_D(t)):r}(BD(i,t).map(kD)).pipe(Pt(LD))}}function mp(e){return null!=e?UD(VD(e)):null}function jD(e,t){return null===e?[t]:Array.isArray(e)?[...e,t]:[e,t]}function $D(e){return e._rawValidators}function GD(e){return e._rawAsyncValidators}function vp(e){return e?Array.isArray(e)?e:[e]:[]}function eu(e,t){return Array.isArray(e)?e.includes(t):e===t}function zD(e,t){const i=vp(t);return vp(e).forEach(r=>{eu(i,r)||i.push(r)}),i}function WD(e,t){return vp(t).filter(i=>!eu(e,i))}class qD{constructor(){this._rawValidators=[],this._rawAsyncValidators=[],this._onDestroyCallbacks=[]}get value(){return this.control?this.control.value:null}get valid(){return this.control?this.control.valid:null}get invalid(){return this.control?this.control.invalid:null}get pending(){return this.control?this.control.pending:null}get disabled(){return this.control?this.control.disabled:null}get enabled(){return this.control?this.control.enabled:null}get errors(){return this.control?this.control.errors:null}get pristine(){return this.control?this.control.pristine:null}get dirty(){return this.control?this.control.dirty:null}get touched(){return this.control?this.control.touched:null}get status(){return this.control?this.control.status:null}get untouched(){return this.control?this.control.untouched:null}get statusChanges(){return this.control?this.control.statusChanges:null}get valueChanges(){return this.control?this.control.valueChanges:null}get path(){return null}_setValidators(t){this._rawValidators=t||[],this._composedValidatorFn=_p(this._rawValidators)}_setAsyncValidators(t){this._rawAsyncValidators=t||[],this._composedAsyncValidatorFn=mp(this._rawAsyncValidators)}get validator(){return this._composedValidatorFn||null}get asyncValidator(){return this._composedAsyncValidatorFn||null}_registerOnDestroy(t){this._onDestroyCallbacks.push(t)}_invokeOnDestroyCallbacks(){this._onDestroyCallbacks.forEach(t=>t()),this._onDestroyCallbacks=[]}reset(t=void 0){this.control&&this.control.reset(t)}hasError(t,i){return!!this.control&&this.control.hasError(t,i)}getError(t,i){return this.control?this.control.getError(t,i):null}}class hn extends qD{get formDirective(){return null}get path(){return null}}class pr extends qD{constructor(){super(...arguments),this._parent=null,this.name=null,this.valueAccessor=null}}class YD{constructor(t){this._cd=t}get isTouched(){return!!this._cd?.control?.touched}get isUntouched(){return!!this._cd?.control?.untouched}get isPristine(){return!!this._cd?.control?.pristine}get isDirty(){return!!this._cd?.control?.dirty}get isValid(){return!!this._cd?.control?.valid}get isInvalid(){return!!this._cd?.control?.invalid}get isPending(){return!!this._cd?.control?.pending}get isSubmitted(){return!!this._cd?.submitted}}let ZD=(()=>{var e;class t extends YD{constructor(n){super(n)}}return(e=t).\u0275fac=function(n){return new(n||e)(v(pr,2))},e.\u0275dir=k({type:e,selectors:[["","formControlName",""],["","ngModel",""],["","formControl",""]],hostVars:14,hostBindings:function(n,r){2&n&&De("ng-untouched",r.isUntouched)("ng-touched",r.isTouched)("ng-pristine",r.isPristine)("ng-dirty",r.isDirty)("ng-valid",r.isValid)("ng-invalid",r.isInvalid)("ng-pending",r.isPending)},features:[Oe]}),t})(),JD=(()=>{var e;class t extends YD{constructor(n){super(n)}}return(e=t).\u0275fac=function(n){return new(n||e)(v(hn,10))},e.\u0275dir=k({type:e,selectors:[["","formGroupName",""],["","formArrayName",""],["","ngModelGroup",""],["","formGroup",""],["form",3,"ngNoForm",""],["","ngForm",""]],hostVars:16,hostBindings:function(n,r){2&n&&De("ng-untouched",r.isUntouched)("ng-touched",r.isTouched)("ng-pristine",r.isPristine)("ng-dirty",r.isDirty)("ng-valid",r.isValid)("ng-invalid",r.isInvalid)("ng-pending",r.isPending)("ng-submitted",r.isSubmitted)},features:[Oe]}),t})();const Na="VALID",nu="INVALID",ao="PENDING",Aa="DISABLED";function Dp(e){return(iu(e)?e.validators:e)||null}function wp(e,t){return(iu(t)?t.asyncValidators:e)||null}function iu(e){return null!=e&&!Array.isArray(e)&&"object"==typeof e}function KD(e,t,i){const n=e.controls;if(!(t?Object.keys(n):n).length)throw new F(1e3,"");if(!n[i])throw new F(1001,"")}function XD(e,t,i){e._forEachChild((n,r)=>{if(void 0===i[r])throw new F(1002,"")})}class ru{constructor(t,i){this._pendingDirty=!1,this._hasOwnPendingAsyncValidator=!1,this._pendingTouched=!1,this._onCollectionChange=()=>{},this._parent=null,this.pristine=!0,this.touched=!1,this._onDisabledChange=[],this._assignValidators(t),this._assignAsyncValidators(i)}get validator(){return this._composedValidatorFn}set validator(t){this._rawValidators=this._composedValidatorFn=t}get asyncValidator(){return this._composedAsyncValidatorFn}set asyncValidator(t){this._rawAsyncValidators=this._composedAsyncValidatorFn=t}get parent(){return this._parent}get valid(){return this.status===Na}get invalid(){return this.status===nu}get pending(){return this.status==ao}get disabled(){return this.status===Aa}get enabled(){return this.status!==Aa}get dirty(){return!this.pristine}get untouched(){return!this.touched}get updateOn(){return this._updateOn?this._updateOn:this.parent?this.parent.updateOn:"change"}setValidators(t){this._assignValidators(t)}setAsyncValidators(t){this._assignAsyncValidators(t)}addValidators(t){this.setValidators(zD(t,this._rawValidators))}addAsyncValidators(t){this.setAsyncValidators(zD(t,this._rawAsyncValidators))}removeValidators(t){this.setValidators(WD(t,this._rawValidators))}removeAsyncValidators(t){this.setAsyncValidators(WD(t,this._rawAsyncValidators))}hasValidator(t){return eu(this._rawValidators,t)}hasAsyncValidator(t){return eu(this._rawAsyncValidators,t)}clearValidators(){this.validator=null}clearAsyncValidators(){this.asyncValidator=null}markAsTouched(t={}){this.touched=!0,this._parent&&!t.onlySelf&&this._parent.markAsTouched(t)}markAllAsTouched(){this.markAsTouched({onlySelf:!0}),this._forEachChild(t=>t.markAllAsTouched())}markAsUntouched(t={}){this.touched=!1,this._pendingTouched=!1,this._forEachChild(i=>{i.markAsUntouched({onlySelf:!0})}),this._parent&&!t.onlySelf&&this._parent._updateTouched(t)}markAsDirty(t={}){this.pristine=!1,this._parent&&!t.onlySelf&&this._parent.markAsDirty(t)}markAsPristine(t={}){this.pristine=!0,this._pendingDirty=!1,this._forEachChild(i=>{i.markAsPristine({onlySelf:!0})}),this._parent&&!t.onlySelf&&this._parent._updatePristine(t)}markAsPending(t={}){this.status=ao,!1!==t.emitEvent&&this.statusChanges.emit(this.status),this._parent&&!t.onlySelf&&this._parent.markAsPending(t)}disable(t={}){const i=this._parentMarkedDirty(t.onlySelf);this.status=Aa,this.errors=null,this._forEachChild(n=>{n.disable({...t,onlySelf:!0})}),this._updateValue(),!1!==t.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._updateAncestors({...t,skipPristineCheck:i}),this._onDisabledChange.forEach(n=>n(!0))}enable(t={}){const i=this._parentMarkedDirty(t.onlySelf);this.status=Na,this._forEachChild(n=>{n.enable({...t,onlySelf:!0})}),this.updateValueAndValidity({onlySelf:!0,emitEvent:t.emitEvent}),this._updateAncestors({...t,skipPristineCheck:i}),this._onDisabledChange.forEach(n=>n(!1))}_updateAncestors(t){this._parent&&!t.onlySelf&&(this._parent.updateValueAndValidity(t),t.skipPristineCheck||this._parent._updatePristine(),this._parent._updateTouched())}setParent(t){this._parent=t}getRawValue(){return this.value}updateValueAndValidity(t={}){this._setInitialStatus(),this._updateValue(),this.enabled&&(this._cancelExistingSubscription(),this.errors=this._runValidator(),this.status=this._calculateStatus(),(this.status===Na||this.status===ao)&&this._runAsyncValidator(t.emitEvent)),!1!==t.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._parent&&!t.onlySelf&&this._parent.updateValueAndValidity(t)}_updateTreeValidity(t={emitEvent:!0}){this._forEachChild(i=>i._updateTreeValidity(t)),this.updateValueAndValidity({onlySelf:!0,emitEvent:t.emitEvent})}_setInitialStatus(){this.status=this._allControlsDisabled()?Aa:Na}_runValidator(){return this.validator?this.validator(this):null}_runAsyncValidator(t){if(this.asyncValidator){this.status=ao,this._hasOwnPendingAsyncValidator=!0;const i=kD(this.asyncValidator(this));this._asyncValidationSubscription=i.subscribe(n=>{this._hasOwnPendingAsyncValidator=!1,this.setErrors(n,{emitEvent:t})})}}_cancelExistingSubscription(){this._asyncValidationSubscription&&(this._asyncValidationSubscription.unsubscribe(),this._hasOwnPendingAsyncValidator=!1)}setErrors(t,i={}){this.errors=t,this._updateControlsErrors(!1!==i.emitEvent)}get(t){let i=t;return null==i||(Array.isArray(i)||(i=i.split(".")),0===i.length)?null:i.reduce((n,r)=>n&&n._find(r),this)}getError(t,i){const n=i?this.get(i):this;return n&&n.errors?n.errors[t]:null}hasError(t,i){return!!this.getError(t,i)}get root(){let t=this;for(;t._parent;)t=t._parent;return t}_updateControlsErrors(t){this.status=this._calculateStatus(),t&&this.statusChanges.emit(this.status),this._parent&&this._parent._updateControlsErrors(t)}_initObservables(){this.valueChanges=new Y,this.statusChanges=new Y}_calculateStatus(){return this._allControlsDisabled()?Aa:this.errors?nu:this._hasOwnPendingAsyncValidator||this._anyControlsHaveStatus(ao)?ao:this._anyControlsHaveStatus(nu)?nu:Na}_anyControlsHaveStatus(t){return this._anyControls(i=>i.status===t)}_anyControlsDirty(){return this._anyControls(t=>t.dirty)}_anyControlsTouched(){return this._anyControls(t=>t.touched)}_updatePristine(t={}){this.pristine=!this._anyControlsDirty(),this._parent&&!t.onlySelf&&this._parent._updatePristine(t)}_updateTouched(t={}){this.touched=this._anyControlsTouched(),this._parent&&!t.onlySelf&&this._parent._updateTouched(t)}_registerOnCollectionChange(t){this._onCollectionChange=t}_setUpdateStrategy(t){iu(t)&&null!=t.updateOn&&(this._updateOn=t.updateOn)}_parentMarkedDirty(t){return!t&&!(!this._parent||!this._parent.dirty)&&!this._parent._anyControlsDirty()}_find(t){return null}_assignValidators(t){this._rawValidators=Array.isArray(t)?t.slice():t,this._composedValidatorFn=function pL(e){return Array.isArray(e)?_p(e):e||null}(this._rawValidators)}_assignAsyncValidators(t){this._rawAsyncValidators=Array.isArray(t)?t.slice():t,this._composedAsyncValidatorFn=function gL(e){return Array.isArray(e)?mp(e):e||null}(this._rawAsyncValidators)}}class Hr extends ru{constructor(t,i,n){super(Dp(i),wp(n,i)),this.controls=t,this._initObservables(),this._setUpdateStrategy(i),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}registerControl(t,i){return this.controls[t]?this.controls[t]:(this.controls[t]=i,i.setParent(this),i._registerOnCollectionChange(this._onCollectionChange),i)}addControl(t,i,n={}){this.registerControl(t,i),this.updateValueAndValidity({emitEvent:n.emitEvent}),this._onCollectionChange()}removeControl(t,i={}){this.controls[t]&&this.controls[t]._registerOnCollectionChange(()=>{}),delete this.controls[t],this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}setControl(t,i,n={}){this.controls[t]&&this.controls[t]._registerOnCollectionChange(()=>{}),delete this.controls[t],i&&this.registerControl(t,i),this.updateValueAndValidity({emitEvent:n.emitEvent}),this._onCollectionChange()}contains(t){return this.controls.hasOwnProperty(t)&&this.controls[t].enabled}setValue(t,i={}){XD(this,0,t),Object.keys(t).forEach(n=>{KD(this,!0,n),this.controls[n].setValue(t[n],{onlySelf:!0,emitEvent:i.emitEvent})}),this.updateValueAndValidity(i)}patchValue(t,i={}){null!=t&&(Object.keys(t).forEach(n=>{const r=this.controls[n];r&&r.patchValue(t[n],{onlySelf:!0,emitEvent:i.emitEvent})}),this.updateValueAndValidity(i))}reset(t={},i={}){this._forEachChild((n,r)=>{n.reset(t[r],{onlySelf:!0,emitEvent:i.emitEvent})}),this._updatePristine(i),this._updateTouched(i),this.updateValueAndValidity(i)}getRawValue(){return this._reduceChildren({},(t,i,n)=>(t[n]=i.getRawValue(),t))}_syncPendingControls(){let t=this._reduceChildren(!1,(i,n)=>!!n._syncPendingControls()||i);return t&&this.updateValueAndValidity({onlySelf:!0}),t}_forEachChild(t){Object.keys(this.controls).forEach(i=>{const n=this.controls[i];n&&t(n,i)})}_setUpControls(){this._forEachChild(t=>{t.setParent(this),t._registerOnCollectionChange(this._onCollectionChange)})}_updateValue(){this.value=this._reduceValue()}_anyControls(t){for(const[i,n]of Object.entries(this.controls))if(this.contains(i)&&t(n))return!0;return!1}_reduceValue(){return this._reduceChildren({},(i,n,r)=>((n.enabled||this.disabled)&&(i[r]=n.value),i))}_reduceChildren(t,i){let n=t;return this._forEachChild((r,s)=>{n=i(n,r,s)}),n}_allControlsDisabled(){for(const t of Object.keys(this.controls))if(this.controls[t].enabled)return!1;return Object.keys(this.controls).length>0||this.disabled}_find(t){return this.controls.hasOwnProperty(t)?this.controls[t]:null}}class ew extends Hr{}const Ur=new W("CallSetDisabledState",{providedIn:"root",factory:()=>Oa}),Oa="always";function xa(e,t,i=Oa){Cp(e,t),t.valueAccessor.writeValue(e.value),(e.disabled||"always"===i)&&t.valueAccessor.setDisabledState?.(e.disabled),function mL(e,t){t.valueAccessor.registerOnChange(i=>{e._pendingValue=i,e._pendingChange=!0,e._pendingDirty=!0,"change"===e.updateOn&&tw(e,t)})}(e,t),function yL(e,t){const i=(n,r)=>{t.valueAccessor.writeValue(n),r&&t.viewToModelUpdate(n)};e.registerOnChange(i),t._registerOnDestroy(()=>{e._unregisterOnChange(i)})}(e,t),function vL(e,t){t.valueAccessor.registerOnTouched(()=>{e._pendingTouched=!0,"blur"===e.updateOn&&e._pendingChange&&tw(e,t),"submit"!==e.updateOn&&e.markAsTouched()})}(e,t),function _L(e,t){if(t.valueAccessor.setDisabledState){const i=n=>{t.valueAccessor.setDisabledState(n)};e.registerOnDisabledChange(i),t._registerOnDestroy(()=>{e._unregisterOnDisabledChange(i)})}}(e,t)}function ou(e,t,i=!0){const n=()=>{};t.valueAccessor&&(t.valueAccessor.registerOnChange(n),t.valueAccessor.registerOnTouched(n)),lu(e,t),e&&(t._invokeOnDestroyCallbacks(),e._registerOnCollectionChange(()=>{}))}function au(e,t){e.forEach(i=>{i.registerOnValidatorChange&&i.registerOnValidatorChange(t)})}function Cp(e,t){const i=$D(e);null!==t.validator?e.setValidators(jD(i,t.validator)):"function"==typeof i&&e.setValidators([i]);const n=GD(e);null!==t.asyncValidator?e.setAsyncValidators(jD(n,t.asyncValidator)):"function"==typeof n&&e.setAsyncValidators([n]);const r=()=>e.updateValueAndValidity();au(t._rawValidators,r),au(t._rawAsyncValidators,r)}function lu(e,t){let i=!1;if(null!==e){if(null!==t.validator){const r=$D(e);if(Array.isArray(r)&&r.length>0){const s=r.filter(o=>o!==t.validator);s.length!==r.length&&(i=!0,e.setValidators(s))}}if(null!==t.asyncValidator){const r=GD(e);if(Array.isArray(r)&&r.length>0){const s=r.filter(o=>o!==t.asyncValidator);s.length!==r.length&&(i=!0,e.setAsyncValidators(s))}}}const n=()=>{};return au(t._rawValidators,n),au(t._rawAsyncValidators,n),i}function tw(e,t){e._pendingDirty&&e.markAsDirty(),e.setValue(e._pendingValue,{emitModelToViewChange:!1}),t.viewToModelUpdate(e._pendingValue),e._pendingChange=!1}function rw(e,t){const i=e.indexOf(t);i>-1&&e.splice(i,1)}function sw(e){return"object"==typeof e&&null!==e&&2===Object.keys(e).length&&"value"in e&&"disabled"in e}const jr=class extends ru{constructor(t=null,i,n){super(Dp(i),wp(n,i)),this.defaultValue=null,this._onChange=[],this._pendingChange=!1,this._applyFormState(t),this._setUpdateStrategy(i),this._initObservables(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator}),iu(i)&&(i.nonNullable||i.initialValueIsDefault)&&(this.defaultValue=sw(t)?t.value:t)}setValue(t,i={}){this.value=this._pendingValue=t,this._onChange.length&&!1!==i.emitModelToViewChange&&this._onChange.forEach(n=>n(this.value,!1!==i.emitViewToModelChange)),this.updateValueAndValidity(i)}patchValue(t,i={}){this.setValue(t,i)}reset(t=this.defaultValue,i={}){this._applyFormState(t),this.markAsPristine(i),this.markAsUntouched(i),this.setValue(this.value,i),this._pendingChange=!1}_updateValue(){}_anyControls(t){return!1}_allControlsDisabled(){return this.disabled}registerOnChange(t){this._onChange.push(t)}_unregisterOnChange(t){rw(this._onChange,t)}registerOnDisabledChange(t){this._onDisabledChange.push(t)}_unregisterOnDisabledChange(t){rw(this._onDisabledChange,t)}_forEachChild(t){}_syncPendingControls(){return!("submit"!==this.updateOn||(this._pendingDirty&&this.markAsDirty(),this._pendingTouched&&this.markAsTouched(),!this._pendingChange)||(this.setValue(this._pendingValue,{onlySelf:!0,emitModelToViewChange:!1}),0))}_applyFormState(t){sw(t)?(this.value=this._pendingValue=t.value,t.disabled?this.disable({onlySelf:!0,emitEvent:!1}):this.enable({onlySelf:!0,emitEvent:!1})):this.value=this._pendingValue=t}};let uw=(()=>{var e;class t{}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275dir=k({type:e,selectors:[["form",3,"ngNoForm","",3,"ngNativeValidate",""]],hostAttrs:["novalidate",""]}),t})(),fw=(()=>{var e;class t{}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275mod=Pe({type:e}),e.\u0275inj=Ae({}),t})();const Ip=new W("NgModelWithFormControlWarning"),RL={provide:hn,useExisting:ae(()=>cu)};let cu=(()=>{var e;class t extends hn{constructor(n,r,s){super(),this.callSetDisabledState=s,this.submitted=!1,this._onCollectionChange=()=>this._updateDomValue(),this.directives=[],this.form=null,this.ngSubmit=new Y,this._setValidators(n),this._setAsyncValidators(r)}ngOnChanges(n){this._checkFormPresent(),n.hasOwnProperty("form")&&(this._updateValidators(),this._updateDomValue(),this._updateRegistrations(),this._oldForm=this.form)}ngOnDestroy(){this.form&&(lu(this.form,this),this.form._onCollectionChange===this._onCollectionChange&&this.form._registerOnCollectionChange(()=>{}))}get formDirective(){return this}get control(){return this.form}get path(){return[]}addControl(n){const r=this.form.get(n.path);return xa(r,n,this.callSetDisabledState),r.updateValueAndValidity({emitEvent:!1}),this.directives.push(n),r}getControl(n){return this.form.get(n.path)}removeControl(n){ou(n.control||null,n,!1),function CL(e,t){const i=e.indexOf(t);i>-1&&e.splice(i,1)}(this.directives,n)}addFormGroup(n){this._setUpFormContainer(n)}removeFormGroup(n){this._cleanUpFormContainer(n)}getFormGroup(n){return this.form.get(n.path)}addFormArray(n){this._setUpFormContainer(n)}removeFormArray(n){this._cleanUpFormContainer(n)}getFormArray(n){return this.form.get(n.path)}updateModel(n,r){this.form.get(n.path).setValue(r)}onSubmit(n){return this.submitted=!0,function iw(e,t){e._syncPendingControls(),t.forEach(i=>{const n=i.control;"submit"===n.updateOn&&n._pendingChange&&(i.viewToModelUpdate(n._pendingValue),n._pendingChange=!1)})}(this.form,this.directives),this.ngSubmit.emit(n),"dialog"===n?.target?.method}onReset(){this.resetForm()}resetForm(n=void 0){this.form.reset(n),this.submitted=!1}_updateDomValue(){this.directives.forEach(n=>{const r=n.control,s=this.form.get(n.path);r!==s&&(ou(r||null,n),(e=>e instanceof jr)(s)&&(xa(s,n,this.callSetDisabledState),n.control=s))}),this.form._updateTreeValidity({emitEvent:!1})}_setUpFormContainer(n){const r=this.form.get(n.path);(function nw(e,t){Cp(e,t)})(r,n),r.updateValueAndValidity({emitEvent:!1})}_cleanUpFormContainer(n){if(this.form){const r=this.form.get(n.path);r&&function bL(e,t){return lu(e,t)}(r,n)&&r.updateValueAndValidity({emitEvent:!1})}}_updateRegistrations(){this.form._registerOnCollectionChange(this._onCollectionChange),this._oldForm&&this._oldForm._registerOnCollectionChange(()=>{})}_updateValidators(){Cp(this.form,this),this._oldForm&&lu(this._oldForm,this)}_checkFormPresent(){}}return(e=t).\u0275fac=function(n){return new(n||e)(v(Gt,10),v(hr,10),v(Ur,8))},e.\u0275dir=k({type:e,selectors:[["","formGroup",""]],hostBindings:function(n,r){1&n&&ce("submit",function(o){return r.onSubmit(o)})("reset",function(){return r.onReset()})},inputs:{form:["formGroup","form"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],features:[$e([RL]),Oe,sn]}),t})();const kL={provide:pr,useExisting:ae(()=>Op)};let Op=(()=>{var e;class t extends pr{set isDisabled(n){}constructor(n,r,s,o,a){super(),this._ngModelWarningConfig=a,this._added=!1,this.name=null,this.update=new Y,this._ngModelWarningSent=!1,this._parent=n,this._setValidators(r),this._setAsyncValidators(s),this.valueAccessor=function Tp(e,t){if(!t)return null;let i,n,r;return Array.isArray(t),t.forEach(s=>{s.constructor===Kc?i=s:function wL(e){return Object.getPrototypeOf(e.constructor)===Vr}(s)?n=s:r=s}),r||n||i||null}(0,o)}ngOnChanges(n){this._added||this._setUpControl(),function Sp(e,t){if(!e.hasOwnProperty("model"))return!1;const i=e.model;return!!i.isFirstChange()||!Object.is(t,i.currentValue)}(n,this.viewModel)&&(this.viewModel=this.model,this.formDirective.updateModel(this,this.model))}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}viewToModelUpdate(n){this.viewModel=n,this.update.emit(n)}get path(){return function su(e,t){return[...t.path,e]}(null==this.name?this.name:this.name.toString(),this._parent)}get formDirective(){return this._parent?this._parent.formDirective:null}_checkParentType(){}_setUpControl(){this._checkParentType(),this.control=this.formDirective.addControl(this),this._added=!0}}return(e=t)._ngModelWarningSentOnce=!1,e.\u0275fac=function(n){return new(n||e)(v(hn,13),v(Gt,10),v(hr,10),v(Kn,10),v(Ip,8))},e.\u0275dir=k({type:e,selectors:[["","formControlName",""]],inputs:{name:["formControlName","name"],isDisabled:["disabled","isDisabled"],model:["ngModel","model"]},outputs:{update:"ngModelChange"},features:[$e([kL]),Oe,sn]}),t})();const LL={provide:Kn,useExisting:ae(()=>uu),multi:!0};function mw(e,t){return null==e?`${t}`:(t&&"object"==typeof t&&(t="Object"),`${e}: ${t}`.slice(0,50))}let uu=(()=>{var e;class t extends Vr{constructor(){super(...arguments),this._optionMap=new Map,this._idCounter=0,this._compareWith=Object.is}set compareWith(n){this._compareWith=n}writeValue(n){this.value=n;const s=mw(this._getOptionId(n),n);this.setProperty("value",s)}registerOnChange(n){this.onChange=r=>{this.value=this._getOptionValue(r),n(this.value)}}_registerOption(){return(this._idCounter++).toString()}_getOptionId(n){for(const r of this._optionMap.keys())if(this._compareWith(this._optionMap.get(r),n))return r;return null}_getOptionValue(n){const r=function BL(e){return e.split(":")[0]}(n);return this._optionMap.has(r)?this._optionMap.get(r):n}}return(e=t).\u0275fac=function(){let i;return function(r){return(i||(i=St(e)))(r||e)}}(),e.\u0275dir=k({type:e,selectors:[["select","formControlName","",3,"multiple",""],["select","formControl","",3,"multiple",""],["select","ngModel","",3,"multiple",""]],hostBindings:function(n,r){1&n&&ce("change",function(o){return r.onChange(o.target.value)})("blur",function(){return r.onTouched()})},inputs:{compareWith:"compareWith"},features:[$e([LL]),Oe]}),t})(),vw=(()=>{var e;class t{constructor(n,r,s){this._element=n,this._renderer=r,this._select=s,this._select&&(this.id=this._select._registerOption())}set ngValue(n){null!=this._select&&(this._select._optionMap.set(this.id,n),this._setElementValue(mw(this.id,n)),this._select.writeValue(this._select.value))}set value(n){this._setElementValue(n),this._select&&this._select.writeValue(this._select.value)}_setElementValue(n){this._renderer.setProperty(this._element.nativeElement,"value",n)}ngOnDestroy(){this._select&&(this._select._optionMap.delete(this.id),this._select.writeValue(this._select.value))}}return(e=t).\u0275fac=function(n){return new(n||e)(v(Fe),v(zn),v(uu,9))},e.\u0275dir=k({type:e,selectors:[["option"]],inputs:{ngValue:"ngValue",value:"value"}}),t})();const VL={provide:Kn,useExisting:ae(()=>xp),multi:!0};function yw(e,t){return null==e?`${t}`:("string"==typeof t&&(t=`'${t}'`),t&&"object"==typeof t&&(t="Object"),`${e}: ${t}`.slice(0,50))}let xp=(()=>{var e;class t extends Vr{constructor(){super(...arguments),this._optionMap=new Map,this._idCounter=0,this._compareWith=Object.is}set compareWith(n){this._compareWith=n}writeValue(n){let r;if(this.value=n,Array.isArray(n)){const s=n.map(o=>this._getOptionId(o));r=(o,a)=>{o._setSelected(s.indexOf(a.toString())>-1)}}else r=(s,o)=>{s._setSelected(!1)};this._optionMap.forEach(r)}registerOnChange(n){this.onChange=r=>{const s=[],o=r.selectedOptions;if(void 0!==o){const a=o;for(let l=0;l{var e;class t{constructor(n,r,s){this._element=n,this._renderer=r,this._select=s,this._select&&(this.id=this._select._registerOption(this))}set ngValue(n){null!=this._select&&(this._value=n,this._setElementValue(yw(this.id,n)),this._select.writeValue(this._select.value))}set value(n){this._select?(this._value=n,this._setElementValue(yw(this.id,n)),this._select.writeValue(this._select.value)):this._setElementValue(n)}_setElementValue(n){this._renderer.setProperty(this._element.nativeElement,"value",n)}_setSelected(n){this._renderer.setProperty(this._element.nativeElement,"selected",n)}ngOnDestroy(){this._select&&(this._select._optionMap.delete(this.id),this._select.writeValue(this._select.value))}}return(e=t).\u0275fac=function(n){return new(n||e)(v(Fe),v(zn),v(xp,9))},e.\u0275dir=k({type:e,selectors:[["option"]],inputs:{ngValue:"ngValue",value:"value"}}),t})(),Aw=(()=>{var e;class t{}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275mod=Pe({type:e}),e.\u0275inj=Ae({imports:[fw]}),t})();class Ow extends ru{constructor(t,i,n){super(Dp(i),wp(n,i)),this.controls=t,this._initObservables(),this._setUpdateStrategy(i),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}at(t){return this.controls[this._adjustIndex(t)]}push(t,i={}){this.controls.push(t),this._registerControl(t),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}insert(t,i,n={}){this.controls.splice(t,0,i),this._registerControl(i),this.updateValueAndValidity({emitEvent:n.emitEvent})}removeAt(t,i={}){let n=this._adjustIndex(t);n<0&&(n=0),this.controls[n]&&this.controls[n]._registerOnCollectionChange(()=>{}),this.controls.splice(n,1),this.updateValueAndValidity({emitEvent:i.emitEvent})}setControl(t,i,n={}){let r=this._adjustIndex(t);r<0&&(r=0),this.controls[r]&&this.controls[r]._registerOnCollectionChange(()=>{}),this.controls.splice(r,1),i&&(this.controls.splice(r,0,i),this._registerControl(i)),this.updateValueAndValidity({emitEvent:n.emitEvent}),this._onCollectionChange()}get length(){return this.controls.length}setValue(t,i={}){XD(this,0,t),t.forEach((n,r)=>{KD(this,!1,r),this.at(r).setValue(n,{onlySelf:!0,emitEvent:i.emitEvent})}),this.updateValueAndValidity(i)}patchValue(t,i={}){null!=t&&(t.forEach((n,r)=>{this.at(r)&&this.at(r).patchValue(n,{onlySelf:!0,emitEvent:i.emitEvent})}),this.updateValueAndValidity(i))}reset(t=[],i={}){this._forEachChild((n,r)=>{n.reset(t[r],{onlySelf:!0,emitEvent:i.emitEvent})}),this._updatePristine(i),this._updateTouched(i),this.updateValueAndValidity(i)}getRawValue(){return this.controls.map(t=>t.getRawValue())}clear(t={}){this.controls.length<1||(this._forEachChild(i=>i._registerOnCollectionChange(()=>{})),this.controls.splice(0),this.updateValueAndValidity({emitEvent:t.emitEvent}))}_adjustIndex(t){return t<0?t+this.length:t}_syncPendingControls(){let t=this.controls.reduce((i,n)=>!!n._syncPendingControls()||i,!1);return t&&this.updateValueAndValidity({onlySelf:!0}),t}_forEachChild(t){this.controls.forEach((i,n)=>{t(i,n)})}_updateValue(){this.value=this.controls.filter(t=>t.enabled||this.disabled).map(t=>t.value)}_anyControls(t){return this.controls.some(i=>i.enabled&&t(i))}_setUpControls(){this._forEachChild(t=>this._registerControl(t))}_allControlsDisabled(){for(const t of this.controls)if(t.enabled)return!1;return this.controls.length>0||this.disabled}_registerControl(t){t.setParent(this),t._registerOnCollectionChange(this._onCollectionChange)}_find(t){return this.at(t)??null}}function xw(e){return!!e&&(void 0!==e.asyncValidators||void 0!==e.validators||void 0!==e.updateOn)}let ZL=(()=>{var e;class t{constructor(){this.useNonNullable=!1}get nonNullable(){const n=new t;return n.useNonNullable=!0,n}group(n,r=null){const s=this._reduceControls(n);let o={};return xw(r)?o=r:null!==r&&(o.validators=r.validator,o.asyncValidators=r.asyncValidator),new Hr(s,o)}record(n,r=null){const s=this._reduceControls(n);return new ew(s,r)}control(n,r,s){let o={};return this.useNonNullable?(xw(r)?o=r:(o.validators=r,o.asyncValidators=s),new jr(n,{...o,nonNullable:!0})):new jr(n,r,s)}array(n,r,s){const o=n.map(a=>this._createControl(a));return new Ow(o,r,s)}_reduceControls(n){const r={};return Object.keys(n).forEach(s=>{r[s]=this._createControl(n[s])}),r}_createControl(n){return n instanceof jr||n instanceof ru?n:Array.isArray(n)?this.control(n[0],n.length>1?n[1]:null,n.length>2?n[2]:null):this.control(n)}}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275prov=G({token:e,factory:e.\u0275fac,providedIn:"root"}),t})(),JL=(()=>{var e;class t{static withConfig(n){return{ngModule:t,providers:[{provide:Ur,useValue:n.callSetDisabledState??Oa}]}}}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275mod=Pe({type:e}),e.\u0275inj=Ae({imports:[Aw]}),t})(),QL=(()=>{var e;class t{static withConfig(n){return{ngModule:t,providers:[{provide:Ip,useValue:n.warnOnNgModelWithFormControl??"always"},{provide:Ur,useValue:n.callSetDisabledState??Oa}]}}}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275mod=Pe({type:e}),e.\u0275inj=Ae({imports:[Aw]}),t})();var KL={left:"right",right:"left",bottom:"top",top:"bottom"};function du(e){return e.replace(/left|right|bottom|top/g,function(t){return KL[t]})}function ki(e){return e.split("-")[0]}var XL={start:"end",end:"start"};function Rw(e){return e.replace(/start|end/g,function(t){return XL[t]})}var Bn="top",di="bottom",fi="right",Vn="left",Pp="auto",Pa=[Bn,di,fi,Vn],lo="start",Fa="end",Pw="viewport",ka="popper",Fw=Pa.reduce(function(e,t){return e.concat([t+"-"+lo,t+"-"+Fa])},[]),kw=[].concat(Pa,[Pp]).reduce(function(e,t){return e.concat([t,t+"-"+lo,t+"-"+Fa])},[]),dB=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function Hn(e){if(null==e)return window;if("[object Window]"!==e.toString()){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function Gr(e){return e instanceof Hn(e).Element||e instanceof Element}function Xn(e){return e instanceof Hn(e).HTMLElement||e instanceof HTMLElement}function Fp(e){return!(typeof ShadowRoot>"u")&&(e instanceof Hn(e).ShadowRoot||e instanceof ShadowRoot)}function gr(e){return((Gr(e)?e.ownerDocument:e.document)||window.document).documentElement}var zr=Math.max,fu=Math.min,co=Math.round;function kp(){var e=navigator.userAgentData;return null!=e&&e.brands&&Array.isArray(e.brands)?e.brands.map(function(t){return t.brand+"/"+t.version}).join(" "):navigator.userAgent}function Lw(){return!/^((?!chrome|android).)*safari/i.test(kp())}function uo(e,t,i){void 0===t&&(t=!1),void 0===i&&(i=!1);var n=e.getBoundingClientRect(),r=1,s=1;t&&Xn(e)&&(r=e.offsetWidth>0&&co(n.width)/e.offsetWidth||1,s=e.offsetHeight>0&&co(n.height)/e.offsetHeight||1);var a=(Gr(e)?Hn(e):window).visualViewport,l=!Lw()&&i,c=(n.left+(l&&a?a.offsetLeft:0))/r,u=(n.top+(l&&a?a.offsetTop:0))/s,h=n.width/r,g=n.height/s;return{width:h,height:g,top:u,right:c+h,bottom:u+g,left:c,x:c,y:u}}function Lp(e){var t=Hn(e);return{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function Bp(e){return uo(gr(e)).left+Lp(e).scrollLeft}function Yi(e){return Hn(e).getComputedStyle(e)}function Li(e){return e?(e.nodeName||"").toLowerCase():null}function hu(e){return"html"===Li(e)?e:e.assignedSlot||e.parentNode||(Fp(e)?e.host:null)||gr(e)}function Vp(e){var t=Yi(e);return/auto|scroll|overlay|hidden/.test(t.overflow+t.overflowY+t.overflowX)}function Bw(e){return["html","body","#document"].indexOf(Li(e))>=0?e.ownerDocument.body:Xn(e)&&Vp(e)?e:Bw(hu(e))}function La(e,t){var i;void 0===t&&(t=[]);var n=Bw(e),r=n===(null==(i=e.ownerDocument)?void 0:i.body),s=Hn(n),o=r?[s].concat(s.visualViewport||[],Vp(n)?n:[]):n,a=t.concat(o);return r?a:a.concat(La(hu(o)))}function pB(e){return["table","td","th"].indexOf(Li(e))>=0}function Vw(e){return Xn(e)&&"fixed"!==Yi(e).position?e.offsetParent:null}function Ba(e){for(var t=Hn(e),i=Vw(e);i&&pB(i)&&"static"===Yi(i).position;)i=Vw(i);return i&&("html"===Li(i)||"body"===Li(i)&&"static"===Yi(i).position)?t:i||function gB(e){var t=/firefox/i.test(kp());if(/Trident/i.test(kp())&&Xn(e)&&"fixed"===Yi(e).position)return null;var r=hu(e);for(Fp(r)&&(r=r.host);Xn(r)&&["html","body"].indexOf(Li(r))<0;){var s=Yi(r);if("none"!==s.transform||"none"!==s.perspective||"paint"===s.contain||-1!==["transform","perspective"].indexOf(s.willChange)||t&&"filter"===s.willChange||t&&s.filter&&"none"!==s.filter)return r;r=r.parentNode}return null}(e)||t}function Hw(e,t){var i=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(i&&Fp(i)){var n=t;do{if(n&&e.isSameNode(n))return!0;n=n.parentNode||n.host}while(n)}return!1}function Hp(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function Uw(e,t,i){return t===Pw?Hp(function fB(e,t){var i=Hn(e),n=gr(e),r=i.visualViewport,s=n.clientWidth,o=n.clientHeight,a=0,l=0;if(r){s=r.width,o=r.height;var c=Lw();(c||!c&&"fixed"===t)&&(a=r.offsetLeft,l=r.offsetTop)}return{width:s,height:o,x:a+Bp(e),y:l}}(e,i)):Gr(t)?function _B(e,t){var i=uo(e,!1,"fixed"===t);return i.top=i.top+e.clientTop,i.left=i.left+e.clientLeft,i.bottom=i.top+e.clientHeight,i.right=i.left+e.clientWidth,i.width=e.clientWidth,i.height=e.clientHeight,i.x=i.left,i.y=i.top,i}(t,i):Hp(function hB(e){var t,i=gr(e),n=Lp(e),r=null==(t=e.ownerDocument)?void 0:t.body,s=zr(i.scrollWidth,i.clientWidth,r?r.scrollWidth:0,r?r.clientWidth:0),o=zr(i.scrollHeight,i.clientHeight,r?r.scrollHeight:0,r?r.clientHeight:0),a=-n.scrollLeft+Bp(e),l=-n.scrollTop;return"rtl"===Yi(r||i).direction&&(a+=zr(i.clientWidth,r?r.clientWidth:0)-s),{width:s,height:o,x:a,y:l}}(gr(e)))}function fo(e){return e.split("-")[1]}function Up(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function jw(e){var l,t=e.reference,i=e.element,n=e.placement,r=n?ki(n):null,s=n?fo(n):null,o=t.x+t.width/2-i.width/2,a=t.y+t.height/2-i.height/2;switch(r){case Bn:l={x:o,y:t.y-i.height};break;case di:l={x:o,y:t.y+t.height};break;case fi:l={x:t.x+t.width,y:a};break;case Vn:l={x:t.x-i.width,y:a};break;default:l={x:t.x,y:t.y}}var c=r?Up(r):null;if(null!=c){var u="y"===c?"height":"width";switch(s){case lo:l[c]=l[c]-(t[u]/2-i[u]/2);break;case Fa:l[c]=l[c]+(t[u]/2-i[u]/2)}}return l}function Gw(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}function zw(e,t){return t.reduce(function(i,n){return i[n]=e,i},{})}function jp(e,t){void 0===t&&(t={});var n=t.placement,r=void 0===n?e.placement:n,s=t.strategy,o=void 0===s?e.strategy:s,a=t.boundary,l=void 0===a?"clippingParents":a,c=t.rootBoundary,u=void 0===c?Pw:c,h=t.elementContext,g=void 0===h?ka:h,_=t.altBoundary,y=void 0!==_&&_,b=t.padding,D=void 0===b?0:b,T=Gw("number"!=typeof D?D:zw(D,Pa)),P=e.rects.popper,O=e.elements[y?g===ka?"reference":ka:g],V=function vB(e,t,i,n){var r="clippingParents"===t?function mB(e){var t=La(hu(e)),n=["absolute","fixed"].indexOf(Yi(e).position)>=0&&Xn(e)?Ba(e):e;return Gr(n)?t.filter(function(r){return Gr(r)&&Hw(r,n)&&"body"!==Li(r)}):[]}(e):[].concat(t),s=[].concat(r,[i]),a=s.reduce(function(l,c){var u=Uw(e,c,n);return l.top=zr(u.top,l.top),l.right=fu(u.right,l.right),l.bottom=fu(u.bottom,l.bottom),l.left=zr(u.left,l.left),l},Uw(e,s[0],n));return a.width=a.right-a.left,a.height=a.bottom-a.top,a.x=a.left,a.y=a.top,a}(Gr(O)?O:O.contextElement||gr(e.elements.popper),l,u,o),J=uo(e.elements.reference),ue=jw({reference:J,element:P,strategy:"absolute",placement:r}),_e=Hp(Object.assign({},P,ue)),lt=g===ka?_e:J,Dt={top:V.top-lt.top+T.top,bottom:lt.bottom-V.bottom+T.bottom,left:V.left-lt.left+T.left,right:lt.right-V.right+T.right},Bt=e.modifiersData.offset;if(g===ka&&Bt){var pi=Bt[r];Object.keys(Dt).forEach(function(gn){var Xr=[fi,di].indexOf(gn)>=0?1:-1,es=[Bn,di].indexOf(gn)>=0?"y":"x";Dt[gn]+=pi[es]*Xr})}return Dt}const wB={name:"flip",enabled:!0,phase:"main",fn:function DB(e){var t=e.state,i=e.options,n=e.name;if(!t.modifiersData[n]._skip){for(var r=i.mainAxis,s=void 0===r||r,o=i.altAxis,a=void 0===o||o,l=i.fallbackPlacements,c=i.padding,u=i.boundary,h=i.rootBoundary,g=i.altBoundary,_=i.flipVariations,y=void 0===_||_,b=i.allowedAutoPlacements,D=t.options.placement,T=ki(D),P=l||(T!==D&&y?function bB(e){if(ki(e)===Pp)return[];var t=du(e);return[Rw(e),t,Rw(t)]}(D):[du(D)]),O=[D].concat(P).reduce(function(mo,_r){return mo.concat(ki(_r)===Pp?function yB(e,t){void 0===t&&(t={});var r=t.boundary,s=t.rootBoundary,o=t.padding,a=t.flipVariations,l=t.allowedAutoPlacements,c=void 0===l?kw:l,u=fo(t.placement),h=u?a?Fw:Fw.filter(function(y){return fo(y)===u}):Pa,g=h.filter(function(y){return c.indexOf(y)>=0});0===g.length&&(g=h);var _=g.reduce(function(y,b){return y[b]=jp(e,{placement:b,boundary:r,rootBoundary:s,padding:o})[ki(b)],y},{});return Object.keys(_).sort(function(y,b){return _[y]-_[b]})}(t,{placement:_r,boundary:u,rootBoundary:h,padding:c,flipVariations:y,allowedAutoPlacements:b}):_r)},[]),V=t.rects.reference,J=t.rects.popper,ue=new Map,_e=!0,lt=O[0],Dt=0;Dt=0,es=Xr?"width":"height",Un=jp(t,{placement:Bt,boundary:u,rootBoundary:h,altBoundary:g,padding:c}),gi=Xr?gn?fi:Vn:gn?di:Bn;V[es]>J[es]&&(gi=du(gi));var Mu=du(gi),ts=[];if(s&&ts.push(Un[pi]<=0),a&&ts.push(Un[gi]<=0,Un[Mu]<=0),ts.every(function(mo){return mo})){lt=Bt,_e=!1;break}ue.set(Bt,ts)}if(_e)for(var ag=function(_r){var Za=O.find(function(Au){var ns=ue.get(Au);if(ns)return ns.slice(0,_r).every(function(lg){return lg})});if(Za)return lt=Za,"break"},Ya=y?3:1;Ya>0&&"break"!==ag(Ya);Ya--);t.placement!==lt&&(t.modifiersData[n]._skip=!0,t.placement=lt,t.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function Va(e,t,i){return zr(e,fu(t,i))}function $p(e){var t=uo(e),i=e.offsetWidth,n=e.offsetHeight;return Math.abs(t.width-i)<=1&&(i=t.width),Math.abs(t.height-n)<=1&&(n=t.height),{x:e.offsetLeft,y:e.offsetTop,width:i,height:n}}const TB={name:"preventOverflow",enabled:!0,phase:"main",fn:function SB(e){var t=e.state,i=e.options,n=e.name,r=i.mainAxis,s=void 0===r||r,o=i.altAxis,a=void 0!==o&&o,g=i.tether,_=void 0===g||g,y=i.tetherOffset,b=void 0===y?0:y,D=jp(t,{boundary:i.boundary,rootBoundary:i.rootBoundary,padding:i.padding,altBoundary:i.altBoundary}),T=ki(t.placement),C=fo(t.placement),P=!C,O=Up(T),V=function CB(e){return"x"===e?"y":"x"}(O),J=t.modifiersData.popperOffsets,ue=t.rects.reference,_e=t.rects.popper,lt="function"==typeof b?b(Object.assign({},t.rects,{placement:t.placement})):b,Dt="number"==typeof lt?{mainAxis:lt,altAxis:lt}:Object.assign({mainAxis:0,altAxis:0},lt),Bt=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,pi={x:0,y:0};if(J){if(s){var gn,Xr="y"===O?Bn:Vn,es="y"===O?di:fi,Un="y"===O?"height":"width",gi=J[O],Mu=gi+D[Xr],ts=gi-D[es],Iu=_?-_e[Un]/2:0,ag=C===lo?ue[Un]:_e[Un],Ya=C===lo?-_e[Un]:-ue[Un],Nu=t.elements.arrow,mo=_&&Nu?$p(Nu):{width:0,height:0},_r=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},Za=_r[Xr],Au=_r[es],ns=Va(0,ue[Un],mo[Un]),lg=P?ue[Un]/2-Iu-ns-Za-Dt.mainAxis:ag-ns-Za-Dt.mainAxis,aj=P?-ue[Un]/2+Iu+ns+Au+Dt.mainAxis:Ya+ns+Au+Dt.mainAxis,cg=t.elements.arrow&&Ba(t.elements.arrow),lj=cg?"y"===O?cg.clientTop||0:cg.clientLeft||0:0,cE=null!=(gn=Bt?.[O])?gn:0,uj=gi+aj-cE,uE=Va(_?fu(Mu,gi+lg-cE-lj):Mu,gi,_?zr(ts,uj):ts);J[O]=uE,pi[O]=uE-gi}if(a){var dE,is=J[V],Ou="y"===V?"height":"width",fE=is+D["x"===O?Bn:Vn],hE=is-D["x"===O?di:fi],ug=-1!==[Bn,Vn].indexOf(T),pE=null!=(dE=Bt?.[V])?dE:0,gE=ug?fE:is-ue[Ou]-_e[Ou]-pE+Dt.altAxis,_E=ug?is+ue[Ou]+_e[Ou]-pE-Dt.altAxis:hE,mE=_&&ug?function EB(e,t,i){var n=Va(e,t,i);return n>i?i:n}(gE,is,_E):Va(_?gE:fE,is,_?_E:hE);J[V]=mE,pi[V]=mE-is}t.modifiersData[n]=pi}},requiresIfExists:["offset"]},AB={name:"arrow",enabled:!0,phase:"main",fn:function IB(e){var t,i=e.state,n=e.name,r=e.options,s=i.elements.arrow,o=i.modifiersData.popperOffsets,a=ki(i.placement),l=Up(a),u=[Vn,fi].indexOf(a)>=0?"height":"width";if(s&&o){var h=function(t,i){return Gw("number"!=typeof(t="function"==typeof t?t(Object.assign({},i.rects,{placement:i.placement})):t)?t:zw(t,Pa))}(r.padding,i),g=$p(s),_="y"===l?Bn:Vn,y="y"===l?di:fi,b=i.rects.reference[u]+i.rects.reference[l]-o[l]-i.rects.popper[u],D=o[l]-i.rects.reference[l],T=Ba(s),C=T?"y"===l?T.clientHeight||0:T.clientWidth||0:0,J=C/2-g[u]/2+(b/2-D/2),ue=Va(h[_],J,C-g[u]-h[y]);i.modifiersData[n]=((t={})[l]=ue,t.centerOffset=ue-J,t)}},effect:function NB(e){var t=e.state,n=e.options.element,r=void 0===n?"[data-popper-arrow]":n;null!=r&&("string"==typeof r&&!(r=t.elements.popper.querySelector(r))||Hw(t.elements.popper,r)&&(t.elements.arrow=r))},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function PB(e,t,i){void 0===i&&(i=!1);var n=Xn(t),r=Xn(t)&&function RB(e){var t=e.getBoundingClientRect(),i=co(t.width)/e.offsetWidth||1,n=co(t.height)/e.offsetHeight||1;return 1!==i||1!==n}(t),s=gr(t),o=uo(e,r,i),a={scrollLeft:0,scrollTop:0},l={x:0,y:0};return(n||!n&&!i)&&(("body"!==Li(t)||Vp(s))&&(a=function xB(e){return e!==Hn(e)&&Xn(e)?function OB(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}(e):Lp(e)}(t)),Xn(t)?((l=uo(t,!0)).x+=t.clientLeft,l.y+=t.clientTop):s&&(l.x=Bp(s))),{x:o.left+a.scrollLeft-l.x,y:o.top+a.scrollTop-l.y,width:o.width,height:o.height}}function FB(e){var t=new Map,i=new Set,n=[];function r(s){i.add(s.name),[].concat(s.requires||[],s.requiresIfExists||[]).forEach(function(a){if(!i.has(a)){var l=t.get(a);l&&r(l)}}),n.push(s)}return e.forEach(function(s){t.set(s.name,s)}),e.forEach(function(s){i.has(s.name)||r(s)}),n}function LB(e){var t;return function(){return t||(t=new Promise(function(i){Promise.resolve().then(function(){t=void 0,i(e())})})),t}}var Ww={placement:"bottom",modifiers:[],strategy:"absolute"};function qw(){for(var e=arguments.length,t=new Array(e),i=0;i=0?-1:1,s="function"==typeof i?i(Object.assign({},t,{placement:e})):i,o=s[0],a=s[1];return o=o||0,a=(a||0)*r,[Vn,fi].indexOf(n)>=0?{x:a,y:o}:{x:o,y:a}}(h,t.rects,s),u},{}),a=o[t.placement],c=a.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=a.x,t.modifiersData.popperOffsets.y+=c),t.modifiersData[n]=o}};function lV(e,t){if(1&e){const i=Dn();j(0,"button",1),ce("click",function(){return on(i),an(z().close())}),U()}}const Zw=["*"],BV=["dialog"];function Wr(e){return"string"==typeof e}function qr(e){return null!=e}function ho(e){return(e||document.body).getBoundingClientRect()}function eC(e=document){const t=e?.activeElement;return t?t.shadowRoot?eC(t.shadowRoot):t:null}const tC={animation:!0,transitionTimerDelayMs:5},A3=()=>{},{transitionTimerDelayMs:O3}=tC,Ha=new Map,pn=(e,t,i,n)=>{let r=n.context||{};const s=Ha.get(t);if(s)switch(n.runningTransition){case"continue":return Do;case"stop":e.run(()=>s.transition$.complete()),r=Object.assign(s.context,r),Ha.delete(t)}const o=i(t,n.animation,r)||A3;if(!n.animation||"none"===window.getComputedStyle(t).transitionProperty)return e.run(()=>o()),ds(void 0).pipe(function I3(e){return t=>new ze(i=>t.subscribe({next:o=>e.run(()=>i.next(o)),error:o=>e.run(()=>i.error(o)),complete:()=>e.run(()=>i.complete())}))}(e));const a=new ee,l=new ee,c=a.pipe(function z2(...e){return t=>Qc(t,ds(...e))}(!0));Ha.set(t,{transition$:a,complete:()=>{l.next(),l.complete()},context:r});const u=function N3(e){const{transitionDelay:t,transitionDuration:i}=window.getComputedStyle(e);return 1e3*(parseFloat(t)+parseFloat(i))}(t);return e.runOutsideAngular(()=>{const h=$t(t,"transitionend").pipe(Mt(c),ci(({target:_})=>_===t));wD(bD(u+O3).pipe(Mt(c)),h,l).pipe(Mt(c)).subscribe(()=>{Ha.delete(t),e.run(()=>{o(),a.next(),a.complete()})})}),a.asObservable()};let Ua=(()=>{var e;class t{constructor(){this.animation=tC.animation}}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275prov=G({token:e,factory:e.\u0275fac,providedIn:"root"}),t})(),uC=(()=>{var e;class t{}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275mod=Pe({type:e}),e.\u0275inj=Ae({}),t})();const H3=({classList:e})=>{e.remove("show")};let U3=(()=>{var e;class t{constructor(n){this._ngbConfig=n,this.dismissible=!0,this.type="warning"}get animation(){return void 0===this._animation?this._ngbConfig.animation:this._animation}set animation(n){this._animation=n}}return(e=t).\u0275fac=function(n){return new(n||e)(L(Ua))},e.\u0275prov=G({token:e,factory:e.\u0275fac,providedIn:"root"}),t})(),j3=(()=>{var e;class t{constructor(n,r,s,o){this._renderer=r,this._element=s,this._zone=o,this.closed=new Y,this.dismissible=n.dismissible,this.type=n.type,this.animation=n.animation}close(){const n=pn(this._zone,this._element.nativeElement,H3,{animation:this.animation,runningTransition:"continue"});return n.subscribe(()=>this.closed.emit()),n}ngOnChanges(n){const r=n.type;r&&!r.firstChange&&(this._renderer.removeClass(this._element.nativeElement,`alert-${r.previousValue}`),this._renderer.addClass(this._element.nativeElement,`alert-${r.currentValue}`))}ngOnInit(){this._renderer.addClass(this._element.nativeElement,`alert-${this.type}`)}}return(e=t).\u0275fac=function(n){return new(n||e)(v(U3),v(zn),v(Fe),v(Se))},e.\u0275cmp=et({type:e,selectors:[["ngb-alert"]],hostAttrs:["role","alert",1,"alert","show"],hostVars:4,hostBindings:function(n,r){2&n&&De("fade",r.animation)("alert-dismissible",r.dismissible)},inputs:{animation:"animation",dismissible:"dismissible",type:"type"},outputs:{closed:"closed"},exportAs:["ngbAlert"],standalone:!0,features:[sn,Yn],ngContentSelectors:Zw,decls:2,vars:1,consts:function(){let i;return i=$localize`:@@ngb.alert.close:Close`,[["type","button","class","btn-close","aria-label",i,3,"click",4,"ngIf"],["type","button","aria-label",i,1,"btn-close",3,"click"]]},template:function(n,r){1&n&&(qf(),Yf(0),B(1,lV,1,0,"button",0)),2&n&&(R(1),x("ngIf",r.dismissible))},dependencies:[Ln],styles:["ngb-alert{display:block}\n"],encapsulation:2,changeDetection:0}),t})(),dC=(()=>{var e;class t{}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275mod=Pe({type:e}),e.\u0275inj=Ae({}),t})(),pC=(()=>{var e;class t{}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275mod=Pe({type:e}),e.\u0275inj=Ae({}),t})(),Zp=(()=>{var e;class t{}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275mod=Pe({type:e}),e.\u0275inj=Ae({}),t})();var Ge=function(e){return e[e.Tab=9]="Tab",e[e.Enter=13]="Enter",e[e.Escape=27]="Escape",e[e.Space=32]="Space",e[e.PageUp=33]="PageUp",e[e.PageDown=34]="PageDown",e[e.End=35]="End",e[e.Home=36]="Home",e[e.ArrowLeft=37]="ArrowLeft",e[e.ArrowUp=38]="ArrowUp",e[e.ArrowRight=39]="ArrowRight",e[e.ArrowDown=40]="ArrowDown",e}(Ge||{});const bu=(e,t)=>!!t&&t.some(i=>i.contains(e)),yC=(e,t)=>!t||null!=function M3(e,t){return!t||typeof e.closest>"u"?null:e.closest(t)}(e,t),cH=typeof navigator<"u"&&!!navigator.userAgent&&(/iPad|iPhone|iPod/.test(navigator.userAgent)||/Macintosh/.test(navigator.userAgent)&&navigator.maxTouchPoints&&navigator.maxTouchPoints>2||/Android/.test(navigator.userAgent));function bC(e,t,i,n,r,s,o,a){i&&e.runOutsideAngular((e=>cH?()=>setTimeout(()=>e(),100):e)(()=>{const c=$t(t,"keydown").pipe(Mt(r),ci(g=>g.which===Ge.Escape),CD(g=>g.preventDefault())),u=$t(t,"mousedown").pipe(Pt(g=>{const _=g.target;return 2!==g.button&&!bu(_,o)&&("inside"===i?bu(_,s)&&yC(_,a):"outside"===i?!bu(_,s):yC(_,a)||!bu(_,s))}),Mt(r)),h=$t(t,"mouseup").pipe(pp(u),ci(([g,_])=>_),function Y2(e,t=yD){const i=bD(e,t);return ED(()=>i)}(0),Mt(r));wD([c.pipe(Pt(g=>0)),h.pipe(Pt(g=>1))]).subscribe(g=>e.run(()=>n(g)))}))}const DC=["a[href]","button:not([disabled])",'input:not([disabled]):not([type="hidden"])',"select:not([disabled])","textarea:not([disabled])","[contenteditable]",'[tabindex]:not([tabindex="-1"])'].join(", ");function wC(e){const t=Array.from(e.querySelectorAll(DC)).filter(i=>-1!==i.tabIndex);return[t[0],t[t.length-1]]}let dH=(()=>{var e;class t{constructor(n){this._element=n.documentElement}isRTL(){return"rtl"===(this._element.getAttribute("dir")||"").toLowerCase()}}return(e=t).\u0275fac=function(n){return new(n||e)(L(Qt))},e.\u0275prov=G({token:e,factory:e.\u0275fac,providedIn:"root"}),t})();const fH=/\s+/,hH=/ +/gi,pH={top:["top"],bottom:["bottom"],start:["left","right"],left:["left"],end:["right","left"],right:["right"],"top-start":["top-start","top-end"],"top-left":["top-start"],"top-end":["top-end","top-start"],"top-right":["top-end"],"bottom-start":["bottom-start","bottom-end"],"bottom-left":["bottom-start"],"bottom-end":["bottom-end","bottom-start"],"bottom-right":["bottom-end"],"start-top":["left-start","right-start"],"left-top":["left-start"],"start-bottom":["left-end","right-end"],"left-bottom":["left-end"],"end-top":["right-start","left-start"],"right-top":["right-start"],"end-bottom":["right-end","left-end"],"right-bottom":["right-end"]},_H=/^left/,mH=/^right/,vH=/^start/,yH=/^end/;function EC({placement:e,baseClass:t},i){let n=Array.isArray(e)?e:e.split(fH),s=n.findIndex(c=>"auto"===c);s>=0&&["top","bottom","start","end","top-start","top-end","bottom-start","bottom-end","start-top","start-bottom","end-top","end-bottom"].forEach(function(c){null==n.find(u=>-1!==u.search("^"+c))&&n.splice(s++,1,c)});const o=n.map(c=>function gH(e,t){const[i,n]=pH[e];return t&&n||i}(c,i.isRTL()));return{placement:o.shift(),modifiers:[{name:"bootstrapClasses",enabled:!!t,phase:"write",fn({state:c}){const u=new RegExp(t+"(-[a-z]+)*","gi"),h=c.elements.popper,g=c.placement;let _=h.className;_=_.replace(u,""),_+=` ${function bH(e,t){let[i,n]=t.split("-");const r=i.replace(_H,"start").replace(mH,"end");let s=[r];if(n){let o=n;("left"===i||"right"===i)&&(o=o.replace(vH,"top").replace(yH,"bottom")),s.push(`${r}-${o}`)}return e&&(s=s.map(o=>`${e}-${o}`)),s.join(" ")}(t,g)}`,_=_.trim().replace(hH," "),h.className=_}},wB,TB,AB,{enabled:!0,name:"flip",options:{fallbackPlacements:o}},{enabled:!0,name:"preventOverflow",phase:"main",fn:function(){}}]}}function SC(e){return e}new Date(1882,10,12),new Date(2174,10,25);let FC=(()=>{var e;class t{}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275mod=Pe({type:e}),e.\u0275inj=Ae({}),t})(),OH=(()=>{var e;class t{constructor(){this.autoClose=!0,this.placement=["bottom-start","bottom-end","top-start","top-end"],this.popperOptions=n=>n}}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275prov=G({token:e,factory:e.\u0275fac,providedIn:"root"}),t})(),rg=(()=>{var e;class t{set disabled(n){this._disabled=""===n||!0===n,this._renderer.setProperty(this.elementRef.nativeElement,"disabled",this._disabled)}get disabled(){return this._disabled}constructor(n,r){this.elementRef=n,this._renderer=r,this._disabled=!1}}return(e=t).\u0275fac=function(n){return new(n||e)(v(Fe),v(zn))},e.\u0275dir=k({type:e,selectors:[["","ngbDropdownItem",""]],hostAttrs:[1,"dropdown-item"],hostVars:3,hostBindings:function(n,r){2&n&&(qn("tabIndex",r.disabled?-1:0),De("disabled",r.disabled))},inputs:{disabled:"disabled"},standalone:!0}),t})(),sg=(()=>{var e;class t{constructor(n,r){this.dropdown=n,this.placement="bottom",this.isOpen=!1,this.nativeElement=r.nativeElement}}return(e=t).\u0275fac=function(n){return new(n||e)(v(ae(()=>za)),v(Fe))},e.\u0275dir=k({type:e,selectors:[["","ngbDropdownMenu",""]],contentQueries:function(n,r,s){if(1&n&&pt(s,rg,4),2&n){let o;se(o=oe())&&(r.menuItems=o)}},hostVars:4,hostBindings:function(n,r){1&n&&ce("keydown.ArrowUp",function(o){return r.dropdown.onKeyDown(o)})("keydown.ArrowDown",function(o){return r.dropdown.onKeyDown(o)})("keydown.Home",function(o){return r.dropdown.onKeyDown(o)})("keydown.End",function(o){return r.dropdown.onKeyDown(o)})("keydown.Enter",function(o){return r.dropdown.onKeyDown(o)})("keydown.Space",function(o){return r.dropdown.onKeyDown(o)})("keydown.Tab",function(o){return r.dropdown.onKeyDown(o)})("keydown.Shift.Tab",function(o){return r.dropdown.onKeyDown(o)}),2&n&&De("dropdown-menu",!0)("show",r.dropdown.isOpen())},standalone:!0}),t})(),Eu=(()=>{var e;class t{constructor(n,r){this.dropdown=n,this.nativeElement=r.nativeElement}}return(e=t).\u0275fac=function(n){return new(n||e)(v(ae(()=>za)),v(Fe))},e.\u0275dir=k({type:e,selectors:[["","ngbDropdownAnchor",""]],hostAttrs:[1,"dropdown-toggle"],hostVars:1,hostBindings:function(n,r){2&n&&Te("aria-expanded",r.dropdown.isOpen())},standalone:!0}),t})(),kC=(()=>{var e;class t extends Eu{constructor(n,r){super(n,r)}}return(e=t).\u0275fac=function(n){return new(n||e)(v(ae(()=>za)),v(Fe))},e.\u0275dir=k({type:e,selectors:[["","ngbDropdownToggle",""]],hostAttrs:[1,"dropdown-toggle"],hostVars:1,hostBindings:function(n,r){1&n&&ce("click",function(){return r.dropdown.toggle()})("keydown.ArrowUp",function(o){return r.dropdown.onKeyDown(o)})("keydown.ArrowDown",function(o){return r.dropdown.onKeyDown(o)})("keydown.Home",function(o){return r.dropdown.onKeyDown(o)})("keydown.End",function(o){return r.dropdown.onKeyDown(o)})("keydown.Tab",function(o){return r.dropdown.onKeyDown(o)})("keydown.Shift.Tab",function(o){return r.dropdown.onKeyDown(o)}),2&n&&Te("aria-expanded",r.dropdown.isOpen())},standalone:!0,features:[$e([{provide:Eu,useExisting:ae(()=>e)}]),Oe]}),t})(),za=(()=>{var e;class t{constructor(n,r,s,o,a,l){this._changeDetector=n,this._document=s,this._ngZone=o,this._elementRef=a,this._renderer=l,this._destroyCloseHandlers$=new ee,this._bodyContainer=null,this._open=!1,this.openChange=new Y,this.placement=r.placement,this.popperOptions=r.popperOptions,this.container=r.container,this.autoClose=r.autoClose,this._positioning=function TC(){const e=fe(dH);let t=null;return{createPopper(i){if(!t){let r=(i.updatePopperOptions||SC)(EC(i,e));t=QB(i.hostElement,i.targetElement,r)}},update(){t&&t.update()},setOptions(i){if(t){let r=(i.updatePopperOptions||SC)(EC(i,e));t.setOptions(r)}},destroy(){t&&(t.destroy(),t=null)}}}()}ngOnInit(){this.display||(this.display=this._elementRef.nativeElement.closest(".navbar")?"static":"dynamic")}ngAfterContentInit(){this._ngZone.onStable.pipe(ui(1)).subscribe(()=>{this._applyPlacementClasses(),this._open&&this._setCloseHandlers()})}ngOnChanges(n){if(n.container&&this._open&&this._applyContainer(this.container),n.placement&&!n.placement.firstChange&&(this._positioning.setOptions({hostElement:this._anchor.nativeElement,targetElement:this._bodyContainer||this._menu.nativeElement,placement:this.placement,appendToBody:"body"===this.container}),this._applyPlacementClasses()),n.dropdownClass){const{currentValue:r,previousValue:s}=n.dropdownClass;this._applyCustomDropdownClass(r,s)}n.autoClose&&this._open&&(this.autoClose=n.autoClose.currentValue,this._setCloseHandlers())}isOpen(){return this._open}open(){this._open||(this._open=!0,this._applyContainer(this.container),this.openChange.emit(!0),this._setCloseHandlers(),this._anchor&&(this._anchor.nativeElement.focus(),"dynamic"===this.display&&this._ngZone.runOutsideAngular(()=>{this._positioning.createPopper({hostElement:this._anchor.nativeElement,targetElement:this._bodyContainer||this._menu.nativeElement,placement:this.placement,appendToBody:"body"===this.container,updatePopperOptions:n=>this.popperOptions(function IC(e){return t=>(t.modifiers.push(eV,{name:"offset",options:{offset:()=>e}}),t)}([0,2])(n))}),this._applyPlacementClasses(),this._zoneSubscription=this._ngZone.onStable.subscribe(()=>this._positionMenu())})))}_setCloseHandlers(){this._destroyCloseHandlers$.next(),bC(this._ngZone,this._document,this.autoClose,n=>{this.close(),0===n&&this._anchor.nativeElement.focus()},this._destroyCloseHandlers$,this._menu?[this._menu.nativeElement]:[],this._anchor?[this._anchor.nativeElement]:[],".dropdown-item,.dropdown-divider")}close(){this._open&&(this._open=!1,this._resetContainer(),this._positioning.destroy(),this._zoneSubscription?.unsubscribe(),this._destroyCloseHandlers$.next(),this.openChange.emit(!1),this._changeDetector.markForCheck())}toggle(){this.isOpen()?this.close():this.open()}ngOnDestroy(){this.close()}onKeyDown(n){const r=n.which,s=this._getMenuElements();let o=-1,a=null;const l=this._isEventFromToggle(n);if(!l&&s.length&&s.forEach((c,u)=>{c.contains(n.target)&&(a=c),c===eC(this._document)&&(o=u)}),r!==Ge.Space&&r!==Ge.Enter){if(r!==Ge.Tab){if(l||a){if(this.open(),s.length){switch(r){case Ge.ArrowDown:o=Math.min(o+1,s.length-1);break;case Ge.ArrowUp:if(this._isDropup()&&-1===o){o=s.length-1;break}o=Math.max(o-1,0);break;case Ge.Home:o=0;break;case Ge.End:o=s.length-1}s[o].focus()}n.preventDefault()}}else if(n.target&&this.isOpen()&&this.autoClose){if(this._anchor.nativeElement===n.target)return void("body"!==this.container||n.shiftKey?n.shiftKey&&this.close():(this._renderer.setAttribute(this._menu.nativeElement,"tabindex","0"),this._menu.nativeElement.focus(),this._renderer.removeAttribute(this._menu.nativeElement,"tabindex")));if("body"===this.container){const c=this._menu.nativeElement.querySelectorAll(DC);n.shiftKey&&n.target===c[0]?(this._anchor.nativeElement.focus(),n.preventDefault()):!n.shiftKey&&n.target===c[c.length-1]&&(this._anchor.nativeElement.focus(),this.close())}else $t(n.target,"focusout").pipe(ui(1)).subscribe(({relatedTarget:c})=>{this._elementRef.nativeElement.contains(c)||this.close()})}}else a&&(!0===this.autoClose||"inside"===this.autoClose)&&$t(a,"click").pipe(ui(1)).subscribe(()=>this.close())}_isDropup(){return this._elementRef.nativeElement.classList.contains("dropup")}_isEventFromToggle(n){return this._anchor.nativeElement.contains(n.target)}_getMenuElements(){const n=this._menu;return null==n?[]:n.menuItems.filter(r=>!r.disabled).map(r=>r.elementRef.nativeElement)}_positionMenu(){const n=this._menu;this.isOpen()&&n&&("dynamic"===this.display?(this._positioning.update(),this._applyPlacementClasses()):this._applyPlacementClasses(this._getFirstPlacement(this.placement)))}_getFirstPlacement(n){return Array.isArray(n)?n[0]:n.split(" ")[0]}_resetContainer(){const n=this._renderer;this._menu&&n.appendChild(this._elementRef.nativeElement,this._menu.nativeElement),this._bodyContainer&&(n.removeChild(this._document.body,this._bodyContainer),this._bodyContainer=null)}_applyContainer(n=null){if(this._resetContainer(),"body"===n){const r=this._renderer,s=this._menu.nativeElement,o=this._bodyContainer=this._bodyContainer||r.createElement("div");r.setStyle(o,"position","absolute"),r.setStyle(s,"position","static"),r.setStyle(o,"z-index","1055"),r.appendChild(o,s),r.appendChild(this._document.body,o)}this._applyCustomDropdownClass(this.dropdownClass)}_applyCustomDropdownClass(n,r){const s="body"===this.container?this._bodyContainer:this._elementRef.nativeElement;s&&(r&&this._renderer.removeClass(s,r),n&&this._renderer.addClass(s,n))}_applyPlacementClasses(n){const r=this._menu;if(r){n||(n=this._getFirstPlacement(this.placement));const s=this._renderer,o=this._elementRef.nativeElement;s.removeClass(o,"dropup"),s.removeClass(o,"dropdown");const{nativeElement:a}=r;"static"===this.display?(r.placement=null,s.setAttribute(a,"data-bs-popper","static")):(r.placement=n,s.removeAttribute(a,"data-bs-popper"));const l=-1!==n.search("^top")?"dropup":"dropdown";s.addClass(o,l);const c=this._bodyContainer;c&&(s.removeClass(c,"dropup"),s.removeClass(c,"dropdown"),s.addClass(c,l))}}}return(e=t).\u0275fac=function(n){return new(n||e)(v(gt),v(OH),v(Qt),v(Se),v(Fe),v(zn))},e.\u0275dir=k({type:e,selectors:[["","ngbDropdown",""]],contentQueries:function(n,r,s){if(1&n&&(pt(s,sg,5),pt(s,Eu,5)),2&n){let o;se(o=oe())&&(r._menu=o.first),se(o=oe())&&(r._anchor=o.first)}},hostVars:2,hostBindings:function(n,r){2&n&&De("show",r.isOpen())},inputs:{autoClose:"autoClose",dropdownClass:"dropdownClass",_open:["open","_open"],placement:"placement",popperOptions:"popperOptions",container:"container",display:"display"},outputs:{openChange:"openChange"},exportAs:["ngbDropdown"],standalone:!0,features:[sn]}),t})(),LC=(()=>{var e;class t{}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275mod=Pe({type:e}),e.\u0275inj=Ae({}),t})();class Kr{constructor(t,i,n){this.nodes=t,this.viewRef=i,this.componentRef=n}}let xH=(()=>{var e;class t{constructor(n,r){this._el=n,this._zone=r}ngOnInit(){this._zone.onStable.asObservable().pipe(ui(1)).subscribe(()=>{pn(this._zone,this._el.nativeElement,(n,r)=>{r&&ho(n),n.classList.add("show")},{animation:this.animation,runningTransition:"continue"})})}hide(){return pn(this._zone,this._el.nativeElement,({classList:n})=>n.remove("show"),{animation:this.animation,runningTransition:"stop"})}}return(e=t).\u0275fac=function(n){return new(n||e)(v(Fe),v(Se))},e.\u0275cmp=et({type:e,selectors:[["ngb-modal-backdrop"]],hostAttrs:[2,"z-index","1055"],hostVars:6,hostBindings:function(n,r){2&n&&(Rr("modal-backdrop"+(r.backdropClass?" "+r.backdropClass:"")),De("show",!r.animation)("fade",r.animation))},inputs:{animation:"animation",backdropClass:"backdropClass"},standalone:!0,features:[Yn],decls:0,vars:0,template:function(n,r){},encapsulation:2}),t})();class BC{update(t){}close(t){}dismiss(t){}}const RH=["animation","ariaLabelledBy","ariaDescribedBy","backdrop","centered","fullscreen","keyboard","scrollable","size","windowClass","modalDialogClass"],PH=["animation","backdropClass"];class FH{_applyWindowOptions(t,i){RH.forEach(n=>{qr(i[n])&&(t[n]=i[n])})}_applyBackdropOptions(t,i){PH.forEach(n=>{qr(i[n])&&(t[n]=i[n])})}update(t){this._applyWindowOptions(this._windowCmptRef.instance,t),this._backdropCmptRef&&this._backdropCmptRef.instance&&this._applyBackdropOptions(this._backdropCmptRef.instance,t)}get componentInstance(){if(this._contentRef&&this._contentRef.componentRef)return this._contentRef.componentRef.instance}get closed(){return this._closed.asObservable().pipe(Mt(this._hidden))}get dismissed(){return this._dismissed.asObservable().pipe(Mt(this._hidden))}get hidden(){return this._hidden.asObservable()}get shown(){return this._windowCmptRef.instance.shown.asObservable()}constructor(t,i,n,r){this._windowCmptRef=t,this._contentRef=i,this._backdropCmptRef=n,this._beforeDismiss=r,this._closed=new ee,this._dismissed=new ee,this._hidden=new ee,t.instance.dismissEvent.subscribe(s=>{this.dismiss(s)}),this.result=new Promise((s,o)=>{this._resolve=s,this._reject=o}),this.result.then(null,()=>{})}close(t){this._windowCmptRef&&(this._closed.next(t),this._resolve(t),this._removeModalElements())}_dismiss(t){this._dismissed.next(t),this._reject(t),this._removeModalElements()}dismiss(t){if(this._windowCmptRef)if(this._beforeDismiss){const i=this._beforeDismiss();!function Qw(e){return e&&e.then}(i)?!1!==i&&this._dismiss(t):i.then(n=>{!1!==n&&this._dismiss(t)},()=>{})}else this._dismiss(t)}_removeModalElements(){const t=this._windowCmptRef.instance.hide(),i=this._backdropCmptRef?this._backdropCmptRef.instance.hide():ds(void 0);t.subscribe(()=>{const{nativeElement:n}=this._windowCmptRef.location;n.parentNode.removeChild(n),this._windowCmptRef.destroy(),this._contentRef&&this._contentRef.viewRef&&this._contentRef.viewRef.destroy(),this._windowCmptRef=null,this._contentRef=null}),i.subscribe(()=>{if(this._backdropCmptRef){const{nativeElement:n}=this._backdropCmptRef.location;n.parentNode.removeChild(n),this._backdropCmptRef.destroy(),this._backdropCmptRef=null}}),hp(t,i).subscribe(()=>{this._hidden.next(),this._hidden.complete()})}}var Wa=function(e){return e[e.BACKDROP_CLICK=0]="BACKDROP_CLICK",e[e.ESC=1]="ESC",e}(Wa||{});let kH=(()=>{var e;class t{constructor(n,r,s){this._document=n,this._elRef=r,this._zone=s,this._closed$=new ee,this._elWithFocus=null,this.backdrop=!0,this.keyboard=!0,this.dismissEvent=new Y,this.shown=new ee,this.hidden=new ee}get fullscreenClass(){return!0===this.fullscreen?" modal-fullscreen":Wr(this.fullscreen)?` modal-fullscreen-${this.fullscreen}-down`:""}dismiss(n){this.dismissEvent.emit(n)}ngOnInit(){this._elWithFocus=this._document.activeElement,this._zone.onStable.asObservable().pipe(ui(1)).subscribe(()=>{this._show()})}ngOnDestroy(){this._disableEventHandling()}hide(){const{nativeElement:n}=this._elRef,r={animation:this.animation,runningTransition:"stop"},a=hp(pn(this._zone,n,()=>n.classList.remove("show"),r),pn(this._zone,this._dialogEl.nativeElement,()=>{},r));return a.subscribe(()=>{this.hidden.next(),this.hidden.complete()}),this._disableEventHandling(),this._restoreFocus(),a}_show(){const n={animation:this.animation,runningTransition:"continue"};hp(pn(this._zone,this._elRef.nativeElement,(o,a)=>{a&&ho(o),o.classList.add("show")},n),pn(this._zone,this._dialogEl.nativeElement,()=>{},n)).subscribe(()=>{this.shown.next(),this.shown.complete()}),this._enableEventHandling(),this._setFocus()}_enableEventHandling(){const{nativeElement:n}=this._elRef;this._zone.runOutsideAngular(()=>{$t(n,"keydown").pipe(Mt(this._closed$),ci(s=>s.which===Ge.Escape)).subscribe(s=>{this.keyboard?requestAnimationFrame(()=>{s.defaultPrevented||this._zone.run(()=>this.dismiss(Wa.ESC))}):"static"===this.backdrop&&this._bumpBackdrop()});let r=!1;$t(this._dialogEl.nativeElement,"mousedown").pipe(Mt(this._closed$),CD(()=>r=!1),Vu(()=>$t(n,"mouseup").pipe(Mt(this._closed$),ui(1))),ci(({target:s})=>n===s)).subscribe(()=>{r=!0}),$t(n,"click").pipe(Mt(this._closed$)).subscribe(({target:s})=>{n===s&&("static"===this.backdrop?this._bumpBackdrop():!0===this.backdrop&&!r&&this._zone.run(()=>this.dismiss(Wa.BACKDROP_CLICK))),r=!1})})}_disableEventHandling(){this._closed$.next()}_setFocus(){const{nativeElement:n}=this._elRef;if(!n.contains(document.activeElement)){const r=n.querySelector("[ngbAutofocus]"),s=wC(n)[0];(r||s||n).focus()}}_restoreFocus(){const n=this._document.body,r=this._elWithFocus;let s;s=r&&r.focus&&n.contains(r)?r:n,this._zone.runOutsideAngular(()=>{setTimeout(()=>s.focus()),this._elWithFocus=null})}_bumpBackdrop(){"static"===this.backdrop&&pn(this._zone,this._elRef.nativeElement,({classList:n})=>(n.add("modal-static"),()=>n.remove("modal-static")),{animation:this.animation,runningTransition:"continue"})}}return(e=t).\u0275fac=function(n){return new(n||e)(v(Qt),v(Fe),v(Se))},e.\u0275cmp=et({type:e,selectors:[["ngb-modal-window"]],viewQuery:function(n,r){if(1&n&&at(BV,7),2&n){let s;se(s=oe())&&(r._dialogEl=s.first)}},hostAttrs:["role","dialog","tabindex","-1"],hostVars:7,hostBindings:function(n,r){2&n&&(Te("aria-modal",!0)("aria-labelledby",r.ariaLabelledBy)("aria-describedby",r.ariaDescribedBy),Rr("modal d-block"+(r.windowClass?" "+r.windowClass:"")),De("fade",r.animation))},inputs:{animation:"animation",ariaLabelledBy:"ariaLabelledBy",ariaDescribedBy:"ariaDescribedBy",backdrop:"backdrop",centered:"centered",fullscreen:"fullscreen",keyboard:"keyboard",scrollable:"scrollable",size:"size",windowClass:"windowClass",modalDialogClass:"modalDialogClass"},outputs:{dismissEvent:"dismiss"},standalone:!0,features:[Yn],ngContentSelectors:Zw,decls:4,vars:2,consts:[["role","document"],["dialog",""],[1,"modal-content"]],template:function(n,r){1&n&&(qf(),j(0,"div",0,1)(2,"div",2),Yf(3),U()()),2&n&&Rr("modal-dialog"+(r.size?" modal-"+r.size:"")+(r.centered?" modal-dialog-centered":"")+r.fullscreenClass+(r.scrollable?" modal-dialog-scrollable":"")+(r.modalDialogClass?" "+r.modalDialogClass:""))},styles:["ngb-modal-window .component-host-scrollable{display:flex;flex-direction:column;overflow:hidden}\n"],encapsulation:2}),t})(),LH=(()=>{var e;class t{constructor(n){this._document=n}hide(){const n=Math.abs(window.innerWidth-this._document.documentElement.clientWidth),r=this._document.body,s=r.style,{overflow:o,paddingRight:a}=s;if(n>0){const l=parseFloat(window.getComputedStyle(r).paddingRight);s.paddingRight=`${l+n}px`}return s.overflow="hidden",()=>{n>0&&(s.paddingRight=a),s.overflow=o}}}return(e=t).\u0275fac=function(n){return new(n||e)(L(Qt))},e.\u0275prov=G({token:e,factory:e.\u0275fac,providedIn:"root"}),t})(),BH=(()=>{var e;class t{constructor(n,r,s,o,a,l,c){this._applicationRef=n,this._injector=r,this._environmentInjector=s,this._document=o,this._scrollBar=a,this._rendererFactory=l,this._ngZone=c,this._activeWindowCmptHasChanged=new ee,this._ariaHiddenValues=new Map,this._scrollBarRestoreFn=null,this._modalRefs=[],this._windowCmpts=[],this._activeInstances=new Y,this._activeWindowCmptHasChanged.subscribe(()=>{if(this._windowCmpts.length){const u=this._windowCmpts[this._windowCmpts.length-1];((e,t,i,n=!1)=>{e.runOutsideAngular(()=>{const r=$t(t,"focusin").pipe(Mt(i),Pt(s=>s.target));$t(t,"keydown").pipe(Mt(i),ci(s=>s.which===Ge.Tab),pp(r)).subscribe(([s,o])=>{const[a,l]=wC(t);(o===a||o===t)&&s.shiftKey&&(l.focus(),s.preventDefault()),o===l&&!s.shiftKey&&(a.focus(),s.preventDefault())}),n&&$t(t,"click").pipe(Mt(i),pp(r),Pt(s=>s[1])).subscribe(s=>s.focus())})})(this._ngZone,u.location.nativeElement,this._activeWindowCmptHasChanged),this._revertAriaHidden(),this._setAriaHidden(u.location.nativeElement)}})}_restoreScrollBar(){const n=this._scrollBarRestoreFn;n&&(this._scrollBarRestoreFn=null,n())}_hideScrollBar(){this._scrollBarRestoreFn||(this._scrollBarRestoreFn=this._scrollBar.hide())}open(n,r,s){const o=s.container instanceof HTMLElement?s.container:qr(s.container)?this._document.querySelector(s.container):this._document.body,a=this._rendererFactory.createRenderer(null,null);if(!o)throw new Error(`The specified modal container "${s.container||"body"}" was not found in the DOM.`);this._hideScrollBar();const l=new BC,c=(n=s.injector||n).get(Gn,null)||this._environmentInjector,u=this._getContentRef(n,c,r,l,s);let h=!1!==s.backdrop?this._attachBackdrop(o):void 0,g=this._attachWindowComponent(o,u.nodes),_=new FH(g,u,h,s.beforeDismiss);return this._registerModalRef(_),this._registerWindowCmpt(g),_.hidden.pipe(ui(1)).subscribe(()=>Promise.resolve(!0).then(()=>{this._modalRefs.length||(a.removeClass(this._document.body,"modal-open"),this._restoreScrollBar(),this._revertAriaHidden())})),l.close=y=>{_.close(y)},l.dismiss=y=>{_.dismiss(y)},l.update=y=>{_.update(y)},_.update(s),1===this._modalRefs.length&&a.addClass(this._document.body,"modal-open"),h&&h.instance&&h.changeDetectorRef.detectChanges(),g.changeDetectorRef.detectChanges(),_}get activeInstances(){return this._activeInstances}dismissAll(n){this._modalRefs.forEach(r=>r.dismiss(n))}hasOpenModals(){return this._modalRefs.length>0}_attachBackdrop(n){let r=Fh(xH,{environmentInjector:this._applicationRef.injector,elementInjector:this._injector});return this._applicationRef.attachView(r.hostView),n.appendChild(r.location.nativeElement),r}_attachWindowComponent(n,r){let s=Fh(kH,{environmentInjector:this._applicationRef.injector,elementInjector:this._injector,projectableNodes:r});return this._applicationRef.attachView(s.hostView),n.appendChild(s.location.nativeElement),s}_getContentRef(n,r,s,o,a){return s?s instanceof nt?this._createFromTemplateRef(s,o):Wr(s)?this._createFromString(s):this._createFromComponent(n,r,s,o,a):new Kr([])}_createFromTemplateRef(n,r){const o=n.createEmbeddedView({$implicit:r,close(a){r.close(a)},dismiss(a){r.dismiss(a)}});return this._applicationRef.attachView(o),new Kr([o.rootNodes],o)}_createFromString(n){const r=this._document.createTextNode(`${n}`);return new Kr([[r]])}_createFromComponent(n,r,s,o,a){const c=Fh(s,{environmentInjector:r,elementInjector:Zt.create({providers:[{provide:BC,useValue:o}],parent:n})}),u=c.location.nativeElement;return a.scrollable&&u.classList.add("component-host-scrollable"),this._applicationRef.attachView(c.hostView),new Kr([[u]],c.hostView,c)}_setAriaHidden(n){const r=n.parentElement;r&&n!==this._document.body&&(Array.from(r.children).forEach(s=>{s!==n&&"SCRIPT"!==s.nodeName&&(this._ariaHiddenValues.set(s,s.getAttribute("aria-hidden")),s.setAttribute("aria-hidden","true"))}),this._setAriaHidden(r))}_revertAriaHidden(){this._ariaHiddenValues.forEach((n,r)=>{n?r.setAttribute("aria-hidden",n):r.removeAttribute("aria-hidden")}),this._ariaHiddenValues.clear()}_registerModalRef(n){const r=()=>{const s=this._modalRefs.indexOf(n);s>-1&&(this._modalRefs.splice(s,1),this._activeInstances.emit(this._modalRefs))};this._modalRefs.push(n),this._activeInstances.emit(this._modalRefs),n.result.then(r,r)}_registerWindowCmpt(n){this._windowCmpts.push(n),this._activeWindowCmptHasChanged.next(),n.onDestroy(()=>{const r=this._windowCmpts.indexOf(n);r>-1&&(this._windowCmpts.splice(r,1),this._activeWindowCmptHasChanged.next())})}}return(e=t).\u0275fac=function(n){return new(n||e)(L(kr),L(Zt),L(Gn),L(Qt),L(LH),L(vf),L(Se))},e.\u0275prov=G({token:e,factory:e.\u0275fac,providedIn:"root"}),t})(),VH=(()=>{var e;class t{constructor(n){this._ngbConfig=n,this.backdrop=!0,this.fullscreen=!1,this.keyboard=!0}get animation(){return void 0===this._animation?this._ngbConfig.animation:this._animation}set animation(n){this._animation=n}}return(e=t).\u0275fac=function(n){return new(n||e)(L(Ua))},e.\u0275prov=G({token:e,factory:e.\u0275fac,providedIn:"root"}),t})(),VC=(()=>{var e;class t{constructor(n,r,s){this._injector=n,this._modalStack=r,this._config=s}open(n,r={}){const s={...this._config,animation:this._config.animation,...r};return this._modalStack.open(this._injector,n,s)}get activeInstances(){return this._modalStack.activeInstances}dismissAll(n){this._modalStack.dismissAll(n)}hasOpenModals(){return this._modalStack.hasOpenModals()}}return(e=t).\u0275fac=function(n){return new(n||e)(L(Zt),L(BH),L(VH))},e.\u0275prov=G({token:e,factory:e.\u0275fac,providedIn:"root"}),t})(),HC=(()=>{var e;class t{}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275mod=Pe({type:e}),e.\u0275inj=Ae({providers:[VC]}),t})(),$C=(()=>{var e;class t{}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275mod=Pe({type:e}),e.\u0275inj=Ae({}),t})(),QC=(()=>{var e;class t{}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275mod=Pe({type:e}),e.\u0275inj=Ae({}),t})(),XC=(()=>{var e;class t{}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275mod=Pe({type:e}),e.\u0275inj=Ae({}),t})(),eE=(()=>{var e;class t{}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275mod=Pe({type:e}),e.\u0275inj=Ae({}),t})(),tE=(()=>{var e;class t{}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275mod=Pe({type:e}),e.\u0275inj=Ae({}),t})(),nE=(()=>{var e;class t{}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275mod=Pe({type:e}),e.\u0275inj=Ae({}),t})(),iE=(()=>{var e;class t{}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275mod=Pe({type:e}),e.\u0275inj=Ae({}),t})(),rE=(()=>{var e;class t{}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275mod=Pe({type:e}),e.\u0275inj=Ae({}),t})(),sE=(()=>{var e;class t{}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275mod=Pe({type:e}),e.\u0275inj=Ae({}),t})();new W("live announcer delay",{providedIn:"root",factory:function iU(){return 100}});let oE=(()=>{var e;class t{}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275mod=Pe({type:e}),e.\u0275inj=Ae({}),t})(),aE=(()=>{var e;class t{}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275mod=Pe({type:e}),e.\u0275inj=Ae({}),t})();const sU=[uC,dC,pC,Zp,FC,LC,HC,$C,aE,QC,XC,eE,tE,nE,iE,rE,sE,oE];let oU=(()=>{var e;class t{}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275mod=Pe({type:e}),e.\u0275inj=Ae({imports:[sU,uC,dC,pC,Zp,FC,LC,HC,$C,aE,QC,XC,eE,tE,nE,iE,rE,sE,oE]}),t})();const aU=["ddbut"];function lU(e,t){if(1&e&&(j(0,"button",8),je(1,"i",null,9),qe(3),U()),2&e){const i=t.$implicit;Pn("id",i.element.id),R(3),jt(i.label)}}let cU=(()=>{var e;class t{constructor(n,r,s,o,a,l){this.attributeService=n,this.cd=r,this.frontendService=s,this.elementLookupService=a,this.callbackHelperService=l,this.element=null,this.parentLayout="",this.buttonLabel="",this.dropDownMenuItems=[]}ngAfterViewInit(){null!=this.element&&(this.elementLookupService.addElementObject(this.element.id,this,this.element),this.element.children.forEach(n=>{let r=this.attributeService.findGetAttributeValue("label",n.attributes,""),s=new uU(r,n);this.elementLookupService.addElementObject(n.id,s,n),this.dropDownMenuItems.push(s),this.cd.detectChanges();let o=document.getElementById(n.id);if(null!=o){s.setHtmlElement(o),s.setAttributes(n.attributes),this.callbackHelperService.setCallbacks(o,n.when);let a=o.children.item(0);null!=a&&this.attributeService.addClasses(a,n.attributes,["fa"],[],"icon")}}),this.cd.detectChanges(),this.setAttributes(this.element.attributes))}setAttributes(n){let r=this.attributeService.findAttribute("selected",n);null!=r&&(this.buttonLabel=r.value);let s=this.ddbut.nativeElement;this.attributeService.addAttributes(s,n),this.attributeService.textAttributes(s,n),this.attributeService.setAttributesDirectly(s,n),this.attributeService.addClasses(s,n,["btn"],["btn-outline-dark"]),s.style.border_color=this.attributeService.findGetAttributeValue("border_color",n,"black"),this.cd.detectChanges()}onClick(n){this.frontendService.policyPost(n.when[0])}}return(e=t).\u0275fac=function(n){return new(n||e)(v(Tn),v(gt),v(Qn),v(Qt),v(Kt),v(Fi))},e.\u0275cmp=et({type:e,selectors:[["app-dropdown-menu"]],viewQuery:function(n,r){if(1&n&&at(aU,7),2&n){let s;se(s=oe())&&(r.ddbut=s.first)}},inputs:{element:"element",parentLayout:"parentLayout"},decls:9,vars:3,consts:[[2,"display","table","min-height","100%","min-width","100%"],[2,"display","table-row","min-width","100%"],[2,"display","table-cell","vertical-align","middle","text-align","center"],["ngbDropdown","",1,"d-inline-block"],["type","button","ngbDropdownToggle","","ata-toggle","dropdown","aria-haspopup","true","aria-expanded","false",3,"id"],["ddbut",""],["ngbDropdownMenu",""],["ngbDropdownItem","",3,"id",4,"ngFor","ngForOf"],["ngbDropdownItem","",3,"id"],["icon",""]],template:function(n,r){1&n&&(j(0,"div",0)(1,"div",1)(2,"div",2)(3,"div",3)(4,"button",4,5),qe(6),U(),j(7,"div",6),B(8,lU,4,2,"button",7),U()()()()()),2&n&&(R(4),Pn("id",null==r.element?null:r.element.id),R(2),Ri(" ",r.buttonLabel," "),R(2),x("ngForOf",r.dropDownMenuItems))},dependencies:[kn,za,kC,sg,rg]}),t})();class uU{constructor(t,i){this.htmlElement=null,this.label=t,this.element=i}setHtmlElement(t){this.htmlElement=t}setAttributes(t){if(null!=this.htmlElement){let i=Xt.injector.get(Tn);i.addAttributes(this.htmlElement,t),i.textAttributes(this.htmlElement,t),i.setAttributesDirectly(this.htmlElement,t),i.addClasses(this.htmlElement,t,["dropdown-item"],[])}}}const dU=["label"],fU=["middleDiv"],hU=["outerDiv"];let pU=(()=>{var e;class t{constructor(n,r,s,o){this.cd=n,this.callbackService=r,this.attributeService=s,this.elementLookupService=o,this.element=null,this.parentLayout="",this.elementLabel=""}ngAfterViewInit(){null!=this.element&&(this.elementLookupService.addElementObject(this.element.id,this,this.element),this.callbackService.setCallbacks(this.label.nativeElement,this.element.when),this.setAttributes(this.element.attributes),this.cd.detectChanges())}setAttributes(n){let r=this.attributeService.findAttribute("label",n);null!=r&&(this.elementLabel=r.value);let s=this.label.nativeElement,o=this.middleDiv.nativeElement,a=this.outerDiv.nativeElement;this.attributeService.addAttributes(s,n),this.attributeService.textAttributes(s,n),this.attributeService.setAttributesDirectly(s,n),this.attributeService.addClasses(s,n,[],[]),this.setOuterDivStyles(a),this.setMiddleDivStyle(o),this.setParagraphStyle(s),this.cd.detectChanges()}setOuterDivStyles(n){n.style.display="table",n.style.minHeight="100%",n.style.minWidth="100%",n.style.overflow="hidden"}setMiddleDivStyle(n){n.style.minWidth="100%",n.style.display="table-row"}setParagraphStyle(n){n.style.display="table-cell",n.style.verticalAlign="middle",n.style.textAlign="center"}}return(e=t).\u0275fac=function(n){return new(n||e)(v(gt),v(Fi),v(Tn),v(Kt))},e.\u0275cmp=et({type:e,selectors:[["app-label"]],viewQuery:function(n,r){if(1&n&&(at(dU,7),at(fU,7),at(hU,7)),2&n){let s;se(s=oe())&&(r.label=s.first),se(s=oe())&&(r.middleDiv=s.first),se(s=oe())&&(r.outerDiv=s.first)}},inputs:{element:"element",parentLayout:"parentLayout"},decls:6,vars:1,consts:[["outerDiv",""],["middleDiv",""],[3,"innerHTML"],["label",""]],template:function(n,r){1&n&&(j(0,"div",null,0)(2,"div",null,1),je(4,"p",2,3),U()()),2&n&&(R(4),x("innerHTML",r.elementLabel,Bm))}}),t})();const gU=["theButton"];let _U=(()=>{var e;class t{constructor(n,r,s,o){this.cd=n,this.callbackService=r,this.attributeService=s,this.elementLookupService=o,this.element=null,this.parentLayout="",this.buttonLabel="",this.disabledAttribute=!1}ngAfterViewInit(){null!=this.element&&(this.elementLookupService.addElementObject(this.element.id,this,this.element),this.setAttributes(this.element.attributes),this.callbackService.setCallbacks(this.theButton.nativeElement,this.element.when),this.cd.detectChanges())}setAttributes(n){this.buttonLabel=this.attributeService.findGetAttributeValue("label",n,"");let r=this.theButton.nativeElement;this.attributeService.setAttributesDirectly(r,n),this.attributeService.addAttributes(r,n),this.attributeService.textAttributes(r,n),this.attributeService.addClasses(r,n,["btn"],["btn-info"]),this.attributeService.addGeneralAttributes(r,n),null!=this.element&&this.attributeService.setAbsoulteRelativePositions(this.parentLayout,r,this.element);let s=r.children.item(0);this.attributeService.addClasses(s,n,["fa"],[],"icon");let o=this.attributeService.findGetAttributeValue("disabled",n,"false");"false"==o?this.disabledAttribute=!1:"true"==o?this.disabledAttribute=!0:(console.log("NOT SUPPORTED VALUE FOR DISABLED (assuming not disabled): "),console.log(o),this.disabledAttribute=!1),this.cd.detectChanges()}}return(e=t).\u0275fac=function(n){return new(n||e)(v(gt),v(Fi),v(Tn),v(Kt))},e.\u0275cmp=et({type:e,selectors:[["app-button"]],viewQuery:function(n,r){if(1&n&&at(gU,5),2&n){let s;se(s=oe())&&(r.theButton=s.first)}},inputs:{element:"element",parentLayout:"parentLayout"},decls:5,vars:2,consts:[["type","button"],["theButton",""],["icon",""]],template:function(n,r){1&n&&(j(0,"button",0,1),je(2,"i",null,2),qe(4),U()),2&n&&(Te("disabled",!!r.disabledAttribute||null),R(4),jt(r.buttonLabel))}}),t})();var mU=Be(7);const vU=["theImage"],yU=["svgContainer"];function bU(e,t){if(1&e&&(j(0,"div"),je(1,"img",1,2),U()),2&e){const i=z();R(1),x("src",i.imageSource,Qd)}}function DU(e,t){1&e&&je(0,"div",null,3)}let wU=(()=>{var e;class t{constructor(n,r,s,o){this.cd=n,this.callbackService=r,this.attributeService=s,this.elementLookupService=o,this.element=null,this.parentLayout="",this.imageSource="",this.imageType=""}ngAfterViewInit(){if(null!=this.element){this.elementLookupService.addElementObject(this.element.id,this,this.element);let n=this.attributeService.findAttribute("image",this.element.attributes),r=this.attributeService.findAttribute("image_type",this.element.attributes);null!=n&&null!=r&&r.value.startsWith("clingraph")?this.svgImageHandler(this.element,n,r):this.defaultImageHandler(this.element,n),this.cd.detectChanges()}}setAttributes(n){console.log("TODO?")}svgImageHandler(n,r,s){const a=/\(([^,]+),\s*([^)]+)\)/;this.imageType="svg",this.cd.detectChanges();let l=mU.lW.from(r.value,"base64").toString("binary");this.svgContainer.nativeElement.innerHTML=l,this.cd.detectChanges();let c=this.svgContainer.nativeElement.querySelectorAll(".node, .edge"),u=[];n.children.forEach(g=>{let _=this.attributeService.findAttribute("clingraph_id",g.attributes);if(null!=_){let y=_.value;if("svg_edge"==g.type){const b=y.match(a);if(b){y=b[1].replaceAll('"',"")+"--"+b[2].replaceAll('"',"");let D=b[1].replaceAll('"',"")+"->"+b[2].replaceAll('"',"");u.push({key:D,value:g})}else console.error("Invalid edge format expected a tuple (X,Y) but got ",y)}u.push({key:y,value:g})}});let h=this.generateSvgNodeUiNodeAssociationList(c,u);this.addEventListeners(h),this.cd.detectChanges()}generateSvgNodeUiNodeAssociationList(n,r){let s=[];return n.forEach(o=>{let a=null;r.forEach(l=>{if(o.id==l.key)a=l.value;else for(const c of Array.from(o.children))"title"==c.tagName&&c.innerHTML==l.key&&(a=l.value)}),null!=a?(this.elementLookupService.addElementTagHTML(a.id,o,a),s.push({svg:o,ui:a})):(console.log("Warning: Could not find for the following svgElement a corresponding clingraph node or edge!"),console.log(o))}),s}addEventListeners(n){n.forEach(r=>{this.callbackService.setCallbacks(r.svg,r.ui.when)})}defaultImageHandler(n,r){this.imageType="normal",this.cd.detectChanges();let s=this.theImage.nativeElement;this.attributeService.addAttributes(s,n.attributes),this.attributeService.textAttributes(s,n.attributes),this.attributeService.setAttributesDirectly(s,n.attributes),this.callbackService.setCallbacks(s,n.when);let o=this.attributeService.findAttribute("image_path",n.attributes);null!=r?this.imageSource="data:image/png;base64,"+r.value:null!=o&&(this.imageSource=o.value)}}return(e=t).\u0275fac=function(n){return new(n||e)(v(gt),v(Fi),v(Tn),v(Kt))},e.\u0275cmp=et({type:e,selectors:[["app-canvas"]],viewQuery:function(n,r){if(1&n&&(at(vU,5),at(yU,5)),2&n){let s;se(s=oe())&&(r.theImage=s.first),se(s=oe())&&(r.svgContainer=s.first)}},inputs:{element:"element",parentLayout:"parentLayout"},decls:2,vars:2,consts:[[4,"ngIf"],[3,"src"],["theImage",""],["svgContainer",""]],template:function(n,r){1&n&&(B(0,bU,3,1,"div",0),B(1,DU,2,0,"div",0)),2&n&&(x("ngIf","normal"==r.imageType),R(1),x("ngIf","svg"==r.imageType))},dependencies:[Ln]}),t})(),CU=(()=>{var e;class t{constructor(){}toUserInputASP(n,r,s,o,a){return`user_input(${n},${r},${s},${o},${a})`}}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275prov=G({token:e,factory:e.\u0275fac,providedIn:"root"}),t})();const EU=["svgContainer"];function SU(e,t){if(1&e&&je(0,"textarea",13),2&e){const i=z().$implicit,n=z();Pn("id",i.name+"_"+n.currID),x("formControlName",i.name)}}function TU(e,t){if(1&e){const i=Dn();j(0,"input",14),ce("click",function(r){return on(i),an(z(2).checkClick(r))}),U()}if(2&e){const i=z().$implicit,n=z();Pn("id",i.name+"_checkbox_"+n.currID),x("formControlName",i.name)}}function MU(e,t){if(1&e&&je(0,"input",15),2&e){const i=z().$implicit,n=z();Pn("id",i.name+"_"+n.currID),x("type",i.type)("formControlName",i.name)}}function IU(e,t){if(1&e&&(j(0,"option",17),qe(1),U()),2&e){const i=t.$implicit;Pn("value",i),R(1),jt(i)}}function NU(e,t){if(1&e&&(j(0,"select",13),B(1,IU,2,2,"option",16),U()),2&e){const i=z().$implicit,n=z();Pn("id",i.name+"_"+n.currID),x("formControlName",i.name),R(1),x("ngForOf",n.retrieveSelectOptions(i))}}function AU(e,t){if(1&e&&(j(0,"div")(1,"label"),qe(2),U(),je(3,"br"),B(4,SU,1,2,"textarea",10),B(5,TU,1,2,"input",11),B(6,MU,1,3,"input",12),B(7,NU,2,3,"select",10),U()),2&e){const i=t.$implicit;R(2),jt(i.name),R(2),x("ngIf","textarea"==i.type),R(1),x("ngIf","checkbox"==i.type),R(1),x("ngIf","textarea"!=i.type&&"checkbox"!=i.type&&"select"!=i.type),R(1),x("ngIf","select"==i.type)}}function OU(e,t){if(1&e&&(j(0,"h2",18),qe(1),U()),2&e){const i=z();R(1),jt(i.errStr)}}function xU(e,t){1&e&&(j(0,"h2"),qe(1,"No graph was created from your request."),U())}let RU=(()=>{var e;class t{constructor(n,r,s,o,a){this.attributeService=n,this.frontendService=r,this.fb=s,this.cd=o,this.aspService=a,this.element=null,this.optionsForm=new Hr({}),this.svgString="",this.type="",this.nodeOptionsList=[],this.currID="",this.optionsList=[],this.errStr=""}ngAfterViewInit(){if(null!=this.element){let n=this.attributeService.findAttribute("clingraph_interactive",this.element.attributes);if(null!=n){let r=n;this.svgString=r.data,this.svgContainer.nativeElement.innerHTML=this.svgString,this.nodeOptionsList=r.option_data,console.log("NodeOptions after init:",this.nodeOptionsList),console.log("form after init: ",this.optionsForm),this.cd.detectChanges()}}}retrieveSelectOptions(n){return"options"in n?n.options:[]}handleNodeClick(n){console.log("clicked");let r=n.target,s=r.parentNode;if(console.log(r),console.log(s),null!==s&&"g"==s.nodeName){console.log("past first");let o=s.getElementsByTagName("title")[0];if(console.log(o),null!==o){console.log("past second");const a=o.textContent;null!==a&&""!==a&&(s.id.startsWith("node")?(console.log("clicked node with ID: ",a),this.type="node",this.updateOptions(a,"node")):r.id.startsWith("edge")&&(console.log("clicked"),this.type="edge",this.updateOptions(a,"edge")))}}}checkClick(n){console.log("clicked box");let r=n.target;console.log(r.getAttribute("value")),console.log(r.getAttribute("checked")),console.log("form: ",this.optionsForm)}updateOptions(n,r){this.optionsList.forEach(o=>{o.state=this.optionsForm.value[o.name]}),this.currID=n;let s=this.nodeOptionsList.filter(o=>o.id==n&&o.compType==r);if(1!=s.length)console.log(`Something went wrong: There is more than one or no node/edge with id ${n} in the options list!`),this.errStr=`Something went wrong: There is more than one or no node/edge with id ${n} in the options list!`;else{this.optionsList=s.map(a=>a.options).flat();let o=new Hr({});this.optionsList.forEach(a=>{o.addControl(a.name,new jr("checkbox"==a.type?"true"==a.state||1==a.state:a.state))}),this.optionsForm=o,console.log("form after update: ",this.optionsForm),console.log(this.nodeOptionsList)}}submitForm(){this.errStr="";let n=[],r=this.optionsForm.value;console.log("Form: ",r),this.optionsList.forEach(a=>{a.state=r[a.name]}),this.nodeOptionsList.forEach(a=>{a.options.forEach(l=>{n.push(this.aspService.toUserInputASP(a.compType,a.id,l.type,l.name,l.state))})});let o={function:`graphUpdate(${n.join(",")})`};console.log(o),this.frontendService.uncheckedPost(o)}}return(e=t).\u0275fac=function(n){return new(n||e)(v(Tn),v(Qn),v(ZL),v(gt),v(CU))},e.\u0275cmp=et({type:e,selectors:[["app-main-page"]],viewQuery:function(n,r){if(1&n&&at(EU,5),2&n){let s;se(s=oe())&&(r.svgContainer=s.first)}},inputs:{element:"element"},decls:13,vars:4,consts:[[1,"row"],[1,"col","left",2,"flex-grow","1"],[3,"formGroup","ngSubmit"],[4,"ngFor","ngForOf"],["type","submit","value","Submit"],[1,"col","right",2,"overflow","scroll","flex-grow","10"],["style","color: red;",4,"ngIf"],[3,"click"],["svgContainer",""],[4,"ngIf"],[3,"id","formControlName",4,"ngIf"],["type","checkbox",3,"id","formControlName","click",4,"ngIf"],[3,"id","type","formControlName",4,"ngIf"],[3,"id","formControlName"],["type","checkbox",3,"id","formControlName","click"],[3,"id","type","formControlName"],[3,"value",4,"ngFor","ngForOf"],[3,"value"],[2,"color","red"]],template:function(n,r){1&n&&(j(0,"div",0)(1,"div",1)(2,"label"),qe(3,"OPTIONS"),U(),je(4,"br"),j(5,"form",2),ce("ngSubmit",function(){return r.submitForm()}),B(6,AU,8,5,"div",3),je(7,"input",4),U()(),j(8,"div",5),B(9,OU,2,1,"h2",6),j(10,"div",7,8),ce("click",function(o){return r.handleNodeClick(o)}),U(),B(12,xU,2,0,"h2",9),U()()),2&n&&(R(5),x("formGroup",r.optionsForm),R(1),x("ngForOf",r.optionsList),R(3),x("ngIf",r.errStr.length>0),R(3),x("ngIf",r.svgString.length<=0))},dependencies:[kn,Ln,uw,vw,bw,Kc,gp,uu,ZD,JD,cu,Op],styles:['*[_ngcontent-%COMP%]{box-sizing:border-box}.col[_ngcontent-%COMP%]{float:left;padding:10px;height:300px}.left[_ngcontent-%COMP%]{width:25%}.right[_ngcontent-%COMP%]{width:75%}.row[_ngcontent-%COMP%]:after{content:"";display:table;clear:both}@media screen and (max-width: 600px){.col[_ngcontent-%COMP%]{width:100%}}']}),t})();const PU=["theTextfield"];let FU=(()=>{var e;class t{constructor(n,r,s,o){this.cd=n,this.callbackService=r,this.attributeService=s,this.elementLookupService=o,this.element=null,this.parentLayout="",this.placeholder="",this.disabledAttribute=!1,this.inputType="text"}ngAfterViewInit(){null!=this.element&&(this.elementLookupService.addElementObject(this.element.id,this,this.element),this.setAttributes(this.element.attributes),this.callbackService.setCallbacks(this.theTextfield.nativeElement,this.element.when),this.cd.detectChanges())}setAttributes(n){this.placeholder=this.attributeService.findGetAttributeValue("placeholder",n,""),this.inputType=this.attributeService.findGetAttributeValue("input_type",n,"text");let r=this.theTextfield.nativeElement;this.attributeService.setAttributesDirectly(r,n),this.attributeService.addAttributes(r,n),this.attributeService.textAttributes(r,n),this.attributeService.addGeneralAttributes(r,n),this.attributeService.addClasses(r,n,[],[]),null!=this.element&&this.attributeService.setAbsoulteRelativePositions(this.parentLayout,r,this.element);let s=this.attributeService.findGetAttributeValue("disabled",n,"false");"false"==s?this.disabledAttribute=!1:"true"==s?this.disabledAttribute=!0:(console.log("NOT SUPPORTED VALUE FOR DISABLED (assuming not disabled): "),console.log(s),this.disabledAttribute=!1),this.cd.detectChanges()}}return(e=t).\u0275fac=function(n){return new(n||e)(v(gt),v(Fi),v(Tn),v(Kt))},e.\u0275cmp=et({type:e,selectors:[["app-textfield"]],viewQuery:function(n,r){if(1&n&&at(PU,5),2&n){let s;se(s=oe())&&(r.theTextfield=s.first)}},inputs:{element:"element",parentLayout:"parentLayout"},decls:3,vars:3,consts:[[1,"input-group"],["aria-describedby","basic-addon1",1,"form-control",3,"placeholder","type"],["theTextfield",""]],template:function(n,r){1&n&&(j(0,"div",0),je(1,"input",1,2),U()),2&n&&(R(1),Pn("type",r.inputType),x("placeholder",r.placeholder),Te("disabled",!!r.disabledAttribute||null))}}),t})();const kU=["child"],LU=["content"];function BU(e,t){if(1&e){const i=Dn();j(0,"div",1)(1,"h4",2),qe(2),U(),j(3,"button",3),ce("click",function(){return an(on(i).$implicit.dismiss("Cross click"))}),U()(),j(4,"div",4),je(5,"app-container",5),U()}if(2&e){const i=z();R(2),jt(i.modalTitle),R(3),x("element",i.element)("parentLayout",i.parentLayout)}}let lE=(()=>{var e;class t{constructor(n,r,s,o,a,l){this.childBearerService=n,this.cd=r,this.attributeService=s,this.elementLookupService=o,this.modalService=a,this.modalRefService=l,this.element=null,this.parentLayout="",this.container_id="",this.container=null,this.modalTitle="",this.modalRef=null,this.closeResult=""}ngAfterViewInit(){null!=this.element&&(this.elementLookupService.addElementObject(this.element.id,this,this.element),this.setAttributes(this.element.attributes),this.cd.detectChanges())}setAttributes(n){let r=this.attributeService.findAttribute("visible",n),s=this.attributeService.findAttribute("title",n);null!=s&&(this.modalTitle=s.value),null!=r&&null!=this.element&&("shown"!=r.value&&"visible"!=r.value||null!=this.modalRef?null!=this.modalRef&&("hidden"==r.value||"collapse"==r.value)&&this.modalRef.close():(this.modalRef=this.modalService.open(this.content,{ariaLabelledBy:"modal-basic-title"}),this.modalRefService.registerModal(this.element.id,this.modalRef),this.modalRef.result.then(o=>{if(this.closeResult=`Closed with: ${o}`,null!=this.element)for(let a=0;a{if(this.closeResult=`Dismissed ${this.getDismissReason(o)}`,null!=this.element)for(let a=0;a{var e;class t{constructor(){}componentCreation(n,r){let s=[{key:"container",value:uD},{key:"dropdown_menu",value:cU},{key:"label",value:pU},{key:"button",value:_U},{key:"canvas",value:wU},{key:"clingraph_interactive",value:RU},{key:"textfield",value:FU},{key:"modal",value:lE}],o=null,a=s.findIndex(l=>l.key==r);return a>=0&&(o=n.createComponent(s[a].value)),null==o&&"menu_bar"!=r&&"context_menu"!=r&&"message"!=r&&console.log("Could not associate component key with an component: "+r),o}}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275prov=G({token:e,factory:e.\u0275fac,providedIn:"root"}),t})(),Tu=(()=>{var e;class t{constructor(n,r,s){this.componentService=n,this.elementLookupService=r,this.attributeService=s}bearChild(n,r,s){let o=this.componentService.componentCreation(n,r.type);if(null!=o){o.setInput("element",r),o.setInput("parentLayout",s);let a=o.location.nativeElement;a.id=r.id,this.elementLookupService.addElementTagHTML(r.id,a,r),this.setAllTagAttributes(a,r,s)}return o}setAllTagAttributes(n,r,s){"button"!=r.type&&this.attributeService.setAbsoulteRelativePositions(s,n,r),this.setChildTagAttributes(n,r)}setChildTagAttributes(n,r){this.attributeService.setAttributesDirectly(n,r.attributes),this.attributeService.addGeneralAttributes(n,r.attributes),this.attributeService.addAttributes(n,r.attributes),"container"==r.type&&(this.attributeService.setChildLayout(n,r.attributes),this.attributeService.setVisibility(n,r.attributes),this.attributeService.addClasses(n,r.attributes,[],["p-2"]))}}return(e=t).\u0275fac=function(n){return new(n||e)(L(VU),L(Kt),L(Tn))},e.\u0275prov=G({token:e,factory:e.\u0275fac,providedIn:"root"}),t})();function HU(e,t){if(1&e){const i=Dn();j(0,"ngb-alert",1),ce("closed",function(){return on(i),an(z().messageClosed())}),j(1,"strong"),qe(2),U(),qe(3),U()}if(2&e){const i=z();x("type",i.attrType)("dismissible",!0),R(2),jt(i.attrTitle),R(1),Ri(" ",i.attrMessage,"\n")}}let UU=(()=>{var e;class t{constructor(n,r,s,o){this.cd=n,this.callbackService=r,this.attributeService=s,this.elementLookupService=o,this.element=null,this.attrType="",this.attrMessage="",this.attrTitle="",this.visible="shown"}ngAfterViewInit(){null!=this.element&&(this.elementLookupService.addElementObject(this.element.id,this,this.element),this.setAttributes(this.element.attributes),this.cd.detectChanges())}setAttributes(n){let r=this.attributeService.findGetAttributeValue("type",n,"warning"),s=this.attributeService.findGetAttributeValue("title",n,""),o=this.attributeService.findGetAttributeValue("message",n,"");this.visible=this.attributeService.findGetAttributeValue("visible",n,"shown"),"error"==r&&(r="danger"),this.attrType=r,this.attrTitle=s,this.attrMessage=o,this.cd.detectChanges()}messageClosed(){this.visible="hidden",this.cd.detectChanges()}}return(e=t).\u0275fac=function(n){return new(n||e)(v(gt),v(Fi),v(Tn),v(Kt))},e.\u0275cmp=et({type:e,selectors:[["app-message"]],inputs:{element:"element"},decls:1,vars:1,consts:[[3,"type","dismissible","closed",4,"ngIf"],[3,"type","dismissible","closed"]],template:function(n,r){1&n&&B(0,HU,4,4,"ngb-alert",0),2&n&&x("ngIf","shown"==r.visible)},dependencies:[Ln,j3]}),t})();function jU(e,t){if(1&e&&(j(0,"li",2)(1,"a"),je(2,"i",3),qe(3),U()()),2&e){const i=t.$implicit;x("id",i.id),R(3),jt(i.text)}}let $U=(()=>{var e;class t{constructor(n,r,s){this.cd=n,this.attributeService=r,this.callbackService=s,this.element=null,this.menuId="",this.buttonList=[]}ngAfterViewInit(){null!=this.element&&(this.menuId="menu-"+this.element.id,this.element.children.forEach(n=>{let r=n.id,s=this.attributeService.findGetAttributeValue("label",n.attributes,"");this.buttonList.push({id:r,text:s,attributes:n.attributes})}),this.cd.detectChanges(),this.element.children.forEach(n=>{let r=document.getElementById(n.id);null!=r&&this.callbackService.setCallbacks(r,n.when)}),this.cd.detectChanges(),this.buttonList.forEach(n=>{let r=document.getElementById(n.id);if(null!=r){this.attributeService.addClasses(r,n.attributes,["list-group-item","list-group-item-action"],[]);let s=r.children.item(0);if(null!=s){let o=s.children.item(0);null!=o&&this.attributeService.addClasses(o,n.attributes,["fa"],[],"icon")}}}))}}return(e=t).\u0275fac=function(n){return new(n||e)(v(gt),v(Tn),v(Fi))},e.\u0275cmp=et({type:e,selectors:[["app-context-menu"]],inputs:{element:"element"},decls:2,vars:1,consts:[["id","menuId",1,"list-group"],[3,"id",4,"ngFor","ngForOf"],[3,"id"],["aria-hidden","true",1,"fa"]],template:function(n,r){1&n&&(j(0,"ul",0),B(1,jU,4,2,"li",1),U()),2&n&&(R(1),x("ngForOf",r.buttonList))},dependencies:[kn],styles:[".menu[_ngcontent-%COMP%]{display:flex;flex-direction:column;background-color:#fff;border-radius:10px;box-shadow:0 10px 20px #4040400d;padding:10px 0;list-style-type:none}.menu[_ngcontent-%COMP%] > li[_ngcontent-%COMP%] > a[_ngcontent-%COMP%]{font:inherit;border:0;padding:10px 30px 10px 15px;width:100%;display:flex;align-items:center;position:relative;text-decoration:unset;color:#000;font-weight:500}.menu[_ngcontent-%COMP%] > li[_ngcontent-%COMP%] > a[_ngcontent-%COMP%]:hover{background:#f1f3f7;color:#4b00ff}.menu[_ngcontent-%COMP%] > li[_ngcontent-%COMP%] > a[_ngcontent-%COMP%] > i[_ngcontent-%COMP%]{padding-right:10px}.menu[_ngcontent-%COMP%] > li.trash[_ngcontent-%COMP%] > a[_ngcontent-%COMP%]:hover{color:red}"]}),t})();const GU=["parent"],zU=["child"];function WU(e,t){}function qU(e,t){1&e&&(j(0,"div",3,4),B(2,WU,0,0,"ng-template",null,5,En),U()),2&e&&Pn("id",z().window_id)}function YU(e,t){1&e&&je(0,"app-message",8),2&e&&x("element",t.$implicit)}function ZU(e,t){if(1&e&&(j(0,"div",6),B(1,YU,1,1,"app-message",7),U()),2&e){const i=z();R(1),x("ngForOf",i.messageList)}}function JU(e,t){if(1&e&&je(0,"app-context-menu",9),2&e){const i=t.$implicit;x("id",i.id)("element",i)}}let QU=(()=>{var e;class t{constructor(n,r,s,o,a,l,c){this.childBearerService=n,this.attributeService=r,this.cd=s,this.frontendService=o,this.elementLookupService=a,this.contextMenuService=l,this.callbackService=c,this.element=null,this.children=[],this.window_id="",this.window=null,this.menuBar=null,this.messageList=[],this.contextMenuList=[]}ngAfterViewInit(){this.frontendService.messageLists.subscribe({next:n=>{this.messageList=n,this.cd.detectChanges()}}),this.frontendService.frontendJson.subscribe({next:n=>{this.children.forEach(l=>{this.child.clear()}),this.children=[],this.cleanValues(n),this.frontendService.detectCreateMenuBar(n);let r=[],s=[];this.frontendService.getAllMessagesContextMenus(n,r,s),this.frontendService.messageLists.next(r),this.frontendService.contextMenus.subscribe(l=>{l.forEach(c=>{this.contextMenuService.registerContextMenu(c.id,c)}),this.contextMenuList=l}),this.frontendService.contextMenus.next(s);let o=n.children[0];this.window_id=o.id,this.element=o,this.window=o,this.cd.detectChanges();let a=this.attributeService.findGetAttributeValue("child_layout",o.attributes,"flex");this.elementLookupService.addElementAll(this.window_id,this,this.parent.nativeElement,o),o.children.forEach(l=>{let c=this.childBearerService.bearChild(this.child,l,a);null!=c&&this.children.push(c)}),this.setAttributes(o.attributes),this.doCallbacks(o.when),this.cd.detectChanges()},error:n=>console.log(n)}),this.frontendService.initialGet()}setAttributes(n){let r=this.parent.nativeElement;this.attributeService.setChildLayout(r,n),this.attributeService.addAttributes(r,n),this.attributeService.addClasses(r,n,[],[]),this.cd.detectChanges()}doCallbacks(n){this.callbackService.setCallbacks(this.parent.nativeElement,n)}cleanValues(n){for(let r=0;r"))}for(let r=0;r{this.cleanValues(r)})}stringSanitizer(n){return null==n||(n.length>0&&'"'==n[0]&&(n=n.slice(1)),n.length>0&&'"'==n[n.length-1]&&(n=n.slice(0,-1))),n}}return(e=t).\u0275fac=function(n){return new(n||e)(v(Tu),v(Tn),v(gt),v(Qn),v(Kt),v(Ma),v(Fi))},e.\u0275cmp=et({type:e,selectors:[["app-new-main"]],viewQuery:function(n,r){if(1&n&&(at(GU,5),at(zU,5,Cn)),2&n){let s;se(s=oe())&&(r.parent=s.first),se(s=oe())&&(r.child=s.first)}},decls:3,vars:3,consts:[["style","margin-top: 5px; margin-bottom: 10px;margin-right: 10px;margin-left: 15px;",3,"id",4,"ngIf"],["style","position: fixed; bottom:0;",4,"ngIf"],["style","display: none; position: absolute;",3,"id","element",4,"ngFor","ngForOf"],[2,"margin-top","5px","margin-bottom","10px","margin-right","10px","margin-left","15px",3,"id"],["parent",""],["child",""],[2,"position","fixed","bottom","0"],[3,"element",4,"ngFor","ngForOf"],[3,"element"],[2,"display","none","position","absolute",3,"id","element"]],template:function(n,r){1&n&&(B(0,qU,4,1,"div",0),B(1,ZU,2,1,"div",1),B(2,JU,1,2,"app-context-menu",2)),2&n&&(x("ngIf",null!=r.window),R(1),x("ngIf",null!=r.window),R(1),x("ngForOf",r.contextMenuList))},dependencies:[kn,Ln,UU,$U]}),t})();const KU=["titleIcon"];function XU(e,t){if(1&e&&(j(0,"button",4),je(1,"i",null,5),qe(3),U()),2&e){const i=t.$implicit;Pn("id",i.id),R(3),Ri(" ",i.title,"")}}let ej=(()=>{var e;class t{constructor(n,r,s,o,a,l){this.cd=n,this.displayFrontend=r,this.callbackService=s,this.attributeService=o,this.elementLookupService=a,this.callBackHelperService=l,this.element=null,this.isCollapsed=!0,this.title="",this.menuBarButtons=[]}ngAfterViewInit(){null!=this.element&&(this.elementLookupService.addElementObject(this.element.id,this,this.element),this.element.children.forEach(n=>{let r=this.attributeService.findGetAttributeValue("label",n.attributes,""),s=new tj(n.id,r,n);this.elementLookupService.addElementObject(n.id,s,n),this.menuBarButtons.push(s)}),this.cd.detectChanges(),this.menuBarButtons.forEach(n=>{let r=document.getElementById(n.id);if(null!=r){n.setHtmlElement(r),n.setAttributes(n.element.attributes),this.attributeService.addClasses(r,n.element.attributes,["btn-sm","mx-1"],["btn-outline-dark","border-0"]),this.callBackHelperService.setCallbacks(r,n.element.when);let s=r.children.item(0);null!=s&&this.attributeService.addClasses(s,n.element.attributes,["fa"],[],"icon")}}),this.setAttributes(this.element.attributes),this.cd.detectChanges())}setAttributes(n){let r=this.attributeService.findAttribute("title",n);null!=r&&(this.title=r.value),this.attributeService.addClasses(this.titleIcon.nativeElement,n,["fa"],[],"icon"),this.cd.detectChanges()}policyExecutor(n){null!=n&&this.displayFrontend.policyPost(n)}}return(e=t).\u0275fac=function(n){return new(n||e)(v(gt),v(Qn),v(Fi),v(Tn),v(Kt),v(Fi))},e.\u0275cmp=et({type:e,selectors:[["app-menu-bar"]],viewQuery:function(n,r){if(1&n&&at(KU,5),2&n){let s;se(s=oe())&&(r.titleIcon=s.first)}},inputs:{element:"element"},decls:7,vars:2,consts:[[1,"navbar","navbar-expand","bg-light","justify-content-between"],[1,"navbar-brand","mx-3","text-dark"],["titleIcon",""],["type","button","class","btn",3,"id",4,"ngFor","ngForOf"],["type","button",1,"btn",3,"id"],["icon",""]],template:function(n,r){1&n&&(j(0,"nav",0)(1,"a",1),je(2,"i",null,2),qe(4),U(),j(5,"div"),B(6,XU,4,2,"button",3),U()()),2&n&&(R(4),Ri(" ",r.title," "),R(2),x("ngForOf",r.menuBarButtons))},dependencies:[kn]}),t})();class tj{constructor(t,i,n){this.id="",this.title="",this.htmlElement=null,this.id=t,this.title=i,this.element=n}setHtmlElement(t){this.htmlElement=t}setAttributes(t){let i=t.find(n=>"label"==n.key);this.title=null!=i?i.value:""}}const nj=["contentWrapper"];function ij(e,t){1&e&&je(0,"app-menu-bar",3),2&e&&x("element",z().menuBar)}let rj=(()=>{var e;class t{constructor(n,r,s){this.frontendService=n,this.cd=r,this.elementLookupService=s,this.title="Clinguin",this.menuBar=null,this.messageList=[]}ngAfterViewInit(){this.frontendService.menuBar.subscribe({next:n=>{this.menuBar=null,this.cd.detectChanges(),this.menuBar=n,this.cd.detectChanges()}}),this.contentWrapper.nativeElement.addEventListener("click",function(){Xt.injector.get(Kt).elementLookup.forEach(r=>{"menu_bar_section"==r.element.type&&null!=r.object&&"collapsed"in r.object&&0==r.object.collapsed&&(r.object.collapsed=!0)})})}}return(e=t).\u0275fac=function(n){return new(n||e)(v(Qn),v(gt),v(Kt))},e.\u0275cmp=et({type:e,selectors:[["app-root"]],viewQuery:function(n,r){if(1&n&&at(nj,5),2&n){let s;se(s=oe())&&(r.contentWrapper=s.first)}},decls:4,vars:1,consts:[[3,"element",4,"ngIf"],[1,"content-wrapper"],["contentWrapper",""],[3,"element"]],template:function(n,r){1&n&&(B(0,ij,1,1,"app-menu-bar",0),j(1,"div",1,2),je(3,"app-new-main"),U()),2&n&&x("ngIf",null!=r.menuBar)},dependencies:[Ln,QU,ej],styles:["div.content-wrapper[_ngcontent-%COMP%]{padding-top:5%}"]}),t})();function sj(e){return()=>e.load()}let oj=(()=>{var e;class t{constructor(n){this.injector=n,Xt.injector=n}}return(e=t).\u0275fac=function(n){return new(n||e)(L(Zt))},e.\u0275mod=Pe({type:e,bootstrap:[rj]}),e.\u0275inj=Ae({providers:[{provide:w1,useFactory:sj,deps:[lD],multi:!0}],imports:[Vk,QL,JL,bb,m2,oU,Zp]}),t})();(function Wg(e,t,i){const n=e.\u0275cmp;n.directiveDefs=al(t,!1),n.pipeDefs=al(i,!0)})(lE,[uD],[]),Lk().bootstrapModule(oj).catch(e=>console.error(e))},919:(_i,Wt)=>{"use strict";Wt.byteLength=function Ve(Z){var le=ye(Z),Qe=le[1];return 3*(le[0]+Qe)/4-Qe},Wt.toByteArray=function ut(Z){var le,Ct,be=ye(Z),Qe=be[0],Ke=be[1],xe=new ct(function M(Z,le,be){return 3*(le+be)/4-be}(0,Qe,Ke)),It=0,en=Ke>0?Qe-4:Qe;for(Ct=0;Ct>16&255,xe[It++]=le>>8&255,xe[It++]=255≤return 2===Ke&&(le=$[Z.charCodeAt(Ct)]<<2|$[Z.charCodeAt(Ct+1)]>>4,xe[It++]=255&le),1===Ke&&(le=$[Z.charCodeAt(Ct)]<<10|$[Z.charCodeAt(Ct+1)]<<4|$[Z.charCodeAt(Ct+2)]>>2,xe[It++]=le>>8&255,xe[It++]=255&le),xe},Wt.fromByteArray=function wt(Z){for(var le,be=Z.length,Qe=be%3,Ke=[],It=0,en=be-Qe;Iten?en:It+16383));return 1===Qe?Ke.push(Be[(le=Z[be-1])>>2]+Be[le<<4&63]+"=="):2===Qe&&Ke.push(Be[(le=(Z[be-2]<<8)+Z[be-1])>>10]+Be[le>>4&63]+Be[le<<2&63]+"="),Ke.join("")};for(var Be=[],$=[],ct=typeof Uint8Array<"u"?Uint8Array:Array,Je="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",ke=0;ke<64;++ke)Be[ke]=Je[ke],$[Je.charCodeAt(ke)]=ke;function ye(Z){var le=Z.length;if(le%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var be=Z.indexOf("=");return-1===be&&(be=le),[be,be===le?0:4-be%4]}function He(Z){return Be[Z>>18&63]+Be[Z>>12&63]+Be[Z>>6&63]+Be[63&Z]}function dt(Z,le,be){for(var Ke=[],xe=le;xe{"use strict";var ct=Be(919),Je=Be(601),ke="function"==typeof Symbol&&"function"==typeof Symbol.for?Symbol.for("nodejs.util.inspect.custom"):null;Wt.lW=M,Wt.h2=50;var de=2147483647;function Ve(p){if(p>de)throw new RangeError('The value "'+p+'" is invalid for option "size"');var d=new Uint8Array(p);return Object.setPrototypeOf(d,M.prototype),d}function M(p,d,f){if("number"==typeof p){if("string"==typeof d)throw new TypeError('The "string" argument must be of type string. Received type number');return wt(p)}return ut(p,d,f)}function ut(p,d,f){if("string"==typeof p)return function Z(p,d){if(("string"!=typeof d||""===d)&&(d="utf8"),!M.isEncoding(d))throw new TypeError("Unknown encoding: "+d);var f=0|en(p,d),m=Ve(f),w=m.write(p,d);return w!==f&&(m=m.slice(0,w)),m}(p,d);if(ArrayBuffer.isView(p))return function be(p){if(tn(p,Uint8Array)){var d=new Uint8Array(p);return Qe(d.buffer,d.byteOffset,d.byteLength)}return le(p)}(p);if(null==p)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof p);if(tn(p,ArrayBuffer)||p&&tn(p.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(tn(p,SharedArrayBuffer)||p&&tn(p.buffer,SharedArrayBuffer)))return Qe(p,d,f);if("number"==typeof p)throw new TypeError('The "value" argument must not be of type number. Received type number');var m=p.valueOf&&p.valueOf();if(null!=m&&m!==p)return M.from(m,d,f);var w=function Ke(p){if(M.isBuffer(p)){var d=0|xe(p.length),f=Ve(d);return 0===f.length||p.copy(f,0,0,d),f}return void 0!==p.length?"number"!=typeof p.length||S(p.length)?Ve(0):le(p):"Buffer"===p.type&&Array.isArray(p.data)?le(p.data):void 0}(p);if(w)return w;if(typeof Symbol<"u"&&null!=Symbol.toPrimitive&&"function"==typeof p[Symbol.toPrimitive])return M.from(p[Symbol.toPrimitive]("string"),d,f);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof p)}function He(p){if("number"!=typeof p)throw new TypeError('"size" argument must be of type number');if(p<0)throw new RangeError('The value "'+p+'" is invalid for option "size"')}function wt(p){return He(p),Ve(p<0?0:0|xe(p))}function le(p){for(var d=p.length<0?0:0|xe(p.length),f=Ve(d),m=0;m=de)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+de.toString(16)+" bytes");return 0|p}function en(p,d){if(M.isBuffer(p))return p.length;if(ArrayBuffer.isView(p)||tn(p,ArrayBuffer))return p.byteLength;if("string"!=typeof p)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof p);var f=p.length,m=arguments.length>2&&!0===arguments[2];if(!m&&0===f)return 0;for(var w=!1;;)switch(d){case"ascii":case"latin1":case"binary":return f;case"utf8":case"utf-8":return Zi(p).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*f;case"hex":return f>>>1;case"base64":return Ji(p).length;default:if(w)return m?-1:Zi(p).length;d=(""+d).toLowerCase(),w=!0}}function Ct(p,d,f){var m=!1;if((void 0===d||d<0)&&(d=0),d>this.length||((void 0===f||f>this.length)&&(f=this.length),f<=0)||(f>>>=0)<=(d>>>=0))return"";for(p||(p="utf8");;)switch(p){case"hex":return bo(this,d,f);case"utf8":case"utf-8":return yo(this,d,f);case"ascii":return ss(this,d,f);case"latin1":case"binary":return os(this,d,f);case"base64":return yi(this,d,f);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return as(this,d,f);default:if(m)throw new TypeError("Unknown encoding: "+p);p=(p+"").toLowerCase(),m=!0}}function Et(p,d,f){var m=p[d];p[d]=p[f],p[f]=m}function mr(p,d,f,m,w){if(0===p.length)return-1;if("string"==typeof f?(m=f,f=0):f>2147483647?f=2147483647:f<-2147483648&&(f=-2147483648),S(f=+f)&&(f=w?0:p.length-1),f<0&&(f=p.length+f),f>=p.length){if(w)return-1;f=p.length-1}else if(f<0){if(!w)return-1;f=0}if("string"==typeof d&&(d=M.from(d,m)),M.isBuffer(d))return 0===d.length?-1:mi(p,d,f,m,w);if("number"==typeof d)return d&=255,"function"==typeof Uint8Array.prototype.indexOf?w?Uint8Array.prototype.indexOf.call(p,d,f):Uint8Array.prototype.lastIndexOf.call(p,d,f):mi(p,[d],f,m,w);throw new TypeError("val must be string, number or Buffer")}function mi(p,d,f,m,w){var Ce,I=1,N=p.length,q=d.length;if(void 0!==m&&("ucs2"===(m=String(m).toLowerCase())||"ucs-2"===m||"utf16le"===m||"utf-16le"===m)){if(p.length<2||d.length<2)return-1;I=2,N/=2,q/=2,f/=2}function he(bi,st){return 1===I?bi[st]:bi.readUInt16BE(st*I)}if(w){var rt=-1;for(Ce=f;CeN&&(f=N-q),Ce=f;Ce>=0;Ce--){for(var Le=!0,Xe=0;Xew&&(m=w):m=w;var I=d.length;m>I/2&&(m=I/2);for(var N=0;N>8,I.push(f%256),I.push(m);return I}(d,p.length-f),p,f,m)}function yi(p,d,f){return ct.fromByteArray(0===d&&f===p.length?p:p.slice(d,f))}function yo(p,d,f){f=Math.min(p.length,f);for(var m=[],w=d;w239?4:I>223?3:I>191?2:1;if(w+q<=f)switch(q){case 1:I<128&&(N=I);break;case 2:128==(192&(he=p[w+1]))&&(Le=(31&I)<<6|63&he)>127&&(N=Le);break;case 3:Ce=p[w+2],128==(192&(he=p[w+1]))&&128==(192&Ce)&&(Le=(15&I)<<12|(63&he)<<6|63&Ce)>2047&&(Le<55296||Le>57343)&&(N=Le);break;case 4:Ce=p[w+2],rt=p[w+3],128==(192&(he=p[w+1]))&&128==(192&Ce)&&128==(192&rt)&&(Le=(15&I)<<18|(63&he)<<12|(63&Ce)<<6|63&rt)>65535&&Le<1114112&&(N=Le)}null===N?(N=65533,q=1):N>65535&&(m.push((N-=65536)>>>10&1023|55296),N=56320|1023&N),m.push(N),w+=q}return function ze(p){var d=p.length;if(d<=br)return String.fromCharCode.apply(String,p);for(var f="",m=0;mw.length?M.from(N).copy(w,I):Uint8Array.prototype.set.call(w,N,I);else{if(!M.isBuffer(N))throw new TypeError('"list" argument must be an Array of Buffers');N.copy(w,I)}I+=N.length}return w},M.byteLength=en,M.prototype._isBuffer=!0,M.prototype.swap16=function(){var d=this.length;if(d%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var f=0;ff&&(d+=" ... "),""},ke&&(M.prototype[ke]=M.prototype.inspect),M.prototype.compare=function(d,f,m,w,I){if(tn(d,Uint8Array)&&(d=M.from(d,d.offset,d.byteLength)),!M.isBuffer(d))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof d);if(void 0===f&&(f=0),void 0===m&&(m=d?d.length:0),void 0===w&&(w=0),void 0===I&&(I=this.length),f<0||m>d.length||w<0||I>this.length)throw new RangeError("out of range index");if(w>=I&&f>=m)return 0;if(w>=I)return-1;if(f>=m)return 1;if(this===d)return 0;for(var N=(I>>>=0)-(w>>>=0),q=(m>>>=0)-(f>>>=0),he=Math.min(N,q),Ce=this.slice(w,I),rt=d.slice(f,m),Le=0;Le>>=0,isFinite(m)?(m>>>=0,void 0===w&&(w="utf8")):(w=m,m=void 0)}var I=this.length-f;if((void 0===m||m>I)&&(m=I),d.length>0&&(m<0||f<0)||f>this.length)throw new RangeError("Attempt to write outside buffer bounds");w||(w="utf8");for(var N=!1;;)switch(w){case"hex":return vi(this,d,f,m);case"utf8":case"utf-8":return vo(this,d,f,m);case"ascii":case"latin1":case"binary":return vr(this,d,f,m);case"base64":return rs(this,d,f,m);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return yr(this,d,f,m);default:if(N)throw new TypeError("Unknown encoding: "+w);w=(""+w).toLowerCase(),N=!0}},M.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var br=4096;function ss(p,d,f){var m="";f=Math.min(p.length,f);for(var w=d;wm)&&(f=m);for(var w="",I=d;If)throw new RangeError("Trying to access beyond buffer length")}function Rt(p,d,f,m,w,I){if(!M.isBuffer(p))throw new TypeError('"buffer" argument must be a Buffer instance');if(d>w||dp.length)throw new RangeError("Index out of range")}function ls(p,d,f,m,w,I){if(f+m>p.length)throw new RangeError("Index out of range");if(f<0)throw new RangeError("Index out of range")}function mt(p,d,f,m,w){return d=+d,f>>>=0,w||ls(p,0,f,4),Je.write(p,d,f,m,23,4),f+4}function ft(p,d,f,m,w){return d=+d,f>>>=0,w||ls(p,0,f,8),Je.write(p,d,f,m,52,8),f+8}M.prototype.slice=function(d,f){var m=this.length;(d=~~d)<0?(d+=m)<0&&(d=0):d>m&&(d=m),(f=void 0===f?m:~~f)<0?(f+=m)<0&&(f=0):f>m&&(f=m),f>>=0,f>>>=0,m||ee(d,f,this.length);for(var w=this[d],I=1,N=0;++N>>=0,f>>>=0,m||ee(d,f,this.length);for(var w=this[d+--f],I=1;f>0&&(I*=256);)w+=this[d+--f]*I;return w},M.prototype.readUint8=M.prototype.readUInt8=function(d,f){return d>>>=0,f||ee(d,1,this.length),this[d]},M.prototype.readUint16LE=M.prototype.readUInt16LE=function(d,f){return d>>>=0,f||ee(d,2,this.length),this[d]|this[d+1]<<8},M.prototype.readUint16BE=M.prototype.readUInt16BE=function(d,f){return d>>>=0,f||ee(d,2,this.length),this[d]<<8|this[d+1]},M.prototype.readUint32LE=M.prototype.readUInt32LE=function(d,f){return d>>>=0,f||ee(d,4,this.length),(this[d]|this[d+1]<<8|this[d+2]<<16)+16777216*this[d+3]},M.prototype.readUint32BE=M.prototype.readUInt32BE=function(d,f){return d>>>=0,f||ee(d,4,this.length),16777216*this[d]+(this[d+1]<<16|this[d+2]<<8|this[d+3])},M.prototype.readIntLE=function(d,f,m){d>>>=0,f>>>=0,m||ee(d,f,this.length);for(var w=this[d],I=1,N=0;++N=(I*=128)&&(w-=Math.pow(2,8*f)),w},M.prototype.readIntBE=function(d,f,m){d>>>=0,f>>>=0,m||ee(d,f,this.length);for(var w=f,I=1,N=this[d+--w];w>0&&(I*=256);)N+=this[d+--w]*I;return N>=(I*=128)&&(N-=Math.pow(2,8*f)),N},M.prototype.readInt8=function(d,f){return d>>>=0,f||ee(d,1,this.length),128&this[d]?-1*(255-this[d]+1):this[d]},M.prototype.readInt16LE=function(d,f){d>>>=0,f||ee(d,2,this.length);var m=this[d]|this[d+1]<<8;return 32768&m?4294901760|m:m},M.prototype.readInt16BE=function(d,f){d>>>=0,f||ee(d,2,this.length);var m=this[d+1]|this[d]<<8;return 32768&m?4294901760|m:m},M.prototype.readInt32LE=function(d,f){return d>>>=0,f||ee(d,4,this.length),this[d]|this[d+1]<<8|this[d+2]<<16|this[d+3]<<24},M.prototype.readInt32BE=function(d,f){return d>>>=0,f||ee(d,4,this.length),this[d]<<24|this[d+1]<<16|this[d+2]<<8|this[d+3]},M.prototype.readFloatLE=function(d,f){return d>>>=0,f||ee(d,4,this.length),Je.read(this,d,!0,23,4)},M.prototype.readFloatBE=function(d,f){return d>>>=0,f||ee(d,4,this.length),Je.read(this,d,!1,23,4)},M.prototype.readDoubleLE=function(d,f){return d>>>=0,f||ee(d,8,this.length),Je.read(this,d,!0,52,8)},M.prototype.readDoubleBE=function(d,f){return d>>>=0,f||ee(d,8,this.length),Je.read(this,d,!1,52,8)},M.prototype.writeUintLE=M.prototype.writeUIntLE=function(d,f,m,w){d=+d,f>>>=0,m>>>=0,w||Rt(this,d,f,m,Math.pow(2,8*m)-1,0);var N=1,q=0;for(this[f]=255&d;++q>>=0,m>>>=0,w||Rt(this,d,f,m,Math.pow(2,8*m)-1,0);var N=m-1,q=1;for(this[f+N]=255&d;--N>=0&&(q*=256);)this[f+N]=d/q&255;return f+m},M.prototype.writeUint8=M.prototype.writeUInt8=function(d,f,m){return d=+d,f>>>=0,m||Rt(this,d,f,1,255,0),this[f]=255&d,f+1},M.prototype.writeUint16LE=M.prototype.writeUInt16LE=function(d,f,m){return d=+d,f>>>=0,m||Rt(this,d,f,2,65535,0),this[f]=255&d,this[f+1]=d>>>8,f+2},M.prototype.writeUint16BE=M.prototype.writeUInt16BE=function(d,f,m){return d=+d,f>>>=0,m||Rt(this,d,f,2,65535,0),this[f]=d>>>8,this[f+1]=255&d,f+2},M.prototype.writeUint32LE=M.prototype.writeUInt32LE=function(d,f,m){return d=+d,f>>>=0,m||Rt(this,d,f,4,4294967295,0),this[f+3]=d>>>24,this[f+2]=d>>>16,this[f+1]=d>>>8,this[f]=255&d,f+4},M.prototype.writeUint32BE=M.prototype.writeUInt32BE=function(d,f,m){return d=+d,f>>>=0,m||Rt(this,d,f,4,4294967295,0),this[f]=d>>>24,this[f+1]=d>>>16,this[f+2]=d>>>8,this[f+3]=255&d,f+4},M.prototype.writeIntLE=function(d,f,m,w){if(d=+d,f>>>=0,!w){var I=Math.pow(2,8*m-1);Rt(this,d,f,m,I-1,-I)}var N=0,q=1,he=0;for(this[f]=255&d;++N>0)-he&255;return f+m},M.prototype.writeIntBE=function(d,f,m,w){if(d=+d,f>>>=0,!w){var I=Math.pow(2,8*m-1);Rt(this,d,f,m,I-1,-I)}var N=m-1,q=1,he=0;for(this[f+N]=255&d;--N>=0&&(q*=256);)d<0&&0===he&&0!==this[f+N+1]&&(he=1),this[f+N]=(d/q>>0)-he&255;return f+m},M.prototype.writeInt8=function(d,f,m){return d=+d,f>>>=0,m||Rt(this,d,f,1,127,-128),d<0&&(d=255+d+1),this[f]=255&d,f+1},M.prototype.writeInt16LE=function(d,f,m){return d=+d,f>>>=0,m||Rt(this,d,f,2,32767,-32768),this[f]=255&d,this[f+1]=d>>>8,f+2},M.prototype.writeInt16BE=function(d,f,m){return d=+d,f>>>=0,m||Rt(this,d,f,2,32767,-32768),this[f]=d>>>8,this[f+1]=255&d,f+2},M.prototype.writeInt32LE=function(d,f,m){return d=+d,f>>>=0,m||Rt(this,d,f,4,2147483647,-2147483648),this[f]=255&d,this[f+1]=d>>>8,this[f+2]=d>>>16,this[f+3]=d>>>24,f+4},M.prototype.writeInt32BE=function(d,f,m){return d=+d,f>>>=0,m||Rt(this,d,f,4,2147483647,-2147483648),d<0&&(d=4294967295+d+1),this[f]=d>>>24,this[f+1]=d>>>16,this[f+2]=d>>>8,this[f+3]=255&d,f+4},M.prototype.writeFloatLE=function(d,f,m){return mt(this,d,f,!0,m)},M.prototype.writeFloatBE=function(d,f,m){return mt(this,d,f,!1,m)},M.prototype.writeDoubleLE=function(d,f,m){return ft(this,d,f,!0,m)},M.prototype.writeDoubleBE=function(d,f,m){return ft(this,d,f,!1,m)},M.prototype.copy=function(d,f,m,w){if(!M.isBuffer(d))throw new TypeError("argument should be a Buffer");if(m||(m=0),!w&&0!==w&&(w=this.length),f>=d.length&&(f=d.length),f||(f=0),w>0&&w=this.length)throw new RangeError("Index out of range");if(w<0)throw new RangeError("sourceEnd out of bounds");w>this.length&&(w=this.length),d.length-f>>=0,m=void 0===m?this.length:m>>>0,d||(d=0),"number"==typeof d)for(N=f;N55295&&f<57344){if(!w){if(f>56319){(d-=3)>-1&&I.push(239,191,189);continue}if(N+1===m){(d-=3)>-1&&I.push(239,191,189);continue}w=f;continue}if(f<56320){(d-=3)>-1&&I.push(239,191,189),w=f;continue}f=65536+(w-55296<<10|f-56320)}else w&&(d-=3)>-1&&I.push(239,191,189);if(w=null,f<128){if((d-=1)<0)break;I.push(f)}else if(f<2048){if((d-=2)<0)break;I.push(f>>6|192,63&f|128)}else if(f<65536){if((d-=3)<0)break;I.push(f>>12|224,f>>6&63|128,63&f|128)}else{if(!(f<1114112))throw new Error("Invalid code point");if((d-=4)<0)break;I.push(f>>18|240,f>>12&63|128,f>>6&63|128,63&f|128)}}return I}function Ji(p){return ct.toByteArray(function Pt(p){if((p=(p=p.split("=")[0]).trim().replace(cs,"")).length<2)return"";for(;p.length%4!=0;)p+="=";return p}(p))}function Qi(p,d,f,m){for(var w=0;w=d.length||w>=p.length);++w)d[w+f]=p[w];return w}function tn(p,d){return p instanceof d||null!=p&&null!=p.constructor&&null!=p.constructor.name&&p.constructor.name===d.name}function S(p){return p!=p}var E=function(){for(var p="0123456789abcdef",d=new Array(256),f=0;f<16;++f)for(var m=16*f,w=0;w<16;++w)d[m+w]=p[f]+p[w];return d}()},601:(_i,Wt)=>{Wt.read=function(Be,$,ct,Je,ke){var de,ye,Ve=8*ke-Je-1,M=(1<>1,He=-7,dt=ct?ke-1:0,wt=ct?-1:1,Z=Be[$+dt];for(dt+=wt,de=Z&(1<<-He)-1,Z>>=-He,He+=Ve;He>0;de=256*de+Be[$+dt],dt+=wt,He-=8);for(ye=de&(1<<-He)-1,de>>=-He,He+=Je;He>0;ye=256*ye+Be[$+dt],dt+=wt,He-=8);if(0===de)de=1-ut;else{if(de===M)return ye?NaN:1/0*(Z?-1:1);ye+=Math.pow(2,Je),de-=ut}return(Z?-1:1)*ye*Math.pow(2,de-Je)},Wt.write=function(Be,$,ct,Je,ke,de){var ye,Ve,M,ut=8*de-ke-1,He=(1<>1,wt=23===ke?Math.pow(2,-24)-Math.pow(2,-77):0,Z=Je?0:de-1,le=Je?1:-1,be=$<0||0===$&&1/$<0?1:0;for($=Math.abs($),isNaN($)||$===1/0?(Ve=isNaN($)?1:0,ye=He):(ye=Math.floor(Math.log($)/Math.LN2),$*(M=Math.pow(2,-ye))<1&&(ye--,M*=2),($+=ye+dt>=1?wt/M:wt*Math.pow(2,1-dt))*M>=2&&(ye++,M/=2),ye+dt>=He?(Ve=0,ye=He):ye+dt>=1?(Ve=($*M-1)*Math.pow(2,ke),ye+=dt):(Ve=$*Math.pow(2,dt-1)*Math.pow(2,ke),ye=0));ke>=8;Be[ct+Z]=255&Ve,Z+=le,Ve/=256,ke-=8);for(ye=ye<0;Be[ct+Z]=255&ye,Z+=le,ye/=256,ut-=8);Be[ct+Z-le]|=128*be}},614:()=>{"use strict";const _i=":";const Ji=function(S,...E){if(Ji.translate){const d=Ji.translate(S,E);S=d[0],E=d[1]}let p=tn(S[0],S.raw[0]);for(let d=1;d{var Wt=$=>_i(_i.s=$);Wt(614),Wt(362)}]); \ No newline at end of file diff --git a/clinguin/client/presentation/frontends/angular_frontend/clinguin_angular_frontend/main.906284c5fafc9464.js b/clinguin/client/presentation/frontends/angular_frontend/clinguin_angular_frontend/main.906284c5fafc9464.js new file mode 100644 index 00000000..7d7f04c3 --- /dev/null +++ b/clinguin/client/presentation/frontends/angular_frontend/clinguin_angular_frontend/main.906284c5fafc9464.js @@ -0,0 +1 @@ +(self.webpackChunkClinGraphViz = self.webpackChunkClinGraphViz || []).push([[179], { 362: (_i, qt, Ve) => { "use strict"; function $(e) { return "function" == typeof e } function ct(e) { const i = e(n => { Error.call(n), n.stack = (new Error).stack }); return i.prototype = Object.create(Error.prototype), i.prototype.constructor = i, i } const Je = ct(e => function (i) { e(this), this.message = i ? `${i.length} errors occurred during unsubscription:\n${i.map((n, r) => `${r + 1}) ${n.toString()}`).join("\n ")}` : "", this.name = "UnsubscriptionError", this.errors = i }); function ke(e, t) { if (e) { const i = e.indexOf(t); 0 <= i && e.splice(i, 1) } } class de { constructor(t) { this.initialTeardown = t, this.closed = !1, this._parentage = null, this._finalizers = null } unsubscribe() { let t; if (!this.closed) { this.closed = !0; const { _parentage: i } = this; if (i) if (this._parentage = null, Array.isArray(i)) for (const s of i) s.remove(this); else i.remove(this); const { initialTeardown: n } = this; if ($(n)) try { n() } catch (s) { t = s instanceof Je ? s.errors : [s] } const { _finalizers: r } = this; if (r) { this._finalizers = null; for (const s of r) try { M(s) } catch (o) { t = t ?? [], o instanceof Je ? t = [...t, ...o.errors] : t.push(o) } } if (t) throw new Je(t) } } add(t) { var i; if (t && t !== this) if (this.closed) M(t); else { if (t instanceof de) { if (t.closed || t._hasParent(this)) return; t._addParent(this) } (this._finalizers = null !== (i = this._finalizers) && void 0 !== i ? i : []).push(t) } } _hasParent(t) { const { _parentage: i } = this; return i === t || Array.isArray(i) && i.includes(t) } _addParent(t) { const { _parentage: i } = this; this._parentage = Array.isArray(i) ? (i.push(t), i) : i ? [i, t] : t } _removeParent(t) { const { _parentage: i } = this; i === t ? this._parentage = null : Array.isArray(i) && ke(i, t) } remove(t) { const { _finalizers: i } = this; i && ke(i, t), t instanceof de && t._removeParent(this) } } de.EMPTY = (() => { const e = new de; return e.closed = !0, e })(); const ye = de.EMPTY; function He(e) { return e instanceof de || e && "closed" in e && $(e.remove) && $(e.add) && $(e.unsubscribe) } function M(e) { $(e) ? e() : e.unsubscribe() } const ut = { onUnhandledError: null, onStoppedNotification: null, Promise: void 0, useDeprecatedSynchronousErrorHandling: !1, useDeprecatedNextContext: !1 }, Ue = { setTimeout(e, t, ...i) { const { delegate: n } = Ue; return n?.setTimeout ? n.setTimeout(e, t, ...i) : setTimeout(e, t, ...i) }, clearTimeout(e) { const { delegate: t } = Ue; return (t?.clearTimeout || clearTimeout)(e) }, delegate: void 0 }; function dt(e) { Ue.setTimeout(() => { const { onUnhandledError: t } = ut; if (!t) throw e; t(e) }) } function wt() { } const Z = Qe("C", void 0, void 0); function Qe(e, t, i) { return { kind: e, value: t, error: i } } let Ke = null; function xe(e) { if (ut.useDeprecatedSynchronousErrorHandling) { const t = !Ke; if (t && (Ke = { errorThrown: !1, error: null }), e(), t) { const { errorThrown: i, error: n } = Ke; if (Ke = null, i) throw n } } else e() } class en extends de { constructor(t) { super(), this.isStopped = !1, t ? (this.destination = t, He(t) && t.add(this)) : this.destination = rs } static create(t, i, n) { return new mi(t, i, n) } next(t) { this.isStopped ? vr(function be(e) { return Qe("N", e, void 0) }(t), this) : this._next(t) } error(t) { this.isStopped ? vr(function le(e) { return Qe("E", void 0, e) }(t), this) : (this.isStopped = !0, this._error(t)) } complete() { this.isStopped ? vr(Z, this) : (this.isStopped = !0, this._complete()) } unsubscribe() { this.closed || (this.isStopped = !0, super.unsubscribe(), this.destination = null) } _next(t) { this.destination.next(t) } _error(t) { try { this.destination.error(t) } finally { this.unsubscribe() } } _complete() { try { this.destination.complete() } finally { this.unsubscribe() } } } const Ct = Function.prototype.bind; function Et(e, t) { return Ct.call(e, t) } class mr { constructor(t) { this.partialObserver = t } next(t) { const { partialObserver: i } = this; if (i.next) try { i.next(t) } catch (n) { vi(n) } } error(t) { const { partialObserver: i } = this; if (i.error) try { i.error(t) } catch (n) { vi(n) } else vi(t) } complete() { const { partialObserver: t } = this; if (t.complete) try { t.complete() } catch (i) { vi(i) } } } class mi extends en { constructor(t, i, n) { let r; if (super(), $(t) || !t) r = { next: t ?? void 0, error: i ?? void 0, complete: n ?? void 0 }; else { let s; this && ut.useDeprecatedNextContext ? (s = Object.create(t), s.unsubscribe = () => this.unsubscribe(), r = { next: t.next && Et(t.next, s), error: t.error && Et(t.error, s), complete: t.complete && Et(t.complete, s) }) : r = t } this.destination = new mr(r) } } function vi(e) { ut.useDeprecatedSynchronousErrorHandling ? function It(e) { ut.useDeprecatedSynchronousErrorHandling && Ke && (Ke.errorThrown = !0, Ke.error = e) }(e) : dt(e) } function vr(e, t) { const { onStoppedNotification: i } = ut; i && Ue.setTimeout(() => i(e, t)) } const rs = { closed: !0, next: wt, error: function vo(e) { throw e }, complete: wt }, yr = "function" == typeof Symbol && Symbol.observable || "@@observable"; function yi(e) { return e } let ze = (() => { class e { constructor(i) { i && (this._subscribe = i) } lift(i) { const n = new e; return n.source = this, n.operator = i, n } subscribe(i, n, r) { const s = function bo(e) { return e && e instanceof en || function os(e) { return e && $(e.next) && $(e.error) && $(e.complete) }(e) && He(e) }(i) ? i : new mi(i, n, r); return xe(() => { const { operator: o, source: a } = this; s.add(o ? o.call(s, a) : a ? this._subscribe(s) : this._trySubscribe(s)) }), s } _trySubscribe(i) { try { return this._subscribe(i) } catch (n) { i.error(n) } } forEach(i, n) { return new (n = ss(n))((r, s) => { const o = new mi({ next: a => { try { i(a) } catch (l) { s(l), o.unsubscribe() } }, error: s, complete: r }); this.subscribe(o) }) } _subscribe(i) { var n; return null === (n = this.source) || void 0 === n ? void 0 : n.subscribe(i) } [yr]() { return this } pipe(...i) { return function br(e) { return 0 === e.length ? yi : 1 === e.length ? e[0] : function (i) { return e.reduce((n, r) => r(n), i) } }(i)(this) } toPromise(i) { return new (i = ss(i))((n, r) => { let s; this.subscribe(o => s = o, o => r(o), () => n(s)) }) } } return e.create = t => new e(t), e })(); function ss(e) { var t; return null !== (t = e ?? ut.Promise) && void 0 !== t ? t : Promise } const as = ct(e => function () { e(this), this.name = "ObjectUnsubscribedError", this.message = "object unsubscribed" }); let ee = (() => { class e extends ze { constructor() { super(), this.closed = !1, this.currentObservers = null, this.observers = [], this.isStopped = !1, this.hasError = !1, this.thrownError = null } lift(i) { const n = new Rt(this, this); return n.operator = i, n } _throwIfClosed() { if (this.closed) throw new as } next(i) { xe(() => { if (this._throwIfClosed(), !this.isStopped) { this.currentObservers || (this.currentObservers = Array.from(this.observers)); for (const n of this.currentObservers) n.next(i) } }) } error(i) { xe(() => { if (this._throwIfClosed(), !this.isStopped) { this.hasError = this.isStopped = !0, this.thrownError = i; const { observers: n } = this; for (; n.length;)n.shift().error(i) } }) } complete() { xe(() => { if (this._throwIfClosed(), !this.isStopped) { this.isStopped = !0; const { observers: i } = this; for (; i.length;)i.shift().complete() } }) } unsubscribe() { this.isStopped = this.closed = !0, this.observers = this.currentObservers = null } get observed() { var i; return (null === (i = this.observers) || void 0 === i ? void 0 : i.length) > 0 } _trySubscribe(i) { return this._throwIfClosed(), super._trySubscribe(i) } _subscribe(i) { return this._throwIfClosed(), this._checkFinalizedStatuses(i), this._innerSubscribe(i) } _innerSubscribe(i) { const { hasError: n, isStopped: r, observers: s } = this; return n || r ? ye : (this.currentObservers = null, s.push(i), new de(() => { this.currentObservers = null, ke(s, i) })) } _checkFinalizedStatuses(i) { const { hasError: n, thrownError: r, isStopped: s } = this; n ? i.error(r) : s && i.complete() } asObservable() { const i = new ze; return i.source = this, i } } return e.create = (t, i) => new Rt(t, i), e })(); class Rt extends ee { constructor(t, i) { super(), this.destination = t, this.source = i } next(t) { var i, n; null === (n = null === (i = this.destination) || void 0 === i ? void 0 : i.next) || void 0 === n || n.call(i, t) } error(t) { var i, n; null === (n = null === (i = this.destination) || void 0 === i ? void 0 : i.error) || void 0 === n || n.call(i, t) } complete() { var t, i; null === (i = null === (t = this.destination) || void 0 === t ? void 0 : t.complete) || void 0 === i || i.call(t) } _subscribe(t) { var i, n; return null !== (n = null === (i = this.source) || void 0 === i ? void 0 : i.subscribe(t)) && void 0 !== n ? n : ye } } function mt(e) { return t => { if (function ls(e) { return $(e?.lift) }(t)) return t.lift(function (i) { try { return e(i, this) } catch (n) { this.error(n) } }); throw new TypeError("Unable to lift unknown Observable type") } } function ft(e, t, i, n, r) { return new cs(e, t, i, n, r) } class cs extends en { constructor(t, i, n, r, s, o) { super(t), this.onFinalize = s, this.shouldUnsubscribe = o, this._next = i ? function (a) { try { i(a) } catch (l) { t.error(l) } } : super._next, this._error = r ? function (a) { try { r(a) } catch (l) { t.error(l) } finally { this.unsubscribe() } } : super._error, this._complete = n ? function () { try { n() } catch (a) { t.error(a) } finally { this.unsubscribe() } } : super._complete } unsubscribe() { var t; if (!this.shouldUnsubscribe || this.shouldUnsubscribe()) { const { closed: i } = this; super.unsubscribe(), !i && (null === (t = this.onFinalize) || void 0 === t || t.call(this)) } } } function Pt(e, t) { return mt((i, n) => { let r = 0; i.subscribe(ft(n, s => { n.next(e.call(t, s, r++)) })) }) } function Xe(e) { return this instanceof Xe ? (this.v = e, this) : new Xe(e) } function Ki(e) { if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); var i, t = e[Symbol.asyncIterator]; return t ? t.call(e) : (e = function q(e) { var t = "function" == typeof Symbol && Symbol.iterator, i = t && e[t], n = 0; if (i) return i.call(e); if (e && "number" == typeof e.length) return { next: function () { return e && n >= e.length && (e = void 0), { value: e && e[n++], done: !e } } }; throw new TypeError(t ? "Object is not iterable." : "Symbol.iterator is not defined.") }(e), i = {}, n("next"), n("throw"), n("return"), i[Symbol.asyncIterator] = function () { return this }, i); function n(s) { i[s] = e[s] && function (o) { return new Promise(function (a, l) { !function r(s, o, a, l) { Promise.resolve(l).then(function (c) { s({ value: c, done: a }) }, o) }(a, l, (o = e[s](o)).done, o.value) }) } } } "function" == typeof SuppressedError && SuppressedError; const Pu = e => e && "number" == typeof e.length && "function" != typeof e; function ug(e) { return $(e?.then) } function dg(e) { return $(e[yr]) } function fg(e) { return Symbol.asyncIterator && $(e?.[Symbol.asyncIterator]) } function hg(e) { return new TypeError(`You provided ${null !== e && "object" == typeof e ? "an invalid object" : `'${e}'`} where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.`) } const pg = function TE() { return "function" == typeof Symbol && Symbol.iterator ? Symbol.iterator : "@@iterator" }(); function gg(e) { return $(e?.[pg]) } function _g(e) { return function bi(e, t, i) { if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); var r, n = i.apply(e, t || []), s = []; return r = {}, o("next"), o("throw"), o("return"), r[Symbol.asyncIterator] = function () { return this }, r; function o(g) { n[g] && (r[g] = function (_) { return new Promise(function (y, b) { s.push([g, _, y, b]) > 1 || a(g, _) }) }) } function a(g, _) { try { !function l(g) { g.value instanceof Xe ? Promise.resolve(g.value.v).then(c, u) : h(s[0][2], g) }(n[g](_)) } catch (y) { h(s[0][3], y) } } function c(g) { a("next", g) } function u(g) { a("throw", g) } function h(g, _) { g(_), s.shift(), s.length && a(s[0][0], s[0][1]) } }(this, arguments, function* () { const i = e.getReader(); try { for (; ;) { const { value: n, done: r } = yield Xe(i.read()); if (r) return yield Xe(void 0); yield yield Xe(n) } } finally { i.releaseLock() } }) } function mg(e) { return $(e?.getReader) } function Ft(e) { if (e instanceof ze) return e; if (null != e) { if (dg(e)) return function ME(e) { return new ze(t => { const i = e[yr](); if ($(i.subscribe)) return i.subscribe(t); throw new TypeError("Provided object does not correctly implement Symbol.observable") }) }(e); if (Pu(e)) return function IE(e) { return new ze(t => { for (let i = 0; i < e.length && !t.closed; i++)t.next(e[i]); t.complete() }) }(e); if (ug(e)) return function NE(e) { return new ze(t => { e.then(i => { t.closed || (t.next(i), t.complete()) }, i => t.error(i)).then(null, dt) }) }(e); if (fg(e)) return vg(e); if (gg(e)) return function AE(e) { return new ze(t => { for (const i of e) if (t.next(i), t.closed) return; t.complete() }) }(e); if (mg(e)) return function OE(e) { return vg(_g(e)) }(e) } throw hg(e) } function vg(e) { return new ze(t => { (function xE(e, t) { var i, n, r, s; return function m(e, t, i, n) { return new (i || (i = Promise))(function (s, o) { function a(u) { try { c(n.next(u)) } catch (h) { o(h) } } function l(u) { try { c(n.throw(u)) } catch (h) { o(h) } } function c(u) { u.done ? s(u.value) : function r(s) { return s instanceof i ? s : new i(function (o) { o(s) }) }(u.value).then(a, l) } c((n = n.apply(e, t || [])).next()) }) }(this, void 0, void 0, function* () { try { for (i = Ki(e); !(n = yield i.next()).done;)if (t.next(n.value), t.closed) return } catch (o) { r = { error: o } } finally { try { n && !n.done && (s = i.return) && (yield s.call(i)) } finally { if (r) throw r.error } } t.complete() }) })(e, t).catch(i => t.error(i)) }) } function Xi(e, t, i, n = 0, r = !1) { const s = t.schedule(function () { i(), r ? e.add(this.schedule(null, n)) : this.unsubscribe() }, n); if (e.add(s), !r) return s } function us(e, t, i = 1 / 0) { return $(t) ? us((n, r) => Pt((s, o) => t(n, s, r, o))(Ft(e(n, r))), i) : ("number" == typeof t && (i = t), mt((n, r) => function RE(e, t, i, n, r, s, o, a) { const l = []; let c = 0, u = 0, h = !1; const g = () => { h && !l.length && !c && t.complete() }, _ = b => c < n ? y(b) : l.push(b), y = b => { s && t.next(b), c++; let D = !1; Ft(i(b, u++)).subscribe(ft(t, T => { r?.(T), s ? _(T) : t.next(T) }, () => { D = !0 }, void 0, () => { if (D) try { for (c--; l.length && c < n;) { const T = l.shift(); o ? Xi(t, o, () => y(T)) : y(T) } g() } catch (T) { t.error(T) } })) }; return e.subscribe(ft(t, _, () => { h = !0, g() })), () => { a?.() } }(n, r, e, i))) } function yg(e = 1 / 0) { return us(yi, e) } const Do = new ze(e => e.complete()); function bg(e) { return e && $(e.schedule) } function Fu(e) { return e[e.length - 1] } function ku(e) { return $(Fu(e)) ? e.pop() : void 0 } function Qa(e) { return bg(Fu(e)) ? e.pop() : void 0 } function Dg(e, t = 0) { return mt((i, n) => { i.subscribe(ft(n, r => Xi(n, e, () => n.next(r), t), () => Xi(n, e, () => n.complete(), t), r => Xi(n, e, () => n.error(r), t))) }) } function wg(e, t = 0) { return mt((i, n) => { n.add(e.schedule(() => i.subscribe(n), t)) }) } function Cg(e, t) { if (!e) throw new Error("Iterable cannot be null"); return new ze(i => { Xi(i, t, () => { const n = e[Symbol.asyncIterator](); Xi(i, t, () => { n.next().then(r => { r.done ? i.complete() : i.next(r.value) }) }, 0, !0) }) }) } function wo(e, t) { return t ? function UE(e, t) { if (null != e) { if (dg(e)) return function kE(e, t) { return Ft(e).pipe(wg(t), Dg(t)) }(e, t); if (Pu(e)) return function BE(e, t) { return new ze(i => { let n = 0; return t.schedule(function () { n === e.length ? i.complete() : (i.next(e[n++]), i.closed || this.schedule()) }) }) }(e, t); if (ug(e)) return function LE(e, t) { return Ft(e).pipe(wg(t), Dg(t)) }(e, t); if (fg(e)) return Cg(e, t); if (gg(e)) return function VE(e, t) { return new ze(i => { let n; return Xi(i, t, () => { n = e[pg](), Xi(i, t, () => { let r, s; try { ({ value: r, done: s } = n.next()) } catch (o) { return void i.error(o) } s ? i.complete() : i.next(r) }, 0, !0) }), () => $(n?.return) && n.return() }) }(e, t); if (mg(e)) return function HE(e, t) { return Cg(_g(e), t) }(e, t) } throw hg(e) }(e, t) : Ft(e) } class jE extends ee { constructor(t) { super(), this._value = t } get value() { return this.getValue() } _subscribe(t) { const i = super._subscribe(t); return !i.closed && t.next(this._value), i } getValue() { const { hasError: t, thrownError: i, _value: n } = this; if (t) throw i; return this._throwIfClosed(), n } next(t) { super.next(this._value = t) } } function ds(...e) { return wo(e, Qa(e)) } function Sg(e = {}) { const { connector: t = (() => new ee), resetOnError: i = !0, resetOnComplete: n = !0, resetOnRefCountZero: r = !0 } = e; return s => { let o, a, l, c = 0, u = !1, h = !1; const g = () => { a?.unsubscribe(), a = void 0 }, _ = () => { g(), o = l = void 0, u = h = !1 }, y = () => { const b = o; _(), b?.unsubscribe() }; return mt((b, D) => { c++, !h && !u && g(); const T = l = l ?? t(); D.add(() => { c--, 0 === c && !h && !u && (a = Lu(y, r)) }), T.subscribe(D), !o && c > 0 && (o = new mi({ next: C => T.next(C), error: C => { h = !0, g(), a = Lu(_, i, C), T.error(C) }, complete: () => { u = !0, g(), a = Lu(_, n), T.complete() } }), Ft(b).subscribe(o)) })(s) } } function Lu(e, t, ...i) { if (!0 === t) return void e(); if (!1 === t) return; const n = new mi({ next: () => { n.unsubscribe(), e() } }); return Ft(t(...i)).subscribe(n) } function Bu(e, t) { return mt((i, n) => { let r = null, s = 0, o = !1; const a = () => o && !r && n.complete(); i.subscribe(ft(n, l => { r?.unsubscribe(); let c = 0; const u = s++; Ft(e(l, u)).subscribe(r = ft(n, h => n.next(t ? t(l, h, u, c++) : h), () => { r = null, a() })) }, () => { o = !0, a() })) }) } function $E(e, t) { return e === t } function Re(e) { for (let t in e) if (e[t] === Re) return t; throw Error("Could not find renamed property on target object.") } function Ka(e, t) { for (const i in t) t.hasOwnProperty(i) && !e.hasOwnProperty(i) && (e[i] = t[i]) } function Nt(e) { if ("string" == typeof e) return e; if (Array.isArray(e)) return "[" + e.map(Nt).join(", ") + "]"; if (null == e) return "" + e; if (e.overriddenName) return `${e.overriddenName}`; if (e.name) return `${e.name}`; const t = e.toString(); if (null == t) return "" + t; const i = t.indexOf("\n"); return -1 === i ? t : t.substring(0, i) } function Vu(e, t) { return null == e || "" === e ? null === t ? "" : t : null == t || "" === t ? e : e + " " + t } const GE = Re({ __forward_ref__: Re }); function ae(e) { return e.__forward_ref__ = ae, e.toString = function () { return Nt(this()) }, e } function X(e) { return Hu(e) ? e() : e } function Hu(e) { return "function" == typeof e && e.hasOwnProperty(GE) && e.__forward_ref__ === ae } function Uu(e) { return e && !!e.\u0275providers } const Mg = "https://g.co/ng/security#xss"; class F extends Error { constructor(t, i) { super(function Xa(e, t) { return `NG0${Math.abs(e)}${t ? ": " + t : ""}` }(t, i)), this.code = t } } function te(e) { return "string" == typeof e ? e : null == e ? "" : String(e) } function ju(e, t) { throw new F(-201, !1) } function $n(e, t) { null == e && function Q(e, t, i, n) { throw new Error(`ASSERTION ERROR: ${e}` + (null == n ? "" : ` [Expected=> ${i} ${n} ${t} <=Actual]`)) }(t, e, null, "!=") } function G(e) { return { token: e.token, providedIn: e.providedIn || null, factory: e.factory, value: void 0 } } function Ae(e) { return { providers: e.providers || [], imports: e.imports || [] } } function el(e) { return Ig(e, nl) || Ig(e, Ng) } function Ig(e, t) { return e.hasOwnProperty(t) ? e[t] : null } function tl(e) { return e && (e.hasOwnProperty($u) || e.hasOwnProperty(QE)) ? e[$u] : null } const nl = Re({ \u0275prov: Re }), $u = Re({ \u0275inj: Re }), Ng = Re({ ngInjectableDef: Re }), QE = Re({ ngInjectorDef: Re }); var ge = function (e) { return e[e.Default = 0] = "Default", e[e.Host = 1] = "Host", e[e.Self = 2] = "Self", e[e.SkipSelf = 4] = "SkipSelf", e[e.Optional = 8] = "Optional", e }(ge || {}); let Gu; function _n(e) { const t = Gu; return Gu = e, t } function Og(e, t, i) { const n = el(e); return n && "root" == n.providedIn ? void 0 === n.value ? n.value = n.factory() : n.value : i & ge.Optional ? null : void 0 !== t ? t : void ju(Nt(e)) } const je = globalThis, Co = {}, Zu = "__NG_DI_FLAG__", il = "ngTempTokenPath", eS = /\n/gm, Rg = "__source"; let fs; function er(e) { const t = fs; return fs = e, t } function iS(e, t = ge.Default) { if (void 0 === fs) throw new F(-203, !1); return null === fs ? Og(e, void 0, t) : fs.get(e, t & ge.Optional ? null : void 0, t) } function L(e, t = ge.Default) { return (function Ag() { return Gu }() || iS)(X(e), t) } function fe(e, t = ge.Default) { return L(e, rl(t)) } function rl(e) { return typeof e > "u" || "number" == typeof e ? e : 0 | (e.optional && 8) | (e.host && 1) | (e.self && 2) | (e.skipSelf && 4) } function Ju(e) { const t = []; for (let i = 0; i < e.length; i++) { const n = X(e[i]); if (Array.isArray(n)) { if (0 === n.length) throw new F(900, !1); let r, s = ge.Default; for (let o = 0; o < n.length; o++) { const a = n[o], l = rS(a); "number" == typeof l ? -1 === l ? r = a.token : s |= l : r = a } t.push(L(r, s)) } else t.push(L(n)) } return t } function Eo(e, t) { return e[Zu] = t, e.prototype[Zu] = t, e } function rS(e) { return e[Zu] } function Bi(e) { return { toString: e }.toString() } var sl = function (e) { return e[e.OnPush = 0] = "OnPush", e[e.Default = 1] = "Default", e }(sl || {}), ei = function (e) { return e[e.Emulated = 0] = "Emulated", e[e.None = 2] = "None", e[e.ShadowDom = 3] = "ShadowDom", e }(ei || {}); const Di = {}, Ee = [], ol = Re({ \u0275cmp: Re }), Qu = Re({ \u0275dir: Re }), Ku = Re({ \u0275pipe: Re }), Fg = Re({ \u0275mod: Re }), Vi = Re({ \u0275fac: Re }), So = Re({ __NG_ELEMENT_ID__: Re }), kg = Re({ __NG_ENV_ID__: Re }); function Lg(e, t, i) { let n = e.length; for (; ;) { const r = e.indexOf(t, i); if (-1 === r) return r; if (0 === r || e.charCodeAt(r - 1) <= 32) { const s = t.length; if (r + s === n || e.charCodeAt(r + s) <= 32) return r } i = r + 1 } } function Xu(e, t, i) { let n = 0; for (; n < i.length;) { const r = i[n]; if ("number" == typeof r) { if (0 !== r) break; n++; const s = i[n++], o = i[n++], a = i[n++]; e.setAttribute(t, o, a, s) } else { const s = r, o = i[++n]; Vg(s) ? e.setProperty(t, s, o) : e.setAttribute(t, s, o), n++ } } return n } function Bg(e) { return 3 === e || 4 === e || 6 === e } function Vg(e) { return 64 === e.charCodeAt(0) } function To(e, t) { if (null !== t && 0 !== t.length) if (null === e || 0 === e.length) e = t.slice(); else { let i = -1; for (let n = 0; n < t.length; n++) { const r = t[n]; "number" == typeof r ? i = r : 0 === i || Hg(e, i, r, null, -1 === i || 2 === i ? t[++n] : null) } } return e } function Hg(e, t, i, n, r) { let s = 0, o = e.length; if (-1 === t) o = -1; else for (; s < e.length;) { const a = e[s++]; if ("number" == typeof a) { if (a === t) { o = -1; break } if (a > t) { o = s - 1; break } } } for (; s < e.length;) { const a = e[s]; if ("number" == typeof a) break; if (a === i) { if (null === n) return void (null !== r && (e[s + 1] = r)); if (n === e[s + 1]) return void (e[s + 2] = r) } s++, null !== n && s++, null !== r && s++ } -1 !== o && (e.splice(o, 0, t), s = o + 1), e.splice(s++, 0, i), null !== n && e.splice(s++, 0, n), null !== r && e.splice(s++, 0, r) } const Ug = "ng-template"; function aS(e, t, i) { let n = 0, r = !0; for (; n < e.length;) { let s = e[n++]; if ("string" == typeof s && r) { const o = e[n++]; if (i && "class" === s && -1 !== Lg(o.toLowerCase(), t, 0)) return !0 } else { if (1 === s) { for (; n < e.length && "string" == typeof (s = e[n++]);)if (s.toLowerCase() === t) return !0; return !1 } "number" == typeof s && (r = !1) } } return !1 } function jg(e) { return 4 === e.type && e.value !== Ug } function lS(e, t, i) { return t === (4 !== e.type || i ? e.value : Ug) } function cS(e, t, i) { let n = 4; const r = e.attrs || [], s = function fS(e) { for (let t = 0; t < e.length; t++)if (Bg(e[t])) return t; return e.length }(r); let o = !1; for (let a = 0; a < t.length; a++) { const l = t[a]; if ("number" != typeof l) { if (!o) if (4 & n) { if (n = 2 | 1 & n, "" !== l && !lS(e, l, i) || "" === l && 1 === t.length) { if (ti(n)) return !1; o = !0 } } else { const c = 8 & n ? l : t[++a]; if (8 & n && null !== e.attrs) { if (!aS(e.attrs, c, i)) { if (ti(n)) return !1; o = !0 } continue } const h = uS(8 & n ? "class" : l, r, jg(e), i); if (-1 === h) { if (ti(n)) return !1; o = !0; continue } if ("" !== c) { let g; g = h > s ? "" : r[h + 1].toLowerCase(); const _ = 8 & n ? g : null; if (_ && -1 !== Lg(_, c, 0) || 2 & n && c !== g) { if (ti(n)) return !1; o = !0 } } } } else { if (!o && !ti(n) && !ti(l)) return !1; if (o && ti(l)) continue; o = !1, n = l | 1 & n } } return ti(n) || o } function ti(e) { return 0 == (1 & e) } function uS(e, t, i, n) { if (null === t) return -1; let r = 0; if (n || !i) { let s = !1; for (; r < t.length;) { const o = t[r]; if (o === e) return r; if (3 === o || 6 === o) s = !0; else { if (1 === o || 2 === o) { let a = t[++r]; for (; "string" == typeof a;)a = t[++r]; continue } if (4 === o) break; if (0 === o) { r += 4; continue } } r += s ? 1 : 2 } return -1 } return function hS(e, t) { let i = e.indexOf(4); if (i > -1) for (i++; i < e.length;) { const n = e[i]; if ("number" == typeof n) return -1; if (n === t) return i; i++ } return -1 }(t, e) } function $g(e, t, i = !1) { for (let n = 0; n < t.length; n++)if (cS(e, t[n], i)) return !0; return !1 } function pS(e, t) { e: for (let i = 0; i < t.length; i++) { const n = t[i]; if (e.length === n.length) { for (let r = 0; r < e.length; r++)if (e[r] !== n[r]) continue e; return !0 } } return !1 } function Gg(e, t) { return e ? ":not(" + t.trim() + ")" : t } function gS(e) { let t = e[0], i = 1, n = 2, r = "", s = !1; for (; i < e.length;) { let o = e[i]; if ("string" == typeof o) if (2 & n) { const a = e[++i]; r += "[" + o + (a.length > 0 ? '="' + a + '"' : "") + "]" } else 8 & n ? r += "." + o : 4 & n && (r += " " + o); else "" !== r && !ti(o) && (t += Gg(s, r), r = ""), n = o, s = s || !ti(n); i++ } return "" !== r && (t += Gg(s, r)), t } function et(e) { return Bi(() => { const t = qg(e), i = { ...t, decls: e.decls, vars: e.vars, template: e.template, consts: e.consts || null, ngContentSelectors: e.ngContentSelectors, onPush: e.changeDetection === sl.OnPush, directiveDefs: null, pipeDefs: null, dependencies: t.standalone && e.dependencies || null, getStandaloneInjector: null, signals: e.signals ?? !1, data: e.data || {}, encapsulation: e.encapsulation || ei.Emulated, styles: e.styles || Ee, _: null, schemas: e.schemas || null, tView: null, id: "" }; Yg(i); const n = e.dependencies; return i.directiveDefs = al(n, !1), i.pipeDefs = al(n, !0), i.id = function wS(e) { let t = 0; const i = [e.selectors, e.ngContentSelectors, e.hostVars, e.hostAttrs, e.consts, e.vars, e.decls, e.encapsulation, e.standalone, e.signals, e.exportAs, JSON.stringify(e.inputs), JSON.stringify(e.outputs), Object.getOwnPropertyNames(e.type.prototype), !!e.contentQueries, !!e.viewQuery].join("|"); for (const r of i) t = Math.imul(31, t) + r.charCodeAt(0) << 0; return t += 2147483648, "c" + t }(i), i }) } function vS(e) { return me(e) || Vt(e) } function yS(e) { return null !== e } function Pe(e) { return Bi(() => ({ type: e.type, bootstrap: e.bootstrap || Ee, declarations: e.declarations || Ee, imports: e.imports || Ee, exports: e.exports || Ee, transitiveCompileScopes: null, schemas: e.schemas || null, id: e.id || null })) } function Wg(e, t) { if (null == e) return Di; const i = {}; for (const n in e) if (e.hasOwnProperty(n)) { let r = e[n], s = r; Array.isArray(r) && (s = r[1], r = r[0]), i[r] = n, t && (t[r] = s) } return i } function k(e) { return Bi(() => { const t = qg(e); return Yg(t), t }) } function me(e) { return e[ol] || null } function Vt(e) { return e[Qu] || null } function nn(e) { return e[Ku] || null } function qg(e) { const t = {}; return { type: e.type, providersResolver: null, factory: null, hostBindings: e.hostBindings || null, hostVars: e.hostVars || 0, hostAttrs: e.hostAttrs || null, contentQueries: e.contentQueries || null, declaredInputs: t, inputTransforms: null, inputConfig: e.inputs || Di, exportAs: e.exportAs || null, standalone: !0 === e.standalone, signals: !0 === e.signals, selectors: e.selectors || Ee, viewQuery: e.viewQuery || null, features: e.features || null, setInput: null, findHostDirectiveDefs: null, hostDirectives: null, inputs: Wg(e.inputs, t), outputs: Wg(e.outputs) } } function Yg(e) { e.features?.forEach(t => t(e)) } function al(e, t) { if (!e) return null; const i = t ? nn : vS; return () => ("function" == typeof e ? e() : e).map(n => i(n)).filter(yS) } const ht = 0, H = 1, ie = 2, tt = 3, ni = 4, Io = 5, Yt = 6, hs = 7, vt = 8, tr = 9, ps = 10, ne = 11, No = 12, Zg = 13, gs = 14, yt = 15, Ao = 16, _s = 17, wi = 18, Oo = 19, Jg = 20, nr = 21, Hi = 22, ll = 23, cl = 24, pe = 25, ed = 1, Qg = 2, Ci = 7, ms = 9, Ht = 11; function vn(e) { return Array.isArray(e) && "object" == typeof e[ed] } function rn(e) { return Array.isArray(e) && !0 === e[ed] } function td(e) { return 0 != (4 & e.flags) } function Cr(e) { return e.componentOffset > -1 } function dl(e) { return 1 == (1 & e.flags) } function ii(e) { return !!e.template } function nd(e) { return 0 != (512 & e[ie]) } function Er(e, t) { return e.hasOwnProperty(Vi) ? e[Vi] : null } let IS = je.WeakRef ?? class MS { constructor(t) { this.ref = t } deref() { return this.ref } }, AS = 0, Ei = null, fl = !1; function kt(e) { const t = Ei; return Ei = e, t } class n_ { constructor() { this.id = AS++, this.ref = function NS(e) { return new IS(e) }(this), this.producers = new Map, this.consumers = new Map, this.trackingVersion = 0, this.valueVersion = 0 } consumerPollProducersForChange() { for (const [t, i] of this.producers) { const n = i.producerNode.deref(); if (null != n && i.atTrackingVersion === this.trackingVersion) { if (n.producerPollStatus(i.seenValueVersion)) return !0 } else this.producers.delete(t), n?.consumers.delete(this.id) } return !1 } producerMayHaveChanged() { const t = fl; fl = !0; try { for (const [i, n] of this.consumers) { const r = n.consumerNode.deref(); null != r && r.trackingVersion === n.atTrackingVersion ? r.onConsumerDependencyMayHaveChanged() : (this.consumers.delete(i), r?.producers.delete(this.id)) } } finally { fl = t } } producerAccessed() { if (fl) throw new Error(""); if (null === Ei) return; let t = Ei.producers.get(this.id); void 0 === t ? (t = { consumerNode: Ei.ref, producerNode: this.ref, seenValueVersion: this.valueVersion, atTrackingVersion: Ei.trackingVersion }, Ei.producers.set(this.id, t), this.consumers.set(Ei.id, t)) : (t.seenValueVersion = this.valueVersion, t.atTrackingVersion = Ei.trackingVersion) } get hasProducers() { return this.producers.size > 0 } get producerUpdatesAllowed() { return !1 !== Ei?.consumerAllowSignalWrites } producerPollStatus(t) { return this.valueVersion !== t || (this.onProducerUpdateValueVersion(), this.valueVersion !== t) } } let i_ = null; const s_ = () => { }; class PS extends n_ { constructor(t, i, n) { super(), this.watch = t, this.schedule = i, this.dirty = !1, this.cleanupFn = s_, this.registerOnCleanup = r => { this.cleanupFn = r }, this.consumerAllowSignalWrites = n } notify() { this.dirty || this.schedule(this), this.dirty = !0 } onConsumerDependencyMayHaveChanged() { this.notify() } onProducerUpdateValueVersion() { } run() { if (this.dirty = !1, 0 !== this.trackingVersion && !this.consumerPollProducersForChange()) return; const t = kt(this); this.trackingVersion++; try { this.cleanupFn(), this.cleanupFn = s_, this.watch(this.registerOnCleanup) } finally { kt(t) } } cleanup() { this.cleanupFn() } } class FS { constructor(t, i, n) { this.previousValue = t, this.currentValue = i, this.firstChange = n } isFirstChange() { return this.firstChange } } function sn() { return o_ } function o_(e) { return e.type.prototype.ngOnChanges && (e.setInput = LS), kS } function kS() { const e = l_(this), t = e?.current; if (t) { const i = e.previous; if (i === Di) e.previous = t; else for (let n in t) i[n] = t[n]; e.current = null, this.ngOnChanges(t) } } function LS(e, t, i, n) { const r = this.declaredInputs[i], s = l_(e) || function BS(e, t) { return e[a_] = t }(e, { previous: Di, current: null }), o = s.current || (s.current = {}), a = s.previous, l = a[r]; o[r] = new FS(l && l.currentValue, t, a === Di), e[n] = t } sn.ngInherit = !0; const a_ = "__ngSimpleChanges__"; function l_(e) { return e[a_] || null } const Si = function (e, t, i) { }; function We(e) { for (; Array.isArray(e);)e = e[ht]; return e } function gl(e, t) { return We(t[e]) } function yn(e, t) { return We(t[e.index]) } function d_(e, t) { return e.data[t] } function On(e, t) { const i = t[e]; return vn(i) ? i : i[ht] } function ir(e, t) { return null == t ? null : e[t] } function f_(e) { e[_s] = 0 } function GS(e) { 1024 & e[ie] || (e[ie] |= 1024, p_(e, 1)) } function h_(e) { 1024 & e[ie] && (e[ie] &= -1025, p_(e, -1)) } function p_(e, t) { let i = e[tt]; if (null === i) return; i[Io] += t; let n = i; for (i = i[tt]; null !== i && (1 === t && 1 === n[Io] || -1 === t && 0 === n[Io]);)i[Io] += t, n = i, i = i[tt] } const K = { lFrame: S_(null), bindingsEnabled: !0, skipHydrationRootTNode: null }; function m_() { return K.bindingsEnabled } function ys() { return null !== K.skipHydrationRootTNode } function A() { return K.lFrame.lView } function ve() { return K.lFrame.tView } function on(e) { return K.lFrame.contextLView = e, e[vt] } function an(e) { return K.lFrame.contextLView = null, e } function Ut() { let e = v_(); for (; null !== e && 64 === e.type;)e = e.parent; return e } function v_() { return K.lFrame.currentTNode } function Ti(e, t) { const i = K.lFrame; i.currentTNode = e, i.isParent = t } function cd() { return K.lFrame.isParent } function ud() { K.lFrame.isParent = !1 } function bs() { return K.lFrame.bindingIndex++ } function ji(e) { const t = K.lFrame, i = t.bindingIndex; return t.bindingIndex = t.bindingIndex + e, i } function nT(e, t) { const i = K.lFrame; i.bindingIndex = i.bindingRootIndex = e, dd(t) } function dd(e) { K.lFrame.currentDirectiveIndex = e } function w_() { return K.lFrame.currentQueryIndex } function hd(e) { K.lFrame.currentQueryIndex = e } function rT(e) { const t = e[H]; return 2 === t.type ? t.declTNode : 1 === t.type ? e[Yt] : null } function C_(e, t, i) { if (i & ge.SkipSelf) { let r = t, s = e; for (; !(r = r.parent, null !== r || i & ge.Host || (r = rT(s), null === r || (s = s[gs], 10 & r.type)));); if (null === r) return !1; t = r, e = s } const n = K.lFrame = E_(); return n.currentTNode = t, n.lView = e, !0 } function pd(e) { const t = E_(), i = e[H]; K.lFrame = t, t.currentTNode = i.firstChild, t.lView = e, t.tView = i, t.contextLView = e, t.bindingIndex = i.bindingStartIndex, t.inI18n = !1 } function E_() { const e = K.lFrame, t = null === e ? null : e.child; return null === t ? S_(e) : t } function S_(e) { const t = { currentTNode: null, isParent: !0, lView: null, tView: null, selectedIndex: -1, contextLView: null, elementDepthCount: 0, currentNamespace: null, currentDirectiveIndex: -1, bindingRootIndex: -1, bindingIndex: -1, currentQueryIndex: 0, parent: e, child: null, inI18n: !1 }; return null !== e && (e.child = t), t } function T_() { const e = K.lFrame; return K.lFrame = e.parent, e.currentTNode = null, e.lView = null, e } const M_ = T_; function gd() { const e = T_(); e.isParent = !0, e.tView = null, e.selectedIndex = -1, e.contextLView = null, e.elementDepthCount = 0, e.currentDirectiveIndex = -1, e.currentNamespace = null, e.bindingRootIndex = -1, e.bindingIndex = -1, e.currentQueryIndex = 0 } function cn() { return K.lFrame.selectedIndex } function Sr(e) { K.lFrame.selectedIndex = e } function ot() { const e = K.lFrame; return d_(e.tView, e.selectedIndex) } let N_ = !0; function _l() { return N_ } function rr(e) { N_ = e } function ml(e, t) { for (let i = t.directiveStart, n = t.directiveEnd; i < n; i++) { const s = e.data[i].type.prototype, { ngAfterContentInit: o, ngAfterContentChecked: a, ngAfterViewInit: l, ngAfterViewChecked: c, ngOnDestroy: u } = s; o && (e.contentHooks ??= []).push(-i, o), a && ((e.contentHooks ??= []).push(i, a), (e.contentCheckHooks ??= []).push(i, a)), l && (e.viewHooks ??= []).push(-i, l), c && ((e.viewHooks ??= []).push(i, c), (e.viewCheckHooks ??= []).push(i, c)), null != u && (e.destroyHooks ??= []).push(i, u) } } function vl(e, t, i) { A_(e, t, 3, i) } function yl(e, t, i, n) { (3 & e[ie]) === i && A_(e, t, i, n) } function _d(e, t) { let i = e[ie]; (3 & i) === t && (i &= 8191, i += 1, e[ie] = i) } function A_(e, t, i, n) { const s = n ?? -1, o = t.length - 1; let a = 0; for (let l = void 0 !== n ? 65535 & e[_s] : 0; l < o; l++)if ("number" == typeof t[l + 1]) { if (a = t[l], null != n && a >= n) break } else t[l] < 0 && (e[_s] += 65536), (a < s || -1 == s) && (fT(e, i, t, l), e[_s] = (4294901760 & e[_s]) + l + 2), l++ } function O_(e, t) { Si(4, e, t); const i = kt(null); try { t.call(e) } finally { kt(i), Si(5, e, t) } } function fT(e, t, i, n) { const r = i[n] < 0, s = i[n + 1], a = e[r ? -i[n] : i[n]]; r ? e[ie] >> 13 < e[_s] >> 16 && (3 & e[ie]) === t && (e[ie] += 8192, O_(a, s)) : O_(a, s) } const Ds = -1; class Po { constructor(t, i, n) { this.factory = t, this.resolving = !1, this.canSeeViewProviders = i, this.injectImpl = n } } function vd(e) { return e !== Ds } function Fo(e) { return 32767 & e } function ko(e, t) { let i = function _T(e) { return e >> 16 }(e), n = t; for (; i > 0;)n = n[gs], i--; return n } let yd = !0; function bl(e) { const t = yd; return yd = e, t } const x_ = 255, R_ = 5; let mT = 0; const Mi = {}; function Dl(e, t) { const i = P_(e, t); if (-1 !== i) return i; const n = t[H]; n.firstCreatePass && (e.injectorIndex = t.length, bd(n.data, e), bd(t, null), bd(n.blueprint, null)); const r = wl(e, t), s = e.injectorIndex; if (vd(r)) { const o = Fo(r), a = ko(r, t), l = a[H].data; for (let c = 0; c < 8; c++)t[s + c] = a[o + c] | l[o + c] } return t[s + 8] = r, s } function bd(e, t) { e.push(0, 0, 0, 0, 0, 0, 0, 0, t) } function P_(e, t) { return -1 === e.injectorIndex || e.parent && e.parent.injectorIndex === e.injectorIndex || null === t[e.injectorIndex + 8] ? -1 : e.injectorIndex } function wl(e, t) { if (e.parent && -1 !== e.parent.injectorIndex) return e.parent.injectorIndex; let i = 0, n = null, r = t; for (; null !== r;) { if (n = U_(r), null === n) return Ds; if (i++, r = r[gs], -1 !== n.injectorIndex) return n.injectorIndex | i << 16 } return Ds } function Dd(e, t, i) { !function vT(e, t, i) { let n; "string" == typeof i ? n = i.charCodeAt(0) || 0 : i.hasOwnProperty(So) && (n = i[So]), null == n && (n = i[So] = mT++); const r = n & x_; t.data[e + (r >> R_)] |= 1 << r }(e, t, i) } function F_(e, t, i) { if (i & ge.Optional || void 0 !== e) return e; ju() } function k_(e, t, i, n) { if (i & ge.Optional && void 0 === n && (n = null), !(i & (ge.Self | ge.Host))) { const r = e[tr], s = _n(void 0); try { return r ? r.get(t, n, i & ge.Optional) : Og(t, n, i & ge.Optional) } finally { _n(s) } } return F_(n, 0, i) } function L_(e, t, i, n = ge.Default, r) { if (null !== e) { if (2048 & t[ie] && !(n & ge.Self)) { const o = function ET(e, t, i, n, r) { let s = e, o = t; for (; null !== s && null !== o && 2048 & o[ie] && !(512 & o[ie]);) { const a = B_(s, o, i, n | ge.Self, Mi); if (a !== Mi) return a; let l = s.parent; if (!l) { const c = o[Jg]; if (c) { const u = c.get(i, Mi, n); if (u !== Mi) return u } l = U_(o), o = o[gs] } s = l } return r }(e, t, i, n, Mi); if (o !== Mi) return o } const s = B_(e, t, i, n, Mi); if (s !== Mi) return s } return k_(t, i, n, r) } function B_(e, t, i, n, r) { const s = function DT(e) { if ("string" == typeof e) return e.charCodeAt(0) || 0; const t = e.hasOwnProperty(So) ? e[So] : void 0; return "number" == typeof t ? t >= 0 ? t & x_ : CT : t }(i); if ("function" == typeof s) { if (!C_(t, e, n)) return n & ge.Host ? F_(r, 0, n) : k_(t, i, n, r); try { let o; if (o = s(n), null != o || n & ge.Optional) return o; ju() } finally { M_() } } else if ("number" == typeof s) { let o = null, a = P_(e, t), l = Ds, c = n & ge.Host ? t[yt][Yt] : null; for ((-1 === a || n & ge.SkipSelf) && (l = -1 === a ? wl(e, t) : t[a + 8], l !== Ds && H_(n, !1) ? (o = t[H], a = Fo(l), t = ko(l, t)) : a = -1); -1 !== a;) { const u = t[H]; if (V_(s, a, u.data)) { const h = bT(a, t, i, o, n, c); if (h !== Mi) return h } l = t[a + 8], l !== Ds && H_(n, t[H].data[a + 8] === c) && V_(s, a, t) ? (o = u, a = Fo(l), t = ko(l, t)) : a = -1 } } return r } function bT(e, t, i, n, r, s) { const o = t[H], a = o.data[e + 8], u = Cl(a, o, i, null == n ? Cr(a) && yd : n != o && 0 != (3 & a.type), r & ge.Host && s === a); return null !== u ? Tr(t, o, u, a) : Mi } function Cl(e, t, i, n, r) { const s = e.providerIndexes, o = t.data, a = 1048575 & s, l = e.directiveStart, u = s >> 20, g = r ? a + u : e.directiveEnd; for (let _ = n ? a : a + u; _ < g; _++) { const y = o[_]; if (_ < l && i === y || _ >= l && y.type === i) return _ } if (r) { const _ = o[l]; if (_ && ii(_) && _.type === i) return l } return null } function Tr(e, t, i, n) { let r = e[i]; const s = t.data; if (function hT(e) { return e instanceof Po }(r)) { const o = r; o.resolving && function zE(e, t) { const i = t ? `. Dependency path: ${t.join(" > ")} > ${e}` : ""; throw new F(-200, `Circular dependency in DI detected for ${e}${i}`) }(function Ne(e) { return "function" == typeof e ? e.name || e.toString() : "object" == typeof e && null != e && "function" == typeof e.type ? e.type.name || e.type.toString() : te(e) }(s[i])); const a = bl(o.canSeeViewProviders); o.resolving = !0; const c = o.injectImpl ? _n(o.injectImpl) : null; C_(e, n, ge.Default); try { r = e[i] = o.factory(void 0, s, e, n), t.firstCreatePass && i >= n.directiveStart && function dT(e, t, i) { const { ngOnChanges: n, ngOnInit: r, ngDoCheck: s } = t.type.prototype; if (n) { const o = o_(t); (i.preOrderHooks ??= []).push(e, o), (i.preOrderCheckHooks ??= []).push(e, o) } r && (i.preOrderHooks ??= []).push(0 - e, r), s && ((i.preOrderHooks ??= []).push(e, s), (i.preOrderCheckHooks ??= []).push(e, s)) }(i, s[i], t) } finally { null !== c && _n(c), bl(a), o.resolving = !1, M_() } } return r } function V_(e, t, i) { return !!(i[t + (e >> R_)] & 1 << e) } function H_(e, t) { return !(e & ge.Self || e & ge.Host && t) } class un { constructor(t, i) { this._tNode = t, this._lView = i } get(t, i, n) { return L_(this._tNode, this._lView, t, rl(n), i) } } function CT() { return new un(Ut(), A()) } function St(e) { return Bi(() => { const t = e.prototype.constructor, i = t[Vi] || wd(t), n = Object.prototype; let r = Object.getPrototypeOf(e.prototype).constructor; for (; r && r !== n;) { const s = r[Vi] || wd(r); if (s && s !== i) return s; r = Object.getPrototypeOf(r) } return s => new s }) } function wd(e) { return Hu(e) ? () => { const t = wd(X(e)); return t && t() } : Er(e) } function U_(e) { const t = e[H], i = t.type; return 2 === i ? t.declTNode : 1 === i ? e[Yt] : null } const Es = "__parameters__"; function Ts(e, t, i) { return Bi(() => { const n = function Cd(e) { return function (...i) { if (e) { const n = e(...i); for (const r in n) this[r] = n[r] } } }(t); function r(...s) { if (this instanceof r) return n.apply(this, s), this; const o = new r(...s); return a.annotation = o, a; function a(l, c, u) { const h = l.hasOwnProperty(Es) ? l[Es] : Object.defineProperty(l, Es, { value: [] })[Es]; for (; h.length <= u;)h.push(null); return (h[u] = h[u] || []).push(o), l } } return i && (r.prototype = Object.create(i.prototype)), r.prototype.ngMetadataName = e, r.annotationCls = r, r }) } function Is(e, t) { e.forEach(i => Array.isArray(i) ? Is(i, t) : t(i)) } function $_(e, t, i) { t >= e.length ? e.push(i) : e.splice(t, 0, i) } function El(e, t) { return t >= e.length - 1 ? e.pop() : e.splice(t, 1)[0] } function Vo(e, t) { const i = []; for (let n = 0; n < e; n++)i.push(t); return i } function xn(e, t, i) { let n = Ns(e, t); return n >= 0 ? e[1 | n] = i : (n = ~n, function OT(e, t, i, n) { let r = e.length; if (r == t) e.push(i, n); else if (1 === r) e.push(n, e[0]), e[0] = i; else { for (r--, e.push(e[r - 1], e[r]); r > t;)e[r] = e[r - 2], r--; e[t] = i, e[t + 1] = n } }(e, n, t, i)), n } function Ed(e, t) { const i = Ns(e, t); if (i >= 0) return e[1 | i] } function Ns(e, t) { return function G_(e, t, i) { let n = 0, r = e.length >> i; for (; r !== n;) { const s = n + (r - n >> 1), o = e[s << i]; if (t === o) return s << i; o > t ? r = s : n = s + 1 } return ~(r << i) }(e, t, 1) } const Td = Eo(Ts("Optional"), 8), Md = Eo(Ts("SkipSelf"), 4); function Al(e) { return 128 == (128 & e.flags) } var sr = function (e) { return e[e.Important = 1] = "Important", e[e.DashCase = 2] = "DashCase", e }(sr || {}); const Od = new Map; let tM = 0; const Rd = "__ngContext__"; function Zt(e, t) { vn(t) ? (e[Rd] = t[Oo], function iM(e) { Od.set(e[Oo], e) }(t)) : e[Rd] = t } let Pd; function Fd(e, t) { return Pd(e, t) } function jo(e) { const t = e[tt]; return rn(t) ? t[tt] : t } function um(e) { return fm(e[No]) } function dm(e) { return fm(e[ni]) } function fm(e) { for (; null !== e && !rn(e);)e = e[ni]; return e } function xs(e, t, i, n, r) { if (null != n) { let s, o = !1; rn(n) ? s = n : vn(n) && (o = !0, n = n[ht]); const a = We(n); 0 === e && null !== i ? null == r ? _m(t, i, a) : Mr(t, i, a, r || null, !0) : 1 === e && null !== i ? Mr(t, i, a, r || null, !0) : 2 === e ? function Ll(e, t, i) { const n = Fl(e, t); n && function wM(e, t, i, n) { e.removeChild(t, i, n) }(e, n, t, i) }(t, a, o) : 3 === e && t.destroyNode(a), null != s && function SM(e, t, i, n, r) { const s = i[Ci]; s !== We(i) && xs(t, e, n, s, r); for (let a = Ht; a < i.length; a++) { const l = i[a]; Go(l[H], l, e, t, n, s) } }(t, e, s, i, r) } } function Rl(e, t, i) { return e.createElement(t, i) } function pm(e, t) { const i = e[ms], n = i.indexOf(t); h_(t), i.splice(n, 1) } function Pl(e, t) { if (e.length <= Ht) return; const i = Ht + t, n = e[i]; if (n) { const r = n[Ao]; null !== r && r !== e && pm(r, n), t > 0 && (e[i - 1][ni] = n[ni]); const s = El(e, Ht + t); !function pM(e, t) { Go(e, t, t[ne], 2, null, null), t[ht] = null, t[Yt] = null }(n[H], n); const o = s[wi]; null !== o && o.detachView(s[H]), n[tt] = null, n[ni] = null, n[ie] &= -129 } return n } function Ld(e, t) { if (!(256 & t[ie])) { const i = t[ne]; t[ll]?.destroy(), t[cl]?.destroy(), i.destroyNode && Go(e, t, i, 3, null, null), function mM(e) { let t = e[No]; if (!t) return Bd(e[H], e); for (; t;) { let i = null; if (vn(t)) i = t[No]; else { const n = t[Ht]; n && (i = n) } if (!i) { for (; t && !t[ni] && t !== e;)vn(t) && Bd(t[H], t), t = t[tt]; null === t && (t = e), vn(t) && Bd(t[H], t), i = t && t[ni] } t = i } }(t) } } function Bd(e, t) { if (!(256 & t[ie])) { t[ie] &= -129, t[ie] |= 256, function DM(e, t) { let i; if (null != e && null != (i = e.destroyHooks)) for (let n = 0; n < i.length; n += 2) { const r = t[i[n]]; if (!(r instanceof Po)) { const s = i[n + 1]; if (Array.isArray(s)) for (let o = 0; o < s.length; o += 2) { const a = r[s[o]], l = s[o + 1]; Si(4, a, l); try { l.call(a) } finally { Si(5, a, l) } } else { Si(4, r, s); try { s.call(r) } finally { Si(5, r, s) } } } } }(e, t), function bM(e, t) { const i = e.cleanup, n = t[hs]; if (null !== i) for (let s = 0; s < i.length - 1; s += 2)if ("string" == typeof i[s]) { const o = i[s + 3]; o >= 0 ? n[o]() : n[-o].unsubscribe(), s += 2 } else i[s].call(n[i[s + 1]]); null !== n && (t[hs] = null); const r = t[nr]; if (null !== r) { t[nr] = null; for (let s = 0; s < r.length; s++)(0, r[s])() } }(e, t), 1 === t[H].type && t[ne].destroy(); const i = t[Ao]; if (null !== i && rn(t[tt])) { i !== t[tt] && pm(i, t); const n = t[wi]; null !== n && n.detachView(e) } !function rM(e) { Od.delete(e[Oo]) }(t) } } function Vd(e, t, i) { return function gm(e, t, i) { let n = t; for (; null !== n && 40 & n.type;)n = (t = n).parent; if (null === n) return i[ht]; { const { componentOffset: r } = n; if (r > -1) { const { encapsulation: s } = e.data[n.directiveStart + r]; if (s === ei.None || s === ei.Emulated) return null } return yn(n, i) } }(e, t.parent, i) } function Mr(e, t, i, n, r) { e.insertBefore(t, i, n, r) } function _m(e, t, i) { e.appendChild(t, i) } function mm(e, t, i, n, r) { null !== n ? Mr(e, t, i, n, r) : _m(e, t, i) } function Fl(e, t) { return e.parentNode(t) } function vm(e, t, i) { return bm(e, t, i) } let Hd, Bl, Gd, Vl, bm = function ym(e, t, i) { return 40 & e.type ? yn(e, i) : null }; function kl(e, t, i, n) { const r = Vd(e, n, t), s = t[ne], a = vm(n.parent || t[Yt], n, t); if (null != r) if (Array.isArray(i)) for (let l = 0; l < i.length; l++)mm(s, r, i[l], a, !1); else mm(s, r, i, a, !1); void 0 !== Hd && Hd(s, n, t, i, r) } function $o(e, t) { if (null !== t) { const i = t.type; if (3 & i) return yn(t, e); if (4 & i) return Ud(-1, e[t.index]); if (8 & i) { const n = t.child; if (null !== n) return $o(e, n); { const r = e[t.index]; return rn(r) ? Ud(-1, r) : We(r) } } if (32 & i) return Fd(t, e)() || We(e[t.index]); { const n = wm(e, t); return null !== n ? Array.isArray(n) ? n[0] : $o(jo(e[yt]), n) : $o(e, t.next) } } return null } function wm(e, t) { return null !== t ? e[yt][Yt].projection[t.projection] : null } function Ud(e, t) { const i = Ht + e + 1; if (i < t.length) { const n = t[i], r = n[H].firstChild; if (null !== r) return $o(n, r) } return t[Ci] } function jd(e, t, i, n, r, s, o) { for (; null != i;) { const a = n[i.index], l = i.type; if (o && 0 === t && (a && Zt(We(a), n), i.flags |= 2), 32 != (32 & i.flags)) if (8 & l) jd(e, t, i.child, n, r, s, !1), xs(t, e, r, a, s); else if (32 & l) { const c = Fd(i, n); let u; for (; u = c();)xs(t, e, r, u, s); xs(t, e, r, a, s) } else 16 & l ? Em(e, t, n, i, r, s) : xs(t, e, r, a, s); i = o ? i.projectionNext : i.next } } function Go(e, t, i, n, r, s) { jd(i, n, e.firstChild, t, r, s, !1) } function Em(e, t, i, n, r, s) { const o = i[yt], l = o[Yt].projection[n.projection]; if (Array.isArray(l)) for (let c = 0; c < l.length; c++)xs(t, e, r, l[c], s); else { let c = l; const u = o[tt]; Al(n) && (c.flags |= 128), jd(e, t, c, u, r, s, !0) } } function Sm(e, t, i) { "" === i ? e.removeAttribute(t, "class") : e.setAttribute(t, "class", i) } function Tm(e, t, i) { const { mergedAttrs: n, classes: r, styles: s } = i; null !== n && Xu(e, t, n), null !== r && Sm(e, t, r), null !== s && function MM(e, t, i) { e.setAttribute(t, "style", i) }(e, t, s) } function Rs(e) { return function $d() { if (void 0 === Bl && (Bl = null, je.trustedTypes)) try { Bl = je.trustedTypes.createOperation("angular", { createHTML: e => e, createScript: e => e, createScriptURL: e => e }) } catch { } return Bl }()?.createHTML(e) || e } function Ps() { if (void 0 !== Gd) return Gd; if (typeof document < "u") return document; throw new F(210, !1) } function Mm(e) { return function zd() { if (void 0 === Vl && (Vl = null, je.trustedTypes)) try { Vl = je.trustedTypes.createOperation("angular#unsafe-bypass", { createHTML: e => e, createScript: e => e, createScriptURL: e => e }) } catch { } return Vl }()?.createHTML(e) || e } class Am { constructor(t) { this.changingThisBreaksApplicationSecurity = t } toString() { return `SafeValue must use [property]=binding: ${this.changingThisBreaksApplicationSecurity} (see ${Mg})` } } function or(e) { return e instanceof Am ? e.changingThisBreaksApplicationSecurity : e } function zo(e, t) { const i = function LM(e) { return e instanceof Am && e.getTypeName() || null }(e); if (null != i && i !== t) { if ("ResourceURL" === i && "URL" === t) return !0; throw new Error(`Required a safe ${t}, got a ${i} (see ${Mg})`) } return i === t } class BM { constructor(t) { this.inertDocumentHelper = t } getInertBodyElement(t) { t = "" + t; try { const i = (new window.DOMParser).parseFromString(Rs(t), "text/html").body; return null === i ? this.inertDocumentHelper.getInertBodyElement(t) : (i.removeChild(i.firstChild), i) } catch { return null } } } class VM { constructor(t) { this.defaultDoc = t, this.inertDocument = this.defaultDoc.implementation.createHTMLDocument("sanitization-inert") } getInertBodyElement(t) { const i = this.inertDocument.createElement("template"); return i.innerHTML = Rs(t), i } } const UM = /^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:\/?#]*(?:[\/?#]|$))/i; function Wd(e) { return (e = String(e)).match(UM) ? e : "unsafe:" + e } function $i(e) { const t = {}; for (const i of e.split(",")) t[i] = !0; return t } function Wo(...e) { const t = {}; for (const i of e) for (const n in i) i.hasOwnProperty(n) && (t[n] = !0); return t } const xm = $i("area,br,col,hr,img,wbr"), Rm = $i("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"), Pm = $i("rp,rt"), qd = Wo(xm, Wo(Rm, $i("address,article,aside,blockquote,caption,center,del,details,dialog,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5,h6,header,hgroup,hr,ins,main,map,menu,nav,ol,pre,section,summary,table,ul")), Wo(Pm, $i("a,abbr,acronym,audio,b,bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,picture,q,ruby,rp,rt,s,samp,small,source,span,strike,strong,sub,sup,time,track,tt,u,var,video")), Wo(Pm, Rm)), Yd = $i("background,cite,href,itemtype,longdesc,poster,src,xlink:href"), Fm = Wo(Yd, $i("abbr,accesskey,align,alt,autoplay,axis,bgcolor,border,cellpadding,cellspacing,class,clear,color,cols,colspan,compact,controls,coords,datetime,default,dir,download,face,headers,height,hidden,hreflang,hspace,ismap,itemscope,itemprop,kind,label,lang,language,loop,media,muted,nohref,nowrap,open,preload,rel,rev,role,rows,rowspan,rules,scope,scrolling,shape,size,sizes,span,srclang,srcset,start,summary,tabindex,target,title,translate,type,usemap,valign,value,vspace,width"), $i("aria-activedescendant,aria-atomic,aria-autocomplete,aria-busy,aria-checked,aria-colcount,aria-colindex,aria-colspan,aria-controls,aria-current,aria-describedby,aria-details,aria-disabled,aria-dropeffect,aria-errormessage,aria-expanded,aria-flowto,aria-grabbed,aria-haspopup,aria-hidden,aria-invalid,aria-keyshortcuts,aria-label,aria-labelledby,aria-level,aria-live,aria-modal,aria-multiline,aria-multiselectable,aria-orientation,aria-owns,aria-placeholder,aria-posinset,aria-pressed,aria-readonly,aria-relevant,aria-required,aria-roledescription,aria-rowcount,aria-rowindex,aria-rowspan,aria-selected,aria-setsize,aria-sort,aria-valuemax,aria-valuemin,aria-valuenow,aria-valuetext")), jM = $i("script,style,template"); class $M { constructor() { this.sanitizedSomething = !1, this.buf = [] } sanitizeChildren(t) { let i = t.firstChild, n = !0; for (; i;)if (i.nodeType === Node.ELEMENT_NODE ? n = this.startElement(i) : i.nodeType === Node.TEXT_NODE ? this.chars(i.nodeValue) : this.sanitizedSomething = !0, n && i.firstChild) i = i.firstChild; else for (; i;) { i.nodeType === Node.ELEMENT_NODE && this.endElement(i); let r = this.checkClobberedElement(i, i.nextSibling); if (r) { i = r; break } i = this.checkClobberedElement(i, i.parentNode) } return this.buf.join("") } startElement(t) { const i = t.nodeName.toLowerCase(); if (!qd.hasOwnProperty(i)) return this.sanitizedSomething = !0, !jM.hasOwnProperty(i); this.buf.push("<"), this.buf.push(i); const n = t.attributes; for (let r = 0; r < n.length; r++) { const s = n.item(r), o = s.name, a = o.toLowerCase(); if (!Fm.hasOwnProperty(a)) { this.sanitizedSomething = !0; continue } let l = s.value; Yd[a] && (l = Wd(l)), this.buf.push(" ", o, '="', km(l), '"') } return this.buf.push(">"), !0 } endElement(t) { const i = t.nodeName.toLowerCase(); qd.hasOwnProperty(i) && !xm.hasOwnProperty(i) && (this.buf.push("")) } chars(t) { this.buf.push(km(t)) } checkClobberedElement(t, i) { if (i && (t.compareDocumentPosition(i) & Node.DOCUMENT_POSITION_CONTAINED_BY) === Node.DOCUMENT_POSITION_CONTAINED_BY) throw new Error(`Failed to sanitize html because the element is clobbered: ${t.outerHTML}`); return i } } const GM = /[\uD800-\uDBFF][\uDC00-\uDFFF]/g, zM = /([^\#-~ |!])/g; function km(e) { return e.replace(/&/g, "&").replace(GM, function (t) { return "&#" + (1024 * (t.charCodeAt(0) - 55296) + (t.charCodeAt(1) - 56320) + 65536) + ";" }).replace(zM, function (t) { return "&#" + t.charCodeAt(0) + ";" }).replace(//g, ">") } let Hl; function Zd(e) { return "content" in e && function qM(e) { return e.nodeType === Node.ELEMENT_NODE && "TEMPLATE" === e.nodeName }(e) ? e.content : null } var Fs = function (e) { return e[e.NONE = 0] = "NONE", e[e.HTML = 1] = "HTML", e[e.STYLE = 2] = "STYLE", e[e.SCRIPT = 3] = "SCRIPT", e[e.URL = 4] = "URL", e[e.RESOURCE_URL = 5] = "RESOURCE_URL", e }(Fs || {}); function Lm(e) { const t = qo(); return t ? Mm(t.sanitize(Fs.HTML, e) || "") : zo(e, "HTML") ? Mm(or(e)) : function WM(e, t) { let i = null; try { Hl = Hl || function Om(e) { const t = new VM(e); return function HM() { try { return !!(new window.DOMParser).parseFromString(Rs(""), "text/html") } catch { return !1 } }() ? new BM(t) : t }(e); let n = t ? String(t) : ""; i = Hl.getInertBodyElement(n); let r = 5, s = n; do { if (0 === r) throw new Error("Failed to sanitize html because the input is unstable"); r--, n = s, s = i.innerHTML, i = Hl.getInertBodyElement(n) } while (n !== s); return Rs((new $M).sanitizeChildren(Zd(i) || i)) } finally { if (i) { const n = Zd(i) || i; for (; n.firstChild;)n.removeChild(n.firstChild) } } }(Ps(), te(e)) } function Jd(e) { const t = qo(); return t ? t.sanitize(Fs.URL, e) || "" : zo(e, "URL") ? or(e) : Wd(te(e)) } function qo() { const e = A(); return e && e[ps].sanitizer } class W { constructor(t, i) { this._desc = t, this.ngMetadataName = "InjectionToken", this.\u0275prov = void 0, "number" == typeof i ? this.__NG_ELEMENT_ID__ = i : void 0 !== i && (this.\u0275prov = G({ token: this, providedIn: i.providedIn || "root", factory: i.factory })) } get multi() { return this } toString() { return `InjectionToken ${this._desc}` } } const Ul = new W("ENVIRONMENT_INITIALIZER"), Vm = new W("INJECTOR", -1), Hm = new W("INJECTOR_DEF_TYPES"); class Qd { get(t, i = Co) { if (i === Co) { const n = new Error(`NullInjectorError: No provider for ${Nt(t)}!`); throw n.name = "NullInjectorError", n } return i } } function eI(...e) { return { \u0275providers: Um(0, e), \u0275fromNgModule: !0 } } function Um(e, ...t) { const i = [], n = new Set; let r; const s = o => { i.push(o) }; return Is(t, o => { const a = o; jl(a, s, [], n) && (r ||= [], r.push(a)) }), void 0 !== r && jm(r, s), i } function jm(e, t) { for (let i = 0; i < e.length; i++) { const { ngModule: n, providers: r } = e[i]; Xd(r, s => { t(s, n) }) } } function jl(e, t, i, n) { if (!(e = X(e))) return !1; let r = null, s = tl(e); const o = !s && me(e); if (s || o) { if (o && !o.standalone) return !1; r = e } else { const l = e.ngModule; if (s = tl(l), !s) return !1; r = l } const a = n.has(r); if (o) { if (a) return !1; if (n.add(r), o.dependencies) { const l = "function" == typeof o.dependencies ? o.dependencies() : o.dependencies; for (const c of l) jl(c, t, i, n) } } else { if (!s) return !1; { if (null != s.imports && !a) { let c; n.add(r); try { Is(s.imports, u => { jl(u, t, i, n) && (c ||= [], c.push(u)) }) } finally { } void 0 !== c && jm(c, t) } if (!a) { const c = Er(r) || (() => new r); t({ provide: r, useFactory: c, deps: Ee }, r), t({ provide: Hm, useValue: r, multi: !0 }, r), t({ provide: Ul, useValue: () => L(r), multi: !0 }, r) } const l = s.providers; if (null != l && !a) { const c = e; Xd(l, u => { t(u, c) }) } } } return r !== e && void 0 !== e.providers } function Xd(e, t) { for (let i of e) Uu(i) && (i = i.\u0275providers), Array.isArray(i) ? Xd(i, t) : t(i) } const tI = Re({ provide: String, useValue: Re }); function ef(e) { return null !== e && "object" == typeof e && tI in e } function Ir(e) { return "function" == typeof e } const tf = new W("Set Injector scope."), $l = {}, iI = {}; let nf; function Gl() { return void 0 === nf && (nf = new Qd), nf } class zn { } class zl extends zn { get destroyed() { return this._destroyed } constructor(t, i, n, r) { super(), this.parent = i, this.source = n, this.scopes = r, this.records = new Map, this._ngOnDestroyHooks = new Set, this._onDestroyHooks = [], this._destroyed = !1, sf(t, o => this.processProvider(o)), this.records.set(Vm, ks(void 0, this)), r.has("environment") && this.records.set(zn, ks(void 0, this)); const s = this.records.get(tf); null != s && "string" == typeof s.value && this.scopes.add(s.value), this.injectorDefTypes = new Set(this.get(Hm.multi, Ee, ge.Self)) } destroy() { this.assertNotDestroyed(), this._destroyed = !0; try { for (const i of this._ngOnDestroyHooks) i.ngOnDestroy(); const t = this._onDestroyHooks; this._onDestroyHooks = []; for (const i of t) i() } finally { this.records.clear(), this._ngOnDestroyHooks.clear(), this.injectorDefTypes.clear() } } onDestroy(t) { return this.assertNotDestroyed(), this._onDestroyHooks.push(t), () => this.removeOnDestroy(t) } runInContext(t) { this.assertNotDestroyed(); const i = er(this), n = _n(void 0); try { return t() } finally { er(i), _n(n) } } get(t, i = Co, n = ge.Default) { if (this.assertNotDestroyed(), t.hasOwnProperty(kg)) return t[kg](this); n = rl(n); const s = er(this), o = _n(void 0); try { if (!(n & ge.SkipSelf)) { let l = this.records.get(t); if (void 0 === l) { const c = function lI(e) { return "function" == typeof e || "object" == typeof e && e instanceof W }(t) && el(t); l = c && this.injectableDefInScope(c) ? ks(rf(t), $l) : null, this.records.set(t, l) } if (null != l) return this.hydrate(t, l) } return (n & ge.Self ? Gl() : this.parent).get(t, i = n & ge.Optional && i === Co ? null : i) } catch (a) { if ("NullInjectorError" === a.name) { if ((a[il] = a[il] || []).unshift(Nt(t)), s) throw a; return function sS(e, t, i, n) { const r = e[il]; throw t[Rg] && r.unshift(t[Rg]), e.message = function oS(e, t, i, n = null) { e = e && "\n" === e.charAt(0) && "\u0275" == e.charAt(1) ? e.slice(2) : e; let r = Nt(t); if (Array.isArray(t)) r = t.map(Nt).join(" -> "); else if ("object" == typeof t) { let s = []; for (let o in t) if (t.hasOwnProperty(o)) { let a = t[o]; s.push(o + ":" + ("string" == typeof a ? JSON.stringify(a) : Nt(a))) } r = `{${s.join(", ")}}` } return `${i}${n ? "(" + n + ")" : ""}[${r}]: ${e.replace(eS, "\n ")}` }("\n" + e.message, r, i, n), e.ngTokenPath = r, e[il] = null, e }(a, t, "R3InjectorError", this.source) } throw a } finally { _n(o), er(s) } } resolveInjectorInitializers() { const t = er(this), i = _n(void 0); try { const r = this.get(Ul.multi, Ee, ge.Self); for (const s of r) s() } finally { er(t), _n(i) } } toString() { const t = [], i = this.records; for (const n of i.keys()) t.push(Nt(n)); return `R3Injector[${t.join(", ")}]` } assertNotDestroyed() { if (this._destroyed) throw new F(205, !1) } processProvider(t) { let i = Ir(t = X(t)) ? t : X(t && t.provide); const n = function sI(e) { return ef(e) ? ks(void 0, e.useValue) : ks(zm(e), $l) }(t); if (Ir(t) || !0 !== t.multi) this.records.get(i); else { let r = this.records.get(i); r || (r = ks(void 0, $l, !0), r.factory = () => Ju(r.multi), this.records.set(i, r)), i = t, r.multi.push(t) } this.records.set(i, n) } hydrate(t, i) { return i.value === $l && (i.value = iI, i.value = i.factory()), "object" == typeof i.value && i.value && function aI(e) { return null !== e && "object" == typeof e && "function" == typeof e.ngOnDestroy }(i.value) && this._ngOnDestroyHooks.add(i.value), i.value } injectableDefInScope(t) { if (!t.providedIn) return !1; const i = X(t.providedIn); return "string" == typeof i ? "any" === i || this.scopes.has(i) : this.injectorDefTypes.has(i) } removeOnDestroy(t) { const i = this._onDestroyHooks.indexOf(t); -1 !== i && this._onDestroyHooks.splice(i, 1) } } function rf(e) { const t = el(e), i = null !== t ? t.factory : Er(e); if (null !== i) return i; if (e instanceof W) throw new F(204, !1); if (e instanceof Function) return function rI(e) { const t = e.length; if (t > 0) throw Vo(t, "?"), new F(204, !1); const i = function JE(e) { return e && (e[nl] || e[Ng]) || null }(e); return null !== i ? () => i.factory(e) : () => new e }(e); throw new F(204, !1) } function zm(e, t, i) { let n; if (Ir(e)) { const r = X(e); return Er(r) || rf(r) } if (ef(e)) n = () => X(e.useValue); else if (function Gm(e) { return !(!e || !e.useFactory) }(e)) n = () => e.useFactory(...Ju(e.deps || [])); else if (function $m(e) { return !(!e || !e.useExisting) }(e)) n = () => L(X(e.useExisting)); else { const r = X(e && (e.useClass || e.provide)); if (!function oI(e) { return !!e.deps }(e)) return Er(r) || rf(r); n = () => new r(...Ju(e.deps)) } return n } function ks(e, t, i = !1) { return { factory: e, value: t, multi: i ? [] : void 0 } } function sf(e, t) { for (const i of e) Array.isArray(i) ? sf(i, t) : i && Uu(i) ? sf(i.\u0275providers, t) : t(i) } const Wl = new W("AppId", { providedIn: "root", factory: () => cI }), cI = "ng", Wm = new W("Platform Initializer"), Nr = new W("Platform ID", { providedIn: "platform", factory: () => "unknown" }), qm = new W("CSP nonce", { providedIn: "root", factory: () => Ps().body?.querySelector("[ngCspNonce]")?.getAttribute("ngCspNonce") || null }); let Ym = (e, t, i) => null; function pf(e, t, i = !1) { return Ym(e, t, i) } class yI { } class Qm { } class DI { resolveComponentFactory(t) { throw function bI(e) { const t = Error(`No component factory found for ${Nt(e)}.`); return t.ngComponent = e, t }(t) } } let Kl = (() => { class t { } return t.NULL = new DI, t })(); function wI() { return Vs(Ut(), A()) } function Vs(e, t) { return new Fe(yn(e, t)) } let Fe = (() => { class t { constructor(n) { this.nativeElement = n } } return t.__NG_ELEMENT_ID__ = wI, t })(); function CI(e) { return e instanceof Fe ? e.nativeElement : e } class mf { } let Wn = (() => { class t { constructor() { this.destroyNode = null } } return t.__NG_ELEMENT_ID__ = () => function EI() { const e = A(), i = On(Ut().index, e); return (vn(i) ? i : e)[ne] }(), t })(), SI = (() => { var e; class t { } return (e = t).\u0275prov = G({ token: e, providedIn: "root", factory: () => null }), t })(); class Xl { constructor(t) { this.full = t, this.major = t.split(".")[0], this.minor = t.split(".")[1], this.patch = t.split(".").slice(2).join(".") } } const TI = new Xl("16.2.3"), vf = {}; function nv(e, t = null, i = null, n) { const r = iv(e, t, i, n); return r.resolveInjectorInitializers(), r } function iv(e, t = null, i = null, n, r = new Set) { const s = [i || Ee, eI(e)]; return n = n || ("object" == typeof e ? void 0 : Nt(e)), new zl(s, t || Gl(), n || null, r) } let Jt = (() => { var e; class t { static create(n, r) { if (Array.isArray(n)) return nv({ name: "" }, r, n, ""); { const s = n.name ?? ""; return nv({ name: s }, n.parent, n.providers, s) } } } return (e = t).THROW_IF_NOT_FOUND = Co, e.NULL = new Qd, e.\u0275prov = G({ token: e, providedIn: "any", factory: () => L(Vm) }), e.__NG_ELEMENT_ID__ = -1, t })(); function Df(e) { return t => { setTimeout(e, void 0, t) } } const Y = class RI extends ee { constructor(t = !1) { super(), this.__isAsync = t } emit(t) { super.next(t) } subscribe(t, i, n) { let r = t, s = i || (() => null), o = n; if (t && "object" == typeof t) { const l = t; r = l.next?.bind(l), s = l.error?.bind(l), o = l.complete?.bind(l) } this.__isAsync && (s = Df(s), r && (r = Df(r)), o && (o = Df(o))); const a = super.subscribe({ next: r, error: s, complete: o }); return t instanceof de && t.add(a), a } }; function rv(...e) { } class Se { constructor({ enableLongStackTrace: t = !1, shouldCoalesceEventChangeDetection: i = !1, shouldCoalesceRunChangeDetection: n = !1 }) { if (this.hasPendingMacrotasks = !1, this.hasPendingMicrotasks = !1, this.isStable = !0, this.onUnstable = new Y(!1), this.onMicrotaskEmpty = new Y(!1), this.onStable = new Y(!1), this.onError = new Y(!1), typeof Zone > "u") throw new F(908, !1); Zone.assertZonePatched(); const r = this; r._nesting = 0, r._outer = r._inner = Zone.current, Zone.TaskTrackingZoneSpec && (r._inner = r._inner.fork(new Zone.TaskTrackingZoneSpec)), t && Zone.longStackTraceZoneSpec && (r._inner = r._inner.fork(Zone.longStackTraceZoneSpec)), r.shouldCoalesceEventChangeDetection = !n && i, r.shouldCoalesceRunChangeDetection = n, r.lastRequestAnimationFrameId = -1, r.nativeRequestAnimationFrame = function PI() { const e = "function" == typeof je.requestAnimationFrame; let t = je[e ? "requestAnimationFrame" : "setTimeout"], i = je[e ? "cancelAnimationFrame" : "clearTimeout"]; if (typeof Zone < "u" && t && i) { const n = t[Zone.__symbol__("OriginalDelegate")]; n && (t = n); const r = i[Zone.__symbol__("OriginalDelegate")]; r && (i = r) } return { nativeRequestAnimationFrame: t, nativeCancelAnimationFrame: i } }().nativeRequestAnimationFrame, function LI(e) { const t = () => { !function kI(e) { e.isCheckStableRunning || -1 !== e.lastRequestAnimationFrameId || (e.lastRequestAnimationFrameId = e.nativeRequestAnimationFrame.call(je, () => { e.fakeTopEventTask || (e.fakeTopEventTask = Zone.root.scheduleEventTask("fakeTopEventTask", () => { e.lastRequestAnimationFrameId = -1, Cf(e), e.isCheckStableRunning = !0, wf(e), e.isCheckStableRunning = !1 }, void 0, () => { }, () => { })), e.fakeTopEventTask.invoke() }), Cf(e)) }(e) }; e._inner = e._inner.fork({ name: "angular", properties: { isAngularZone: !0 }, onInvokeTask: (i, n, r, s, o, a) => { try { return sv(e), i.invokeTask(r, s, o, a) } finally { (e.shouldCoalesceEventChangeDetection && "eventTask" === s.type || e.shouldCoalesceRunChangeDetection) && t(), ov(e) } }, onInvoke: (i, n, r, s, o, a, l) => { try { return sv(e), i.invoke(r, s, o, a, l) } finally { e.shouldCoalesceRunChangeDetection && t(), ov(e) } }, onHasTask: (i, n, r, s) => { i.hasTask(r, s), n === r && ("microTask" == s.change ? (e._hasPendingMicrotasks = s.microTask, Cf(e), wf(e)) : "macroTask" == s.change && (e.hasPendingMacrotasks = s.macroTask)) }, onHandleError: (i, n, r, s) => (i.handleError(r, s), e.runOutsideAngular(() => e.onError.emit(s)), !1) }) }(r) } static isInAngularZone() { return typeof Zone < "u" && !0 === Zone.current.get("isAngularZone") } static assertInAngularZone() { if (!Se.isInAngularZone()) throw new F(909, !1) } static assertNotInAngularZone() { if (Se.isInAngularZone()) throw new F(909, !1) } run(t, i, n) { return this._inner.run(t, i, n) } runTask(t, i, n, r) { const s = this._inner, o = s.scheduleEventTask("NgZoneEvent: " + r, t, FI, rv, rv); try { return s.runTask(o, i, n) } finally { s.cancelTask(o) } } runGuarded(t, i, n) { return this._inner.runGuarded(t, i, n) } runOutsideAngular(t) { return this._outer.run(t) } } const FI = {}; function wf(e) { if (0 == e._nesting && !e.hasPendingMicrotasks && !e.isStable) try { e._nesting++, e.onMicrotaskEmpty.emit(null) } finally { if (e._nesting--, !e.hasPendingMicrotasks) try { e.runOutsideAngular(() => e.onStable.emit(null)) } finally { e.isStable = !0 } } } function Cf(e) { e.hasPendingMicrotasks = !!(e._hasPendingMicrotasks || (e.shouldCoalesceEventChangeDetection || e.shouldCoalesceRunChangeDetection) && -1 !== e.lastRequestAnimationFrameId) } function sv(e) { e._nesting++, e.isStable && (e.isStable = !1, e.onUnstable.emit(null)) } function ov(e) { e._nesting--, wf(e) } class BI { constructor() { this.hasPendingMicrotasks = !1, this.hasPendingMacrotasks = !1, this.isStable = !0, this.onUnstable = new Y, this.onMicrotaskEmpty = new Y, this.onStable = new Y, this.onError = new Y } run(t, i, n) { return t.apply(i, n) } runGuarded(t, i, n) { return t.apply(i, n) } runOutsideAngular(t) { return t() } runTask(t, i, n, r) { return t.apply(i, n) } } const av = new W("", { providedIn: "root", factory: lv }); function lv() { const e = fe(Se); let t = !0; return function Eg(...e) { const t = Qa(e), i = function FE(e, t) { return "number" == typeof Fu(e) ? e.pop() : t }(e, 1 / 0), n = e; return n.length ? 1 === n.length ? Ft(n[0]) : yg(i)(wo(n, t)) : Do }(new ze(r => { t = e.isStable && !e.hasPendingMacrotasks && !e.hasPendingMicrotasks, e.runOutsideAngular(() => { r.next(t), r.complete() }) }), new ze(r => { let s; e.runOutsideAngular(() => { s = e.onStable.subscribe(() => { Se.assertNotInAngularZone(), queueMicrotask(() => { !t && !e.hasPendingMacrotasks && !e.hasPendingMicrotasks && (t = !0, r.next(!0)) }) }) }); const o = e.onUnstable.subscribe(() => { Se.assertInAngularZone(), t && (t = !1, e.runOutsideAngular(() => { r.next(!1) })) }); return () => { s.unsubscribe(), o.unsubscribe() } }).pipe(Sg())) } let Ef = (() => { var e; class t { constructor() { this.callbacks = new Set, this.deferredCallbacks = new Set, this.renderDepth = 0, this.runningCallbacks = !1 } begin() { if (this.runningCallbacks) throw new F(102, !1); this.renderDepth++ } end() { if (this.renderDepth--, 0 === this.renderDepth) try { this.runningCallbacks = !0; for (const n of this.callbacks) n.invoke() } finally { this.runningCallbacks = !1; for (const n of this.deferredCallbacks) this.callbacks.add(n); this.deferredCallbacks.clear() } } register(n) { (this.runningCallbacks ? this.deferredCallbacks : this.callbacks).add(n) } unregister(n) { this.callbacks.delete(n), this.deferredCallbacks.delete(n) } ngOnDestroy() { this.callbacks.clear(), this.deferredCallbacks.clear() } } return (e = t).\u0275prov = G({ token: e, providedIn: "root", factory: () => new e }), t })(); function Jo(e) { for (; e;) { e[ie] |= 64; const t = jo(e); if (nd(e) && !t) return e; e = t } return null } function Sf(e) { return e.ngOriginalError } class Ar { constructor() { this._console = console } handleError(t) { const i = this._findOriginalError(t); this._console.error("ERROR", t), i && this._console.error("ORIGINAL ERROR", i) } _findOriginalError(t) { let i = t && Sf(t); for (; i && Sf(i);)i = Sf(i); return i || null } } const hv = new W("", { providedIn: "root", factory: () => !1 }); class mv extends n_ { constructor() { super(...arguments), this.consumerAllowSignalWrites = !1, this._lView = null } set lView(t) { this._lView = t } onConsumerDependencyMayHaveChanged() { Jo(this._lView) } onProducerUpdateValueVersion() { } get hasReadASignal() { return this.hasProducers } runInContext(t, i, n) { const r = kt(this); this.trackingVersion++; try { t(i, n) } finally { kt(r) } } destroy() { this.trackingVersion++ } } let tc = null; function vv() { return tc ??= new mv, tc } function yv(e, t) { return e[t] ?? vv() } function bv(e, t) { const i = vv(); i.hasReadASignal && (e[t] = tc, i.lView = e, tc = new mv) } const re = {}; function R(e) { Dv(ve(), A(), cn() + e, !1) } function Dv(e, t, i, n) { if (!n) if (3 == (3 & t[ie])) { const s = e.preOrderCheckHooks; null !== s && vl(t, s, i) } else { const s = e.preOrderHooks; null !== s && yl(t, s, 0, i) } Sr(i) } function v(e, t = ge.Default) { const i = A(); return null === i ? L(e, t) : L_(Ut(), i, X(e), t) } function nc(e, t, i, n, r, s, o, a, l, c, u) { const h = t.blueprint.slice(); return h[ht] = r, h[ie] = 140 | n, (null !== c || e && 2048 & e[ie]) && (h[ie] |= 2048), f_(h), h[tt] = h[gs] = e, h[vt] = i, h[ps] = o || e && e[ps], h[ne] = a || e && e[ne], h[tr] = l || e && e[tr] || null, h[Yt] = s, h[Oo] = function nM() { return tM++ }(), h[Hi] = u, h[Jg] = c, h[yt] = 2 == t.type ? e[yt] : h, h } function js(e, t, i, n, r) { let s = e.data[t]; if (null === s) s = function Tf(e, t, i, n, r) { const s = v_(), o = cd(), l = e.data[t] = function nN(e, t, i, n, r, s) { let o = t ? t.injectorIndex : -1, a = 0; return ys() && (a |= 128), { type: i, index: n, insertBeforeIndex: null, injectorIndex: o, directiveStart: -1, directiveEnd: -1, directiveStylingLast: -1, componentOffset: -1, propertyBindings: null, flags: a, providerIndexes: 0, value: r, attrs: s, mergedAttrs: null, localNames: null, initialInputs: void 0, inputs: null, outputs: null, tView: null, next: null, prev: null, projectionNext: null, child: null, parent: t, projection: null, styles: null, stylesWithoutHost: null, residualStyles: void 0, classes: null, classesWithoutHost: null, residualClasses: void 0, classBindings: 0, styleBindings: 0 } }(0, o ? s : s && s.parent, i, t, n, r); return null === e.firstChild && (e.firstChild = l), null !== s && (o ? null == s.child && null !== l.parent && (s.child = l) : null === s.next && (s.next = l, l.prev = s)), l }(e, t, i, n, r), function tT() { return K.lFrame.inI18n }() && (s.flags |= 32); else if (64 & s.type) { s.type = i, s.value = n, s.attrs = r; const o = function Ro() { const e = K.lFrame, t = e.currentTNode; return e.isParent ? t : t.parent }(); s.injectorIndex = null === o ? -1 : o.injectorIndex } return Ti(s, !0), s } function Qo(e, t, i, n) { if (0 === i) return -1; const r = t.length; for (let s = 0; s < i; s++)t.push(n), e.blueprint.push(n), e.data.push(null); return r } function wv(e, t, i, n, r) { const s = yv(t, ll), o = cn(), a = 2 & n; try { if (Sr(-1), a && t.length > pe && Dv(e, t, pe, !1), Si(a ? 2 : 0, r), a) s.runInContext(i, n, r); else { const c = kt(null); try { i(n, r) } finally { kt(c) } } } finally { a && null === t[ll] && bv(t, ll), Sr(o), Si(a ? 3 : 1, r) } } function Mf(e, t, i) { if (td(t)) { const n = kt(null); try { const s = t.directiveEnd; for (let o = t.directiveStart; o < s; o++) { const a = e.data[o]; a.contentQueries && a.contentQueries(1, i[o], o) } } finally { kt(n) } } } function If(e, t, i) { m_() && (function cN(e, t, i, n) { const r = i.directiveStart, s = i.directiveEnd; Cr(i) && function _N(e, t, i) { const n = yn(t, e), r = Cv(i); let o = 16; i.signals ? o = 4096 : i.onPush && (o = 64); const a = ic(e, nc(e, r, null, o, n, t, null, e[ps].rendererFactory.createRenderer(n, i), null, null, null)); e[t.index] = a }(t, i, e.data[r + i.componentOffset]), e.firstCreatePass || Dl(i, t), Zt(n, t); const o = i.initialInputs; for (let a = r; a < s; a++) { const l = e.data[a], c = Tr(t, e, a, i); Zt(c, t), null !== o && mN(0, a - r, c, l, 0, o), ii(l) && (On(i.index, t)[vt] = Tr(t, e, a, i)) } }(e, t, i, yn(i, t)), 64 == (64 & i.flags) && Iv(e, t, i)) } function Nf(e, t, i = yn) { const n = t.localNames; if (null !== n) { let r = t.index + 1; for (let s = 0; s < n.length; s += 2) { const o = n[s + 1], a = -1 === o ? i(t, e) : e[o]; e[r++] = a } } } function Cv(e) { const t = e.tView; return null === t || t.incompleteFirstPass ? e.tView = Af(1, null, e.template, e.decls, e.vars, e.directiveDefs, e.pipeDefs, e.viewQuery, e.schemas, e.consts, e.id) : t } function Af(e, t, i, n, r, s, o, a, l, c, u) { const h = pe + n, g = h + r, _ = function JI(e, t) { const i = []; for (let n = 0; n < t; n++)i.push(n < e ? null : re); return i }(h, g), y = "function" == typeof c ? c() : c; return _[H] = { type: e, blueprint: _, template: i, queries: null, viewQuery: a, declTNode: t, data: _.slice().fill(null, h), bindingStartIndex: h, expandoStartIndex: g, hostBindingOpCodes: null, firstCreatePass: !0, firstUpdatePass: !0, staticViewQueries: !1, staticContentQueries: !1, preOrderHooks: null, preOrderCheckHooks: null, contentHooks: null, contentCheckHooks: null, viewHooks: null, viewCheckHooks: null, destroyHooks: null, cleanup: null, contentQueries: null, components: null, directiveRegistry: "function" == typeof s ? s() : s, pipeRegistry: "function" == typeof o ? o() : o, firstChild: null, schemas: l, consts: y, incompleteFirstPass: !1, ssrId: u } } let Ev = e => null; function Sv(e, t, i, n) { for (let r in e) if (e.hasOwnProperty(r)) { i = null === i ? {} : i; const s = e[r]; null === n ? Tv(i, t, r, s) : n.hasOwnProperty(r) && Tv(i, t, n[r], s) } return i } function Tv(e, t, i, n) { e.hasOwnProperty(i) ? e[i].push(t, n) : e[i] = [t, n] } function Rn(e, t, i, n, r, s, o, a) { const l = yn(t, i); let u, c = t.inputs; !a && null != c && (u = c[n]) ? (Ff(e, i, u, n, r), Cr(t) && function sN(e, t) { const i = On(t, e); 16 & i[ie] || (i[ie] |= 64) }(i, t.index)) : 3 & t.type && (n = function rN(e) { return "class" === e ? "className" : "for" === e ? "htmlFor" : "formaction" === e ? "formAction" : "innerHtml" === e ? "innerHTML" : "readonly" === e ? "readOnly" : "tabindex" === e ? "tabIndex" : e }(n), r = null != o ? o(r, t.value || "", n) : r, s.setProperty(l, n, r)) } function Of(e, t, i, n) { if (m_()) { const r = null === n ? null : { "": -1 }, s = function dN(e, t) { const i = e.directiveRegistry; let n = null, r = null; if (i) for (let s = 0; s < i.length; s++) { const o = i[s]; if ($g(t, o.selectors, !1)) if (n || (n = []), ii(o)) if (null !== o.findHostDirectiveDefs) { const a = []; r = r || new Map, o.findHostDirectiveDefs(o, a, r), n.unshift(...a, o), xf(e, t, a.length) } else n.unshift(o), xf(e, t, 0); else r = r || new Map, o.findHostDirectiveDefs?.(o, n, r), n.push(o) } return null === n ? null : [n, r] }(e, i); let o, a; null === s ? o = a = null : [o, a] = s, null !== o && Mv(e, t, i, o, r, a), r && function fN(e, t, i) { if (t) { const n = e.localNames = []; for (let r = 0; r < t.length; r += 2) { const s = i[t[r + 1]]; if (null == s) throw new F(-301, !1); n.push(t[r], s) } } }(i, n, r) } i.mergedAttrs = To(i.mergedAttrs, i.attrs) } function Mv(e, t, i, n, r, s) { for (let c = 0; c < n.length; c++)Dd(Dl(i, t), e, n[c].type); !function pN(e, t, i) { e.flags |= 1, e.directiveStart = t, e.directiveEnd = t + i, e.providerIndexes = t }(i, e.data.length, n.length); for (let c = 0; c < n.length; c++) { const u = n[c]; u.providersResolver && u.providersResolver(u) } let o = !1, a = !1, l = Qo(e, t, n.length, null); for (let c = 0; c < n.length; c++) { const u = n[c]; i.mergedAttrs = To(i.mergedAttrs, u.hostAttrs), gN(e, i, t, l, u), hN(l, u, r), null !== u.contentQueries && (i.flags |= 4), (null !== u.hostBindings || null !== u.hostAttrs || 0 !== u.hostVars) && (i.flags |= 64); const h = u.type.prototype; !o && (h.ngOnChanges || h.ngOnInit || h.ngDoCheck) && ((e.preOrderHooks ??= []).push(i.index), o = !0), !a && (h.ngOnChanges || h.ngDoCheck) && ((e.preOrderCheckHooks ??= []).push(i.index), a = !0), l++ } !function iN(e, t, i) { const r = t.directiveEnd, s = e.data, o = t.attrs, a = []; let l = null, c = null; for (let u = t.directiveStart; u < r; u++) { const h = s[u], g = i ? i.get(h) : null, y = g ? g.outputs : null; l = Sv(h.inputs, u, l, g ? g.inputs : null), c = Sv(h.outputs, u, c, y); const b = null === l || null === o || jg(t) ? null : vN(l, u, o); a.push(b) } null !== l && (l.hasOwnProperty("class") && (t.flags |= 8), l.hasOwnProperty("style") && (t.flags |= 16)), t.initialInputs = a, t.inputs = l, t.outputs = c }(e, i, s) } function Iv(e, t, i) { const n = i.directiveStart, r = i.directiveEnd, s = i.index, o = function iT() { return K.lFrame.currentDirectiveIndex }(); try { Sr(s); for (let a = n; a < r; a++) { const l = e.data[a], c = t[a]; dd(a), (null !== l.hostBindings || 0 !== l.hostVars || null !== l.hostAttrs) && uN(l, c) } } finally { Sr(-1), dd(o) } } function uN(e, t) { null !== e.hostBindings && e.hostBindings(1, t) } function xf(e, t, i) { t.componentOffset = i, (e.components ??= []).push(t.index) } function hN(e, t, i) { if (i) { if (t.exportAs) for (let n = 0; n < t.exportAs.length; n++)i[t.exportAs[n]] = e; ii(t) && (i[""] = e) } } function gN(e, t, i, n, r) { e.data[n] = r; const s = r.factory || (r.factory = Er(r.type)), o = new Po(s, ii(r), v); e.blueprint[n] = o, i[n] = o, function aN(e, t, i, n, r) { const s = r.hostBindings; if (s) { let o = e.hostBindingOpCodes; null === o && (o = e.hostBindingOpCodes = []); const a = ~t.index; (function lN(e) { let t = e.length; for (; t > 0;) { const i = e[--t]; if ("number" == typeof i && i < 0) return i } return 0 })(o) != a && o.push(a), o.push(i, n, s) } }(e, t, n, Qo(e, i, r.hostVars, re), r) } function Ii(e, t, i, n, r, s) { const o = yn(e, t); !function Rf(e, t, i, n, r, s, o) { if (null == s) e.removeAttribute(t, r, i); else { const a = null == o ? te(s) : o(s, n || "", r); e.setAttribute(t, r, a, i) } }(t[ne], o, s, e.value, i, n, r) } function mN(e, t, i, n, r, s) { const o = s[t]; if (null !== o) for (let a = 0; a < o.length;)Nv(n, i, o[a++], o[a++], o[a++]) } function Nv(e, t, i, n, r) { const s = kt(null); try { const o = e.inputTransforms; null !== o && o.hasOwnProperty(n) && (r = o[n].call(t, r)), null !== e.setInput ? e.setInput(t, r, i, n) : t[n] = r } finally { kt(s) } } function vN(e, t, i) { let n = null, r = 0; for (; r < i.length;) { const s = i[r]; if (0 !== s) if (5 !== s) { if ("number" == typeof s) break; if (e.hasOwnProperty(s)) { null === n && (n = []); const o = e[s]; for (let a = 0; a < o.length; a += 2)if (o[a] === t) { n.push(s, o[a + 1], i[r + 1]); break } } r += 2 } else r += 2; else r += 4 } return n } function Av(e, t, i, n) { return [e, !0, !1, t, null, 0, n, i, null, null, null] } function Ov(e, t) { const i = e.contentQueries; if (null !== i) for (let n = 0; n < i.length; n += 2) { const s = i[n + 1]; if (-1 !== s) { const o = e.data[s]; hd(i[n]), o.contentQueries(2, t[s], s) } } } function ic(e, t) { return e[No] ? e[Zg][ni] = t : e[No] = t, e[Zg] = t, t } function Pf(e, t, i) { hd(0); const n = kt(null); try { t(e, i) } finally { kt(n) } } function xv(e) { return e[hs] || (e[hs] = []) } function Rv(e) { return e.cleanup || (e.cleanup = []) } function Fv(e, t) { const i = e[tr], n = i ? i.get(Ar, null) : null; n && n.handleError(t) } function Ff(e, t, i, n, r) { for (let s = 0; s < i.length;) { const o = i[s++], a = i[s++]; Nv(e.data[o], t[o], n, a, r) } } function yN(e, t) { const i = On(t, e), n = i[H]; !function bN(e, t) { for (let i = t.length; i < e.blueprint.length; i++)t.push(e.blueprint[i]) }(n, i); const r = i[ht]; null !== r && null === i[Hi] && (i[Hi] = pf(r, i[tr])), kf(n, i, i[vt]) } function kf(e, t, i) { pd(t); try { const n = e.viewQuery; null !== n && Pf(1, n, i); const r = e.template; null !== r && wv(e, t, r, 1, i), e.firstCreatePass && (e.firstCreatePass = !1), e.staticContentQueries && Ov(e, t), e.staticViewQueries && Pf(2, e.viewQuery, i); const s = e.components; null !== s && function DN(e, t) { for (let i = 0; i < t.length; i++)yN(e, t[i]) }(t, s) } catch (n) { throw e.firstCreatePass && (e.incompleteFirstPass = !0, e.firstCreatePass = !1), n } finally { t[ie] &= -5, gd() } } let kv = (() => { var e; class t { constructor() { this.all = new Set, this.queue = new Map } create(n, r, s) { const o = typeof Zone > "u" ? null : Zone.current, a = new PS(n, u => { this.all.has(u) && this.queue.set(u, o) }, s); let l; this.all.add(a), a.notify(); const c = () => { a.cleanup(), l?.(), this.all.delete(a), this.queue.delete(a) }; return l = r?.onDestroy(c), { destroy: c } } flush() { if (0 !== this.queue.size) for (const [n, r] of this.queue) this.queue.delete(n), r ? r.run(() => n.run()) : n.run() } get isQueueEmpty() { return 0 === this.queue.size } } return (e = t).\u0275prov = G({ token: e, providedIn: "root", factory: () => new e }), t })(); function rc(e, t, i) { let n = i ? e.styles : null, r = i ? e.classes : null, s = 0; if (null !== t) for (let o = 0; o < t.length; o++) { const a = t[o]; "number" == typeof a ? s = a : 1 == s ? r = Vu(r, a) : 2 == s && (n = Vu(n, a + ": " + t[++o] + ";")) } i ? e.styles = n : e.stylesWithoutHost = n, i ? e.classes = r : e.classesWithoutHost = r } function Ko(e, t, i, n, r = !1) { for (; null !== i;) { const s = t[i.index]; null !== s && n.push(We(s)), rn(s) && Lv(s, n); const o = i.type; if (8 & o) Ko(e, t, i.child, n); else if (32 & o) { const a = Fd(i, t); let l; for (; l = a();)n.push(l) } else if (16 & o) { const a = wm(t, i); if (Array.isArray(a)) n.push(...a); else { const l = jo(t[yt]); Ko(l[H], l, a, n, !0) } } i = r ? i.projectionNext : i.next } return n } function Lv(e, t) { for (let i = Ht; i < e.length; i++) { const n = e[i], r = n[H].firstChild; null !== r && Ko(n[H], n, r, t) } e[Ci] !== e[ht] && t.push(e[Ci]) } function sc(e, t, i, n = !0) { const r = t[ps], s = r.rendererFactory, o = r.afterRenderEventManager; s.begin?.(), o?.begin(); try { Bv(e, t, e.template, i) } catch (l) { throw n && Fv(t, l), l } finally { s.end?.(), r.effectManager?.flush(), o?.end() } } function Bv(e, t, i, n) { const r = t[ie]; if (256 != (256 & r)) { t[ps].effectManager?.flush(), pd(t); try { f_(t), function b_(e) { return K.lFrame.bindingIndex = e }(e.bindingStartIndex), null !== i && wv(e, t, i, 2, n); const o = 3 == (3 & r); if (o) { const c = e.preOrderCheckHooks; null !== c && vl(t, c, null) } else { const c = e.preOrderHooks; null !== c && yl(t, c, 0, null), _d(t, 0) } if (function EN(e) { for (let t = um(e); null !== t; t = dm(t)) { if (!t[Qg]) continue; const i = t[ms]; for (let n = 0; n < i.length; n++) { GS(i[n]) } } }(t), Vv(t, 2), null !== e.contentQueries && Ov(e, t), o) { const c = e.contentCheckHooks; null !== c && vl(t, c) } else { const c = e.contentHooks; null !== c && yl(t, c, 1), _d(t, 1) } !function ZI(e, t) { const i = e.hostBindingOpCodes; if (null === i) return; const n = yv(t, cl); try { for (let r = 0; r < i.length; r++) { const s = i[r]; if (s < 0) Sr(~s); else { const o = s, a = i[++r], l = i[++r]; nT(a, o), n.runInContext(l, 2, t[o]) } } } finally { null === t[cl] && bv(t, cl), Sr(-1) } }(e, t); const a = e.components; null !== a && Uv(t, a, 0); const l = e.viewQuery; if (null !== l && Pf(2, l, n), o) { const c = e.viewCheckHooks; null !== c && vl(t, c) } else { const c = e.viewHooks; null !== c && yl(t, c, 2), _d(t, 2) } !0 === e.firstUpdatePass && (e.firstUpdatePass = !1), t[ie] &= -73, h_(t) } finally { gd() } } } function Vv(e, t) { for (let i = um(e); null !== i; i = dm(i))for (let n = Ht; n < i.length; n++)Hv(i[n], t) } function SN(e, t, i) { Hv(On(t, e), i) } function Hv(e, t) { if (!function jS(e) { return 128 == (128 & e[ie]) }(e)) return; const i = e[H]; if (80 & e[ie] && 0 === t || 1024 & e[ie] || 2 === t) Bv(i, e, i.template, e[vt]); else if (e[Io] > 0) { Vv(e, 1); const r = e[H].components; null !== r && Uv(e, r, 1) } } function Uv(e, t, i) { for (let n = 0; n < t.length; n++)SN(e, t[n], i) } class Xo { get rootNodes() { const t = this._lView, i = t[H]; return Ko(i, t, i.firstChild, []) } constructor(t, i) { this._lView = t, this._cdRefInjectingView = i, this._appRef = null, this._attachedToViewContainer = !1 } get context() { return this._lView[vt] } set context(t) { this._lView[vt] = t } get destroyed() { return 256 == (256 & this._lView[ie]) } destroy() { if (this._appRef) this._appRef.detachView(this); else if (this._attachedToViewContainer) { const t = this._lView[tt]; if (rn(t)) { const i = t[8], n = i ? i.indexOf(this) : -1; n > -1 && (Pl(t, n), El(i, n)) } this._attachedToViewContainer = !1 } Ld(this._lView[H], this._lView) } onDestroy(t) { !function g_(e, t) { if (256 == (256 & e[ie])) throw new F(911, !1); null === e[nr] && (e[nr] = []), e[nr].push(t) }(this._lView, t) } markForCheck() { Jo(this._cdRefInjectingView || this._lView) } detach() { this._lView[ie] &= -129 } reattach() { this._lView[ie] |= 128 } detectChanges() { sc(this._lView[H], this._lView, this.context) } checkNoChanges() { } attachToViewContainerRef() { if (this._appRef) throw new F(902, !1); this._attachedToViewContainer = !0 } detachFromAppRef() { this._appRef = null, function _M(e, t) { Go(e, t, t[ne], 2, null, null) }(this._lView[H], this._lView) } attachToAppRef(t) { if (this._attachedToViewContainer) throw new F(902, !1); this._appRef = t } } class TN extends Xo { constructor(t) { super(t), this._view = t } detectChanges() { const t = this._view; sc(t[H], t, t[vt], !1) } checkNoChanges() { } get context() { return null } } class jv extends Kl { constructor(t) { super(), this.ngModule = t } resolveComponentFactory(t) { const i = me(t); return new ea(i, this.ngModule) } } function $v(e) { const t = []; for (let i in e) e.hasOwnProperty(i) && t.push({ propName: e[i], templateName: i }); return t } class IN { constructor(t, i) { this.injector = t, this.parentInjector = i } get(t, i, n) { n = rl(n); const r = this.injector.get(t, vf, n); return r !== vf || i === vf ? r : this.parentInjector.get(t, i, n) } } class ea extends Qm { get inputs() { const t = this.componentDef, i = t.inputTransforms, n = $v(t.inputs); if (null !== i) for (const r of n) i.hasOwnProperty(r.propName) && (r.transform = i[r.propName]); return n } get outputs() { return $v(this.componentDef.outputs) } constructor(t, i) { super(), this.componentDef = t, this.ngModule = i, this.componentType = t.type, this.selector = function _S(e) { return e.map(gS).join(",") }(t.selectors), this.ngContentSelectors = t.ngContentSelectors ? t.ngContentSelectors : [], this.isBoundToModule = !!i } create(t, i, n, r) { let s = (r = r || this.ngModule) instanceof zn ? r : r?.injector; s && null !== this.componentDef.getStandaloneInjector && (s = this.componentDef.getStandaloneInjector(s) || s); const o = s ? new IN(t, s) : t, a = o.get(mf, null); if (null === a) throw new F(407, !1); const h = { rendererFactory: a, sanitizer: o.get(SI, null), effectManager: o.get(kv, null), afterRenderEventManager: o.get(Ef, null) }, g = a.createRenderer(null, this.componentDef), _ = this.componentDef.selectors[0][0] || "div", y = n ? function QI(e, t, i, n) { const s = n.get(hv, !1) || i === ei.ShadowDom, o = e.selectRootElement(t, s); return function KI(e) { Ev(e) }(o), o }(g, n, this.componentDef.encapsulation, o) : Rl(g, _, function MN(e) { const t = e.toLowerCase(); return "svg" === t ? "svg" : "math" === t ? "math" : null }(_)), T = this.componentDef.signals ? 4608 : this.componentDef.onPush ? 576 : 528; let C = null; null !== y && (C = pf(y, o, !0)); const P = Af(0, null, null, 1, 0, null, null, null, null, null, null), O = nc(null, P, null, T, null, null, h, g, o, null, C); let V, J; pd(O); try { const ue = this.componentDef; let _e, lt = null; ue.findHostDirectiveDefs ? (_e = [], lt = new Map, ue.findHostDirectiveDefs(ue, _e, lt), _e.push(ue)) : _e = [ue]; const Dt = function AN(e, t) { const i = e[H], n = pe; return e[n] = t, js(i, n, 2, "#host", null) }(O, y), Bt = function ON(e, t, i, n, r, s, o) { const a = r[H]; !function xN(e, t, i, n) { for (const r of e) t.mergedAttrs = To(t.mergedAttrs, r.hostAttrs); null !== t.mergedAttrs && (rc(t, t.mergedAttrs, !0), null !== i && Tm(n, i, t)) }(n, e, t, o); let l = null; null !== t && (l = pf(t, r[tr])); const c = s.rendererFactory.createRenderer(t, i); let u = 16; i.signals ? u = 4096 : i.onPush && (u = 64); const h = nc(r, Cv(i), null, u, r[e.index], e, s, c, null, null, l); return a.firstCreatePass && xf(a, e, n.length - 1), ic(r, h), r[e.index] = h }(Dt, y, ue, _e, O, h, g); J = d_(P, pe), y && function PN(e, t, i, n) { if (n) Xu(e, i, ["ng-version", TI.full]); else { const { attrs: r, classes: s } = function mS(e) { const t = [], i = []; let n = 1, r = 2; for (; n < e.length;) { let s = e[n]; if ("string" == typeof s) 2 === r ? "" !== s && t.push(s, e[++n]) : 8 === r && i.push(s); else { if (!ti(r)) break; r = s } n++ } return { attrs: t, classes: i } }(t.selectors[0]); r && Xu(e, i, r), s && s.length > 0 && Sm(e, i, s.join(" ")) } }(g, ue, y, n), void 0 !== i && function FN(e, t, i) { const n = e.projection = []; for (let r = 0; r < t.length; r++) { const s = i[r]; n.push(null != s ? Array.from(s) : null) } }(J, this.ngContentSelectors, i), V = function RN(e, t, i, n, r, s) { const o = Ut(), a = r[H], l = yn(o, r); Mv(a, r, o, i, null, n); for (let u = 0; u < i.length; u++)Zt(Tr(r, a, o.directiveStart + u, o), r); Iv(a, r, o), l && Zt(l, r); const c = Tr(r, a, o.directiveStart + o.componentOffset, o); if (e[vt] = r[vt] = c, null !== s) for (const u of s) u(c, t); return Mf(a, o, e), c }(Bt, ue, _e, lt, O, [kN]), kf(P, O, null) } finally { gd() } return new NN(this.componentType, V, Vs(J, O), O, J) } } class NN extends yI { constructor(t, i, n, r, s) { super(), this.location = n, this._rootLView = r, this._tNode = s, this.previousInputValues = null, this.instance = i, this.hostView = this.changeDetectorRef = new TN(r), this.componentType = t } setInput(t, i) { const n = this._tNode.inputs; let r; if (null !== n && (r = n[t])) { if (this.previousInputValues ??= new Map, this.previousInputValues.has(t) && Object.is(this.previousInputValues.get(t), i)) return; const s = this._rootLView; Ff(s[H], s, r, t, i), this.previousInputValues.set(t, i), Jo(On(this._tNode.index, s)) } } get injector() { return new un(this._tNode, this._rootLView) } destroy() { this.hostView.destroy() } onDestroy(t) { this.hostView.onDestroy(t) } } function kN() { const e = Ut(); ml(A()[H], e) } function Oe(e) { let t = function Gv(e) { return Object.getPrototypeOf(e.prototype).constructor }(e.type), i = !0; const n = [e]; for (; t;) { let r; if (ii(e)) r = t.\u0275cmp || t.\u0275dir; else { if (t.\u0275cmp) throw new F(903, !1); r = t.\u0275dir } if (r) { if (i) { n.push(r); const o = e; o.inputs = oc(e.inputs), o.inputTransforms = oc(e.inputTransforms), o.declaredInputs = oc(e.declaredInputs), o.outputs = oc(e.outputs); const a = r.hostBindings; a && HN(e, a); const l = r.viewQuery, c = r.contentQueries; if (l && BN(e, l), c && VN(e, c), Ka(e.inputs, r.inputs), Ka(e.declaredInputs, r.declaredInputs), Ka(e.outputs, r.outputs), null !== r.inputTransforms && (null === o.inputTransforms && (o.inputTransforms = {}), Ka(o.inputTransforms, r.inputTransforms)), ii(r) && r.data.animation) { const u = e.data; u.animation = (u.animation || []).concat(r.data.animation) } } const s = r.features; if (s) for (let o = 0; o < s.length; o++) { const a = s[o]; a && a.ngInherit && a(e), a === Oe && (i = !1) } } t = Object.getPrototypeOf(t) } !function LN(e) { let t = 0, i = null; for (let n = e.length - 1; n >= 0; n--) { const r = e[n]; r.hostVars = t += r.hostVars, r.hostAttrs = To(r.hostAttrs, i = To(i, r.hostAttrs)) } }(n) } function oc(e) { return e === Di ? {} : e === Ee ? [] : e } function BN(e, t) { const i = e.viewQuery; e.viewQuery = i ? (n, r) => { t(n, r), i(n, r) } : t } function VN(e, t) { const i = e.contentQueries; e.contentQueries = i ? (n, r, s) => { t(n, r, s), i(n, r, s) } : t } function HN(e, t) { const i = e.hostBindings; e.hostBindings = i ? (n, r) => { t(n, r), i(n, r) } : t } function ac(e) { return !!function Lf(e) { return null !== e && ("function" == typeof e || "object" == typeof e) }(e) && (Array.isArray(e) || !(e instanceof Map) && Symbol.iterator in e) } function Qt(e, t, i) { return !Object.is(e[t], i) && (e[t] = i, !0) } function Te(e, t, i, n) { const r = A(); return Qt(r, bs(), t) && (ve(), Ii(ot(), r, e, t, i, n)), Te } function Gs(e, t, i, n) { return Qt(e, bs(), i) ? t + te(i) + n : re } function B(e, t, i, n, r, s, o, a) { const l = A(), c = ve(), u = e + pe, h = c.firstCreatePass ? function dA(e, t, i, n, r, s, o, a, l) { const c = t.consts, u = js(t, e, 4, o || null, ir(c, a)); Of(t, i, u, ir(c, l)), ml(t, u); const h = u.tView = Af(2, u, n, r, s, t.directiveRegistry, t.pipeRegistry, null, t.schemas, c, null); return null !== t.queries && (t.queries.template(t, u), h.queries = t.queries.embeddedTView(u)), u }(u, c, l, t, i, n, r, s, o) : c.data[u]; Ti(h, !1); const g = oy(c, l, h, e); _l() && kl(c, l, g, h), Zt(g, l), ic(l, l[u] = Av(g, l, g, h)), dl(h) && If(c, l, h), null != o && Nf(l, h, a) } let oy = function ay(e, t, i, n) { return rr(!0), t[ne].createComment("") }; function x(e, t, i) { const n = A(); return Qt(n, bs(), t) && Rn(ve(), ot(), n, e, t, n[ne], i, !1), x } function $f(e, t, i, n, r) { const o = r ? "class" : "style"; Ff(e, i, t.inputs[o], o, n) } function j(e, t, i, n) { const r = A(), s = ve(), o = pe + e, a = r[ne], l = s.firstCreatePass ? function gA(e, t, i, n, r, s) { const o = t.consts, l = js(t, e, 2, n, ir(o, r)); return Of(t, i, l, ir(o, s)), null !== l.attrs && rc(l, l.attrs, !1), null !== l.mergedAttrs && rc(l, l.mergedAttrs, !0), null !== t.queries && t.queries.elementStart(t, l), l }(o, s, r, t, i, n) : s.data[o], c = ly(s, r, l, a, t, e); r[o] = c; const u = dl(l); return Ti(l, !0), Tm(a, c, l), 32 != (32 & l.flags) && _l() && kl(s, r, c, l), 0 === function WS() { return K.lFrame.elementDepthCount }() && Zt(c, r), function qS() { K.lFrame.elementDepthCount++ }(), u && (If(s, r, l), Mf(s, l, r)), null !== n && Nf(r, l), j } function U() { let e = Ut(); cd() ? ud() : (e = e.parent, Ti(e, !1)); const t = e; (function ZS(e) { return K.skipHydrationRootTNode === e })(t) && function XS() { K.skipHydrationRootTNode = null }(), function YS() { K.lFrame.elementDepthCount-- }(); const i = ve(); return i.firstCreatePass && (ml(i, e), td(e) && i.queries.elementEnd(e)), null != t.classesWithoutHost && function pT(e) { return 0 != (8 & e.flags) }(t) && $f(i, t, A(), t.classesWithoutHost, !0), null != t.stylesWithoutHost && function gT(e) { return 0 != (16 & e.flags) }(t) && $f(i, t, A(), t.stylesWithoutHost, !1), U } function Be(e, t, i, n) { return j(e, t, i, n), U(), Be } let ly = (e, t, i, n, r, s) => (rr(!0), Rl(n, r, function I_() { return K.lFrame.currentNamespace }())); function Dn() { return A() } function fc(e) { return !!e && "function" == typeof e.then } function dy(e) { return !!e && "function" == typeof e.subscribe } function ce(e, t, i, n) { const r = A(), s = ve(), o = Ut(); return function hy(e, t, i, n, r, s, o) { const a = dl(n), c = e.firstCreatePass && Rv(e), u = t[vt], h = xv(t); let g = !0; if (3 & n.type || o) { const b = yn(n, t), D = o ? o(b) : b, T = h.length, C = o ? O => o(We(O[n.index])) : n.index; let P = null; if (!o && a && (P = function DA(e, t, i, n) { const r = e.cleanup; if (null != r) for (let s = 0; s < r.length - 1; s += 2) { const o = r[s]; if (o === i && r[s + 1] === n) { const a = t[hs], l = r[s + 2]; return a.length > l ? a[l] : null } "string" == typeof o && (s += 2) } return null }(e, t, r, n.index)), null !== P) (P.__ngLastListenerFn__ || P).__ngNextListenerFn__ = s, P.__ngLastListenerFn__ = s, g = !1; else { s = gy(n, t, u, s, !1); const O = i.listen(D, r, s); h.push(s, O), c && c.push(r, C, T, T + 1) } } else s = gy(n, t, u, s, !1); const _ = n.outputs; let y; if (g && null !== _ && (y = _[r])) { const b = y.length; if (b) for (let D = 0; D < b; D += 2) { const V = t[y[D]][y[D + 1]].subscribe(s), J = h.length; h.push(s, V), c && c.push(r, n.index, J, -(J + 1)) } } }(s, r, r[ne], o, e, t, n), ce } function py(e, t, i, n) { try { return Si(6, t, i), !1 !== i(n) } catch (r) { return Fv(e, r), !1 } finally { Si(7, t, i) } } function gy(e, t, i, n, r) { return function s(o) { if (o === Function) return n; Jo(e.componentOffset > -1 ? On(e.index, t) : t); let l = py(t, i, n, o), c = s.__ngNextListenerFn__; for (; c;)l = py(t, i, c, o) && l, c = c.__ngNextListenerFn__; return r && !1 === l && o.preventDefault(), l } } function z(e = 1) { return function sT(e) { return (K.lFrame.contextLView = function oT(e, t) { for (; e > 0;)t = t[gs], e--; return t }(e, K.lFrame.contextLView))[vt] }(e) } function wA(e, t) { let i = null; const n = function dS(e) { const t = e.attrs; if (null != t) { const i = t.indexOf(5); if (!(1 & i)) return t[i + 1] } return null }(e); for (let r = 0; r < t.length; r++) { const s = t[r]; if ("*" !== s) { if (null === n ? $g(e, s, !0) : pS(n, s)) return r } else i = r } return i } function Wf(e) { const t = A()[yt][Yt]; if (!t.projection) { const n = t.projection = Vo(e ? e.length : 1, null), r = n.slice(); let s = t.child; for (; null !== s;) { const o = e ? wA(s, e) : 0; null !== o && (r[o] ? r[o].projectionNext = s : n[o] = s, r[o] = s), s = s.next } } } function qf(e, t = 0, i) { const n = A(), r = ve(), s = js(r, pe + e, 16, null, i || null); null === s.projection && (s.projection = t), ud(), (!n[Hi] || ys()) && 32 != (32 & s.flags) && function EM(e, t, i) { Em(t[ne], 0, t, i, Vd(e, i, t), vm(i.parent || t[Yt], i, t)) }(r, n, s) } function Pn(e, t, i) { return hc(e, "", t, "", i), Pn } function hc(e, t, i, n, r) { const s = A(), o = Gs(s, t, i, n); return o !== re && Rn(ve(), ot(), s, e, o, s[ne], r, !1), hc } function pc(e, t) { return e << 17 | t << 2 } function ar(e) { return e >> 17 & 32767 } function Yf(e) { return 2 | e } function xr(e) { return (131068 & e) >> 2 } function Zf(e, t) { return -131069 & e | t << 2 } function Jf(e) { return 1 | e } function Ey(e, t, i, n, r) { const s = e[i + 1], o = null === t; let a = n ? ar(s) : xr(s), l = !1; for (; 0 !== a && (!1 === l || o);) { const u = e[a + 1]; IA(e[a], t) && (l = !0, e[a + 1] = n ? Jf(u) : Yf(u)), a = n ? ar(u) : xr(u) } l && (e[i + 1] = n ? Yf(s) : Jf(s)) } function IA(e, t) { return null === e || null == t || (Array.isArray(e) ? e[1] : e) === t || !(!Array.isArray(e) || "string" != typeof t) && Ns(e, t) >= 0 } const Ot = { textEnd: 0, key: 0, keyEnd: 0, value: 0, valueEnd: 0 }; function Sy(e) { return e.substring(Ot.key, Ot.keyEnd) } function Ty(e, t) { const i = Ot.textEnd; return i === t ? -1 : (t = Ot.keyEnd = function xA(e, t, i) { for (; t < i && e.charCodeAt(t) > 32;)t++; return t }(e, Ot.key = t, i), Ks(e, t, i)) } function Ks(e, t, i) { for (; t < i && e.charCodeAt(t) <= 32;)t++; return t } function De(e, t) { return function ri(e, t, i, n) { const r = A(), s = ve(), o = ji(2); s.firstUpdatePass && Ry(s, e, o, n), t !== re && Qt(r, o, t) && Fy(s, s.data[cn()], r, r[ne], e, r[o + 1] = function $A(e, t) { return null == e || "" === e || ("string" == typeof t ? e += t : "object" == typeof e && (e = Nt(or(e)))), e }(t, i), n, o) }(e, t, null, !0), De } function Rr(e) { !function si(e, t, i, n) { const r = ve(), s = ji(2); r.firstUpdatePass && Ry(r, null, s, n); const o = A(); if (i !== re && Qt(o, s, i)) { const a = r.data[cn()]; if (Ly(a, n) && !xy(r, s)) { let l = n ? a.classesWithoutHost : a.stylesWithoutHost; null !== l && (i = Vu(l, i || "")), $f(r, a, o, i, n) } else !function jA(e, t, i, n, r, s, o, a) { r === re && (r = Ee); let l = 0, c = 0, u = 0 < r.length ? r[0] : null, h = 0 < s.length ? s[0] : null; for (; null !== u || null !== h;) { const g = l < r.length ? r[l + 1] : void 0, _ = c < s.length ? s[c + 1] : void 0; let b, y = null; u === h ? (l += 2, c += 2, g !== _ && (y = h, b = _)) : null === h || null !== u && u < h ? (l += 2, y = u) : (c += 2, y = h, b = _), null !== y && Fy(e, t, i, n, y, b, o, a), u = l < r.length ? r[l] : null, h = c < s.length ? s[c] : null } }(r, a, o, o[ne], o[s + 1], o[s + 1] = function HA(e, t, i) { if (null == i || "" === i) return Ee; const n = [], r = or(i); if (Array.isArray(r)) for (let s = 0; s < r.length; s++)e(n, r[s], !0); else if ("object" == typeof r) for (const s in r) r.hasOwnProperty(s) && e(n, s, r[s]); else "string" == typeof r && t(n, r); return n }(e, t, i), n, s) } }(UA, xi, e, !0) } function xi(e, t) { for (let i = function AA(e) { return function Iy(e) { Ot.key = 0, Ot.keyEnd = 0, Ot.value = 0, Ot.valueEnd = 0, Ot.textEnd = e.length }(e), Ty(e, Ks(e, 0, Ot.textEnd)) }(t); i >= 0; i = Ty(t, i))xn(e, Sy(t), !0) } function xy(e, t) { return t >= e.expandoStartIndex } function Ry(e, t, i, n) { const r = e.data; if (null === r[i + 1]) { const s = r[cn()], o = xy(e, i); Ly(s, n) && null === t && !o && (t = !1), t = function kA(e, t, i, n) { const r = function fd(e) { const t = K.lFrame.currentDirectiveIndex; return -1 === t ? null : e[t] }(e); let s = n ? t.residualClasses : t.residualStyles; if (null === r) 0 === (n ? t.classBindings : t.styleBindings) && (i = oa(i = Qf(null, e, t, i, n), t.attrs, n), s = null); else { const o = t.directiveStylingLast; if (-1 === o || e[o] !== r) if (i = Qf(r, e, t, i, n), null === s) { let l = function LA(e, t, i) { const n = i ? t.classBindings : t.styleBindings; if (0 !== xr(n)) return e[ar(n)] }(e, t, n); void 0 !== l && Array.isArray(l) && (l = Qf(null, e, t, l[1], n), l = oa(l, t.attrs, n), function BA(e, t, i, n) { e[ar(i ? t.classBindings : t.styleBindings)] = n }(e, t, n, l)) } else s = function VA(e, t, i) { let n; const r = t.directiveEnd; for (let s = 1 + t.directiveStylingLast; s < r; s++)n = oa(n, e[s].hostAttrs, i); return oa(n, t.attrs, i) }(e, t, n) } return void 0 !== s && (n ? t.residualClasses = s : t.residualStyles = s), i }(r, s, t, n), function TA(e, t, i, n, r, s) { let o = s ? t.classBindings : t.styleBindings, a = ar(o), l = xr(o); e[n] = i; let u, c = !1; if (Array.isArray(i) ? (u = i[1], (null === u || Ns(i, u) > 0) && (c = !0)) : u = i, r) if (0 !== l) { const g = ar(e[a + 1]); e[n + 1] = pc(g, a), 0 !== g && (e[g + 1] = Zf(e[g + 1], n)), e[a + 1] = function EA(e, t) { return 131071 & e | t << 17 }(e[a + 1], n) } else e[n + 1] = pc(a, 0), 0 !== a && (e[a + 1] = Zf(e[a + 1], n)), a = n; else e[n + 1] = pc(l, 0), 0 === a ? a = n : e[l + 1] = Zf(e[l + 1], n), l = n; c && (e[n + 1] = Yf(e[n + 1])), Ey(e, u, n, !0), Ey(e, u, n, !1), function MA(e, t, i, n, r) { const s = r ? e.residualClasses : e.residualStyles; null != s && "string" == typeof t && Ns(s, t) >= 0 && (i[n + 1] = Jf(i[n + 1])) }(t, u, e, n, s), o = pc(a, l), s ? t.classBindings = o : t.styleBindings = o }(r, s, t, i, o, n) } } function Qf(e, t, i, n, r) { let s = null; const o = i.directiveEnd; let a = i.directiveStylingLast; for (-1 === a ? a = i.directiveStart : a++; a < o && (s = t[a], n = oa(n, s.hostAttrs, r), s !== e);)a++; return null !== e && (i.directiveStylingLast = a), n } function oa(e, t, i) { const n = i ? 1 : 2; let r = -1; if (null !== t) for (let s = 0; s < t.length; s++) { const o = t[s]; "number" == typeof o ? r = o : r === n && (Array.isArray(e) || (e = void 0 === e ? [] : ["", e]), xn(e, o, !!i || t[++s])) } return void 0 === e ? null : e } function UA(e, t, i) { const n = String(t); "" !== n && !n.includes(" ") && xn(e, n, i) } function Fy(e, t, i, n, r, s, o, a) { if (!(3 & t.type)) return; const l = e.data, c = l[a + 1], u = function SA(e) { return 1 == (1 & e) }(c) ? ky(l, t, i, r, xr(c), o) : void 0; gc(u) || (gc(s) || function CA(e) { return 2 == (2 & e) }(c) && (s = ky(l, null, i, r, a, o)), function TM(e, t, i, n, r) { if (t) r ? e.addClass(i, n) : e.removeClass(i, n); else { let s = -1 === n.indexOf("-") ? void 0 : sr.DashCase; null == r ? e.removeStyle(i, n, s) : ("string" == typeof r && r.endsWith("!important") && (r = r.slice(0, -10), s |= sr.Important), e.setStyle(i, n, r, s)) } }(n, o, gl(cn(), i), r, s)) } function ky(e, t, i, n, r, s) { const o = null === t; let a; for (; r > 0;) { const l = e[r], c = Array.isArray(l), u = c ? l[1] : l, h = null === u; let g = i[r + 1]; g === re && (g = h ? Ee : void 0); let _ = h ? Ed(g, n) : u === n ? g : void 0; if (c && !gc(_) && (_ = Ed(l, n)), gc(_) && (a = _, o)) return a; const y = e[r + 1]; r = o ? ar(y) : xr(y) } if (null !== t) { let l = s ? t.residualClasses : t.residualStyles; null != l && (a = Ed(l, n)) } return a } function gc(e) { return void 0 !== e } function Ly(e, t) { return 0 != (e.flags & (t ? 8 : 16)) } function qe(e, t = "") { const i = A(), n = ve(), r = e + pe, s = n.firstCreatePass ? js(n, r, 1, t, null) : n.data[r], o = By(n, i, s, t, e); i[r] = o, _l() && kl(n, i, o, s), Ti(s, !1) } let By = (e, t, i, n, r) => (rr(!0), function xl(e, t) { return e.createText(t) }(t[ne], n)); function jt(e) { return Ri("", e, ""), jt } function Ri(e, t, i) { const n = A(), r = Gs(n, e, t, i); return r !== re && function zi(e, t, i) { const n = gl(t, e); !function hm(e, t, i) { e.setValue(t, i) }(e[ne], n, i) }(n, cn(), r), Ri } function Yn(e, t, i) { const n = A(); return Qt(n, bs(), t) && Rn(ve(), ot(), n, e, t, n[ne], i, !0), Yn } const eo = "en-US"; let o0 = eo; function eh(e, t, i, n, r) { if (e = X(e), Array.isArray(e)) for (let s = 0; s < e.length; s++)eh(e[s], t, i, n, r); else { const s = ve(), o = A(), a = Ut(); let l = Ir(e) ? e : X(e.provide); const c = zm(e), u = 1048575 & a.providerIndexes, h = a.directiveStart, g = a.providerIndexes >> 20; if (Ir(e) || !e.multi) { const _ = new Po(c, r, v), y = nh(l, t, r ? u : u + g, h); -1 === y ? (Dd(Dl(a, o), s, l), th(s, e, t.length), t.push(l), a.directiveStart++, a.directiveEnd++, r && (a.providerIndexes += 1048576), i.push(_), o.push(_)) : (i[y] = _, o[y] = _) } else { const _ = nh(l, t, u + g, h), y = nh(l, t, u, u + g), D = y >= 0 && i[y]; if (r && !D || !r && !(_ >= 0 && i[_])) { Dd(Dl(a, o), s, l); const T = function cx(e, t, i, n, r) { const s = new Po(e, i, v); return s.multi = [], s.index = t, s.componentProviders = 0, O0(s, r, n && !i), s }(r ? lx : ax, i.length, r, n, c); !r && D && (i[y].providerFactory = T), th(s, e, t.length, 0), t.push(l), a.directiveStart++, a.directiveEnd++, r && (a.providerIndexes += 1048576), i.push(T), o.push(T) } else th(s, e, _ > -1 ? _ : y, O0(i[r ? y : _], c, !r && n)); !r && n && D && i[y].componentProviders++ } } } function th(e, t, i, n) { const r = Ir(t), s = function nI(e) { return !!e.useClass }(t); if (r || s) { const l = (s ? X(t.useClass) : t).prototype.ngOnDestroy; if (l) { const c = e.destroyHooks || (e.destroyHooks = []); if (!r && t.multi) { const u = c.indexOf(i); -1 === u ? c.push(i, [n, l]) : c[u + 1].push(n, l) } else c.push(i, l) } } } function O0(e, t, i) { return i && e.componentProviders++, e.multi.push(t) - 1 } function nh(e, t, i, n) { for (let r = i; r < n; r++)if (t[r] === e) return r; return -1 } function ax(e, t, i, n) { return ih(this.multi, []) } function lx(e, t, i, n) { const r = this.multi; let s; if (this.providerFactory) { const o = this.providerFactory.componentProviders, a = Tr(i, i[H], this.providerFactory.index, n); s = a.slice(0, o), ih(r, s); for (let l = o; l < a.length; l++)s.push(a[l]) } else s = [], ih(r, s); return s } function ih(e, t) { for (let i = 0; i < e.length; i++)t.push((0, e[i])()); return t } function $e(e, t = []) { return i => { i.providersResolver = (n, r) => function ox(e, t, i) { const n = ve(); if (n.firstCreatePass) { const r = ii(e); eh(i, n.data, n.blueprint, r, !0), eh(t, n.data, n.blueprint, r, !1) } }(n, r ? r(e) : e, t) } } class Fr { } class ux { } class rh extends Fr { constructor(t, i, n) { super(), this._parent = i, this._bootstrapComponents = [], this.destroyCbs = [], this.componentFactoryResolver = new jv(this); const r = function An(e, t) { const i = e[Fg] || null; if (!i && !0 === t) throw new Error(`Type ${Nt(e)} does not have '\u0275mod' property.`); return i }(t); this._bootstrapComponents = function Gi(e) { return e instanceof Function ? e() : e }(r.bootstrap), this._r3Injector = iv(t, i, [{ provide: Fr, useValue: this }, { provide: Kl, useValue: this.componentFactoryResolver }, ...n], Nt(t), new Set(["environment"])), this._r3Injector.resolveInjectorInitializers(), this.instance = this._r3Injector.get(t) } get injector() { return this._r3Injector } destroy() { const t = this._r3Injector; !t.destroyed && t.destroy(), this.destroyCbs.forEach(i => i()), this.destroyCbs = null } onDestroy(t) { this.destroyCbs.push(t) } } class sh extends ux { constructor(t) { super(), this.moduleType = t } create(t) { return new rh(this.moduleType, t, []) } } class x0 extends Fr { constructor(t) { super(), this.componentFactoryResolver = new jv(this), this.instance = null; const i = new zl([...t.providers, { provide: Fr, useValue: this }, { provide: Kl, useValue: this.componentFactoryResolver }], t.parent || Gl(), t.debugName, new Set(["environment"])); this.injector = i, t.runEnvironmentInitializers && i.resolveInjectorInitializers() } destroy() { this.injector.destroy() } onDestroy(t) { this.injector.onDestroy(t) } } let px = (() => { var e; class t { constructor(n) { this._injector = n, this.cachedInjectors = new Map } getOrCreateStandaloneInjector(n) { if (!n.standalone) return null; if (!this.cachedInjectors.has(n)) { const r = Um(0, n.type), s = r.length > 0 ? function hx(e, t, i = null) { return new x0({ providers: e, parent: t, debugName: i, runEnvironmentInitializers: !0 }).injector }([r], this._injector, `Standalone[${n.type.name}]`) : null; this.cachedInjectors.set(n, s) } return this.cachedInjectors.get(n) } ngOnDestroy() { try { for (const n of this.cachedInjectors.values()) null !== n && n.destroy() } finally { this.cachedInjectors.clear() } } } return (e = t).\u0275prov = G({ token: e, providedIn: "environment", factory: () => new e(L(zn)) }), t })(); function Zn(e) { e.getStandaloneInjector = t => t.get(px).getOrCreateStandaloneInjector(e) } function Lx() { return this._results[Symbol.iterator]() } class lh { get changes() { return this._changes || (this._changes = new Y) } constructor(t = !1) { this._emitDistinctChangesOnly = t, this.dirty = !0, this._results = [], this._changesDetected = !1, this._changes = null, this.length = 0, this.first = void 0, this.last = void 0; const i = lh.prototype; i[Symbol.iterator] || (i[Symbol.iterator] = Lx) } get(t) { return this._results[t] } map(t) { return this._results.map(t) } filter(t) { return this._results.filter(t) } find(t) { return this._results.find(t) } reduce(t, i) { return this._results.reduce(t, i) } forEach(t) { this._results.forEach(t) } some(t) { return this._results.some(t) } toArray() { return this._results.slice() } toString() { return this._results.toString() } reset(t, i) { const n = this; n.dirty = !1; const r = function Gn(e) { return e.flat(Number.POSITIVE_INFINITY) }(t); (this._changesDetected = !function NT(e, t, i) { if (e.length !== t.length) return !1; for (let n = 0; n < e.length; n++) { let r = e[n], s = t[n]; if (i && (r = i(r), s = i(s)), s !== r) return !1 } return !0 }(n._results, r, i)) && (n._results = r, n.length = r.length, n.last = r[this.length - 1], n.first = r[0]) } notifyOnChanges() { this._changes && (this._changesDetected || !this._emitDistinctChangesOnly) && this._changes.emit(this) } setDirty() { this.dirty = !0 } destroy() { this.changes.complete(), this.changes.unsubscribe() } } function Vx(e, t, i, n = !0) { const r = t[H]; if (function vM(e, t, i, n) { const r = Ht + n, s = i.length; n > 0 && (i[r - 1][ni] = t), n < s - Ht ? (t[ni] = i[r], $_(i, Ht + n, t)) : (i.push(t), t[ni] = null), t[tt] = i; const o = t[Ao]; null !== o && i !== o && function yM(e, t) { const i = e[ms]; t[yt] !== t[tt][tt][yt] && (e[Qg] = !0), null === i ? e[ms] = [t] : i.push(t) }(o, t); const a = t[wi]; null !== a && a.insertView(e), t[ie] |= 128 }(r, t, e, i), n) { const s = Ud(i, e), o = t[ne], a = Fl(o, e[Ci]); null !== a && function gM(e, t, i, n, r, s) { n[ht] = r, n[Yt] = t, Go(e, n, i, 1, r, s) }(r, e[Yt], o, t, a, s) } } let nt = (() => { class t { } return t.__NG_ELEMENT_ID__ = jx, t })(); const Hx = nt, Ux = class extends Hx { constructor(t, i, n) { super(), this._declarationLView = t, this._declarationTContainer = i, this.elementRef = n } get ssrId() { return this._declarationTContainer.tView?.ssrId || null } createEmbeddedView(t, i) { return this.createEmbeddedViewImpl(t, i) } createEmbeddedViewImpl(t, i, n) { const r = function Bx(e, t, i, n) { const r = t.tView, a = nc(e, r, i, 4096 & e[ie] ? 4096 : 16, null, t, null, null, null, n?.injector ?? null, n?.hydrationInfo ?? null); a[Ao] = e[t.index]; const c = e[wi]; return null !== c && (a[wi] = c.createEmbeddedView(r)), kf(r, a, i), a }(this._declarationLView, this._declarationTContainer, t, { injector: i, hydrationInfo: n }); return new Xo(r) } }; function jx() { return bc(Ut(), A()) } function bc(e, t) { return 4 & e.type ? new Ux(t, e, Vs(e, t)) : null } let Cn = (() => { class t { } return t.__NG_ELEMENT_ID__ = Yx, t })(); function Yx() { return J0(Ut(), A()) } const Zx = Cn, Y0 = class extends Zx { constructor(t, i, n) { super(), this._lContainer = t, this._hostTNode = i, this._hostLView = n } get element() { return Vs(this._hostTNode, this._hostLView) } get injector() { return new un(this._hostTNode, this._hostLView) } get parentInjector() { const t = wl(this._hostTNode, this._hostLView); if (vd(t)) { const i = ko(t, this._hostLView), n = Fo(t); return new un(i[H].data[n + 8], i) } return new un(null, this._hostLView) } clear() { for (; this.length > 0;)this.remove(this.length - 1) } get(t) { const i = Z0(this._lContainer); return null !== i && i[t] || null } get length() { return this._lContainer.length - Ht } createEmbeddedView(t, i, n) { let r, s; "number" == typeof n ? r = n : null != n && (r = n.index, s = n.injector); const a = t.createEmbeddedViewImpl(i || {}, s, null); return this.insertImpl(a, r, false), a } createComponent(t, i, n, r, s) { const o = t && !function Bo(e) { return "function" == typeof e }(t); let a; if (o) a = i; else { const b = i || {}; a = b.index, n = b.injector, r = b.projectableNodes, s = b.environmentInjector || b.ngModuleRef } const l = o ? t : new ea(me(t)), c = n || this.parentInjector; if (!s && null == l.ngModule) { const D = (o ? c : this.parentInjector).get(zn, null); D && (s = D) } me(l.componentType ?? {}); const _ = l.create(c, r, null, s); return this.insertImpl(_.hostView, a, false), _ } insert(t, i) { return this.insertImpl(t, i, !1) } insertImpl(t, i, n) { const r = t._lView; if (function $S(e) { return rn(e[tt]) }(r)) { const l = this.indexOf(t); if (-1 !== l) this.detach(l); else { const c = r[tt], u = new Y0(c, c[Yt], c[tt]); u.detach(u.indexOf(t)) } } const o = this._adjustIndex(i), a = this._lContainer; return Vx(a, r, o, !n), t.attachToViewContainerRef(), $_(ch(a), o, t), t } move(t, i) { return this.insert(t, i) } indexOf(t) { const i = Z0(this._lContainer); return null !== i ? i.indexOf(t) : -1 } remove(t) { const i = this._adjustIndex(t, -1), n = Pl(this._lContainer, i); n && (El(ch(this._lContainer), i), Ld(n[H], n)) } detach(t) { const i = this._adjustIndex(t, -1), n = Pl(this._lContainer, i); return n && null != El(ch(this._lContainer), i) ? new Xo(n) : null } _adjustIndex(t, i = 0) { return t ?? this.length + i } }; function Z0(e) { return e[8] } function ch(e) { return e[8] || (e[8] = []) } function J0(e, t) { let i; const n = t[e.index]; return rn(n) ? i = n : (i = Av(n, t, null, e), t[e.index] = i, ic(t, i)), Q0(i, t, e, n), new Y0(i, e, t) } let Q0 = function K0(e, t, i, n) { if (e[Ci]) return; let r; r = 8 & i.type ? We(n) : function Jx(e, t) { const i = e[ne], n = i.createComment(""), r = yn(t, e); return Mr(i, Fl(i, r), n, function CM(e, t) { return e.nextSibling(t) }(i, r), !1), n }(t, i), e[Ci] = r }; class uh { constructor(t) { this.queryList = t, this.matches = null } clone() { return new uh(this.queryList) } setDirty() { this.queryList.setDirty() } } class dh { constructor(t = []) { this.queries = t } createEmbeddedView(t) { const i = t.queries; if (null !== i) { const n = null !== t.contentQueries ? t.contentQueries[0] : i.length, r = []; for (let s = 0; s < n; s++) { const o = i.getByIndex(s); r.push(this.queries[o.indexInDeclarationView].clone()) } return new dh(r) } return null } insertView(t) { this.dirtyQueriesWithMatches(t) } detachView(t) { this.dirtyQueriesWithMatches(t) } dirtyQueriesWithMatches(t) { for (let i = 0; i < this.queries.length; i++)null !== i1(t, i).matches && this.queries[i].setDirty() } } class X0 { constructor(t, i, n = null) { this.predicate = t, this.flags = i, this.read = n } } class fh { constructor(t = []) { this.queries = t } elementStart(t, i) { for (let n = 0; n < this.queries.length; n++)this.queries[n].elementStart(t, i) } elementEnd(t) { for (let i = 0; i < this.queries.length; i++)this.queries[i].elementEnd(t) } embeddedTView(t) { let i = null; for (let n = 0; n < this.length; n++) { const r = null !== i ? i.length : 0, s = this.getByIndex(n).embeddedTView(t, r); s && (s.indexInDeclarationView = n, null !== i ? i.push(s) : i = [s]) } return null !== i ? new fh(i) : null } template(t, i) { for (let n = 0; n < this.queries.length; n++)this.queries[n].template(t, i) } getByIndex(t) { return this.queries[t] } get length() { return this.queries.length } track(t) { this.queries.push(t) } } class hh { constructor(t, i = -1) { this.metadata = t, this.matches = null, this.indexInDeclarationView = -1, this.crossesNgTemplate = !1, this._appliesToNextNode = !0, this._declarationNodeIndex = i } elementStart(t, i) { this.isApplyingToNode(i) && this.matchTNode(t, i) } elementEnd(t) { this._declarationNodeIndex === t.index && (this._appliesToNextNode = !1) } template(t, i) { this.elementStart(t, i) } embeddedTView(t, i) { return this.isApplyingToNode(t) ? (this.crossesNgTemplate = !0, this.addMatch(-t.index, i), new hh(this.metadata)) : null } isApplyingToNode(t) { if (this._appliesToNextNode && 1 != (1 & this.metadata.flags)) { const i = this._declarationNodeIndex; let n = t.parent; for (; null !== n && 8 & n.type && n.index !== i;)n = n.parent; return i === (null !== n ? n.index : -1) } return this._appliesToNextNode } matchTNode(t, i) { const n = this.metadata.predicate; if (Array.isArray(n)) for (let r = 0; r < n.length; r++) { const s = n[r]; this.matchTNodeWithReadOption(t, i, Xx(i, s)), this.matchTNodeWithReadOption(t, i, Cl(i, t, s, !1, !1)) } else n === nt ? 4 & i.type && this.matchTNodeWithReadOption(t, i, -1) : this.matchTNodeWithReadOption(t, i, Cl(i, t, n, !1, !1)) } matchTNodeWithReadOption(t, i, n) { if (null !== n) { const r = this.metadata.read; if (null !== r) if (r === Fe || r === Cn || r === nt && 4 & i.type) this.addMatch(i.index, -2); else { const s = Cl(i, t, r, !1, !1); null !== s && this.addMatch(i.index, s) } else this.addMatch(i.index, n) } } addMatch(t, i) { null === this.matches ? this.matches = [t, i] : this.matches.push(t, i) } } function Xx(e, t) { const i = e.localNames; if (null !== i) for (let n = 0; n < i.length; n += 2)if (i[n] === t) return i[n + 1]; return null } function tR(e, t, i, n) { return -1 === i ? function eR(e, t) { return 11 & e.type ? Vs(e, t) : 4 & e.type ? bc(e, t) : null }(t, e) : -2 === i ? function nR(e, t, i) { return i === Fe ? Vs(t, e) : i === nt ? bc(t, e) : i === Cn ? J0(t, e) : void 0 }(e, t, n) : Tr(e, e[H], i, t) } function e1(e, t, i, n) { const r = t[wi].queries[n]; if (null === r.matches) { const s = e.data, o = i.matches, a = []; for (let l = 0; l < o.length; l += 2) { const c = o[l]; a.push(c < 0 ? null : tR(t, s[c], o[l + 1], i.metadata.read)) } r.matches = a } return r.matches } function ph(e, t, i, n) { const r = e.queries.getByIndex(i), s = r.matches; if (null !== s) { const o = e1(e, t, r, i); for (let a = 0; a < s.length; a += 2) { const l = s[a]; if (l > 0) n.push(o[a / 2]); else { const c = s[a + 1], u = t[-l]; for (let h = Ht; h < u.length; h++) { const g = u[h]; g[Ao] === g[tt] && ph(g[H], g, c, n) } if (null !== u[ms]) { const h = u[ms]; for (let g = 0; g < h.length; g++) { const _ = h[g]; ph(_[H], _, c, n) } } } } } return n } function se(e) { const t = A(), i = ve(), n = w_(); hd(n + 1); const r = i1(i, n); if (e.dirty && function US(e) { return 4 == (4 & e[ie]) }(t) === (2 == (2 & r.metadata.flags))) { if (null === r.matches) e.reset([]); else { const s = r.crossesNgTemplate ? ph(i, t, n, []) : e1(i, t, r, n); e.reset(s, CI), e.notifyOnChanges() } return !0 } return !1 } function at(e, t, i) { const n = ve(); n.firstCreatePass && (n1(n, new X0(e, t, i), -1), 2 == (2 & t) && (n.staticViewQueries = !0)), t1(n, A(), t) } function pt(e, t, i, n) { const r = ve(); if (r.firstCreatePass) { const s = Ut(); n1(r, new X0(t, i, n), s.index), function rR(e, t) { const i = e.contentQueries || (e.contentQueries = []); t !== (i.length ? i[i.length - 1] : -1) && i.push(e.queries.length - 1, t) }(r, e), 2 == (2 & i) && (r.staticContentQueries = !0) } t1(r, A(), i) } function oe() { return function iR(e, t) { return e[wi].queries[t].queryList }(A(), w_()) } function t1(e, t, i) { const n = new lh(4 == (4 & i)); (function tN(e, t, i, n) { const r = xv(t); r.push(i), e.firstCreatePass && Rv(e).push(n, r.length - 1) })(e, t, n, n.destroy), null === t[wi] && (t[wi] = new dh), t[wi].queries.push(new uh(n)) } function n1(e, t, i) { null === e.queries && (e.queries = new fh), e.queries.track(new hh(t, i)) } function i1(e, t) { return e.queries.getByIndex(t) } function En(e, t) { return bc(e, t) } const D1 = new W("Application Initializer"); let yh = (() => { var e; class t { constructor() { this.initialized = !1, this.done = !1, this.donePromise = new Promise((n, r) => { this.resolve = n, this.reject = r }), this.appInits = fe(D1, { optional: !0 }) ?? [] } runInitializers() { if (this.initialized) return; const n = []; for (const s of this.appInits) { const o = s(); if (fc(o)) n.push(o); else if (dy(o)) { const a = new Promise((l, c) => { o.subscribe({ complete: l, error: c }) }); n.push(a) } } const r = () => { this.done = !0, this.resolve() }; Promise.all(n).then(() => { r() }).catch(s => { this.reject(s) }), 0 === n.length && r(), this.initialized = !0 } } return (e = t).\u0275fac = function (n) { return new (n || e) }, e.\u0275prov = G({ token: e, factory: e.\u0275fac, providedIn: "root" }), t })(); const oi = new W("LocaleId", { providedIn: "root", factory: () => fe(oi, ge.Optional | ge.SkipSelf) || function TR() { return typeof $localize < "u" && $localize.locale || eo }() }); let bh = (() => { var e; class t { constructor() { this.taskId = 0, this.pendingTasks = new Set, this.hasPendingTasks = new jE(!1) } add() { this.hasPendingTasks.next(!0); const n = this.taskId++; return this.pendingTasks.add(n), n } remove(n) { this.pendingTasks.delete(n), 0 === this.pendingTasks.size && this.hasPendingTasks.next(!1) } ngOnDestroy() { this.pendingTasks.clear(), this.hasPendingTasks.next(!1) } } return (e = t).\u0275fac = function (n) { return new (n || e) }, e.\u0275prov = G({ token: e, factory: e.\u0275fac, providedIn: "root" }), t })(); const S1 = new W(""), Ec = new W(""); let Sh, Ch = (() => { var e; class t { constructor(n, r, s) { this._ngZone = n, this.registry = r, this._pendingCount = 0, this._isZoneStable = !0, this._didWork = !1, this._callbacks = [], this.taskTrackingZone = null, Sh || (function ZR(e) { Sh = e }(s), s.addToWindow(r)), this._watchAngularEvents(), n.run(() => { this.taskTrackingZone = typeof Zone > "u" ? null : Zone.current.get("TaskTrackingZone") }) } _watchAngularEvents() { this._ngZone.onUnstable.subscribe({ next: () => { this._didWork = !0, this._isZoneStable = !1 } }), this._ngZone.runOutsideAngular(() => { this._ngZone.onStable.subscribe({ next: () => { Se.assertNotInAngularZone(), queueMicrotask(() => { this._isZoneStable = !0, this._runCallbacksIfReady() }) } }) }) } increasePendingRequestCount() { return this._pendingCount += 1, this._didWork = !0, this._pendingCount } decreasePendingRequestCount() { if (this._pendingCount -= 1, this._pendingCount < 0) throw new Error("pending async requests below zero"); return this._runCallbacksIfReady(), this._pendingCount } isStable() { return this._isZoneStable && 0 === this._pendingCount && !this._ngZone.hasPendingMacrotasks } _runCallbacksIfReady() { if (this.isStable()) queueMicrotask(() => { for (; 0 !== this._callbacks.length;) { let n = this._callbacks.pop(); clearTimeout(n.timeoutId), n.doneCb(this._didWork) } this._didWork = !1 }); else { let n = this.getPendingTasks(); this._callbacks = this._callbacks.filter(r => !r.updateCb || !r.updateCb(n) || (clearTimeout(r.timeoutId), !1)), this._didWork = !0 } } getPendingTasks() { return this.taskTrackingZone ? this.taskTrackingZone.macroTasks.map(n => ({ source: n.source, creationLocation: n.creationLocation, data: n.data })) : [] } addCallback(n, r, s) { let o = -1; r && r > 0 && (o = setTimeout(() => { this._callbacks = this._callbacks.filter(a => a.timeoutId !== o), n(this._didWork, this.getPendingTasks()) }, r)), this._callbacks.push({ doneCb: n, timeoutId: o, updateCb: s }) } whenStable(n, r, s) { if (s && !this.taskTrackingZone) throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is "zone.js/plugins/task-tracking" loaded?'); this.addCallback(n, r, s), this._runCallbacksIfReady() } getPendingRequestCount() { return this._pendingCount } registerApplication(n) { this.registry.registerApplication(n, this) } unregisterApplication(n) { this.registry.unregisterApplication(n) } findProviders(n, r, s) { return [] } } return (e = t).\u0275fac = function (n) { return new (n || e)(L(Se), L(Eh), L(Ec)) }, e.\u0275prov = G({ token: e, factory: e.\u0275fac }), t })(), Eh = (() => { var e; class t { constructor() { this._applications = new Map } registerApplication(n, r) { this._applications.set(n, r) } unregisterApplication(n) { this._applications.delete(n) } unregisterAllApplications() { this._applications.clear() } getTestability(n) { return this._applications.get(n) || null } getAllTestabilities() { return Array.from(this._applications.values()) } getAllRootElements() { return Array.from(this._applications.keys()) } findTestabilityInTree(n, r = !0) { return Sh?.findTestabilityInTree(this, n, r) ?? null } } return (e = t).\u0275fac = function (n) { return new (n || e) }, e.\u0275prov = G({ token: e, factory: e.\u0275fac, providedIn: "platform" }), t })(), lr = null; const T1 = new W("AllowMultipleToken"), Th = new W("PlatformDestroyListeners"), M1 = new W("appBootstrapListener"); function A1(e, t, i = []) { const n = `Platform: ${t}`, r = new W(n); return (s = []) => { let o = Mh(); if (!o || o.injector.get(T1, !1)) { const a = [...i, ...s, { provide: r, useValue: !0 }]; e ? e(a) : function KR(e) { if (lr && !lr.get(T1, !1)) throw new F(400, !1); (function I1() { !function xS(e) { i_ = e }(() => { throw new F(600, !1) }) })(), lr = e; const t = e.get(x1); (function N1(e) { e.get(Wm, null)?.forEach(i => i()) })(e) }(function O1(e = [], t) { return Jt.create({ name: t, providers: [{ provide: tf, useValue: "platform" }, { provide: Th, useValue: new Set([() => lr = null]) }, ...e] }) }(a, n)) } return function eP(e) { const t = Mh(); if (!t) throw new F(401, !1); return t }() } } function Mh() { return lr?.get(x1) ?? null } let x1 = (() => { var e; class t { constructor(n) { this._injector = n, this._modules = [], this._destroyListeners = [], this._destroyed = !1 } bootstrapModuleFactory(n, r) { const s = function tP(e = "zone.js", t) { return "noop" === e ? new BI : "zone.js" === e ? new Se(t) : e }(r?.ngZone, function R1(e) { return { enableLongStackTrace: !1, shouldCoalesceEventChangeDetection: e?.eventCoalescing ?? !1, shouldCoalesceRunChangeDetection: e?.runCoalescing ?? !1 } }({ eventCoalescing: r?.ngZoneEventCoalescing, runCoalescing: r?.ngZoneRunCoalescing })); return s.run(() => { const o = function fx(e, t, i) { return new rh(e, t, i) }(n.moduleType, this.injector, function B1(e) { return [{ provide: Se, useFactory: e }, { provide: Ul, multi: !0, useFactory: () => { const t = fe(iP, { optional: !0 }); return () => t.initialize() } }, { provide: L1, useFactory: nP }, { provide: av, useFactory: lv }] }(() => s)), a = o.injector.get(Ar, null); return s.runOutsideAngular(() => { const l = s.onError.subscribe({ next: c => { a.handleError(c) } }); o.onDestroy(() => { Sc(this._modules, o), l.unsubscribe() }) }), function P1(e, t, i) { try { const n = i(); return fc(n) ? n.catch(r => { throw t.runOutsideAngular(() => e.handleError(r)), r }) : n } catch (n) { throw t.runOutsideAngular(() => e.handleError(n)), n } }(a, s, () => { const l = o.injector.get(yh); return l.runInitializers(), l.donePromise.then(() => (function a0(e) { $n(e, "Expected localeId to be defined"), "string" == typeof e && (o0 = e.toLowerCase().replace(/_/g, "-")) }(o.injector.get(oi, eo) || eo), this._moduleDoBootstrap(o), o)) }) }) } bootstrapModule(n, r = []) { const s = F1({}, r); return function JR(e, t, i) { const n = new sh(i); return Promise.resolve(n) }(0, 0, n).then(o => this.bootstrapModuleFactory(o, s)) } _moduleDoBootstrap(n) { const r = n.injector.get(kr); if (n._bootstrapComponents.length > 0) n._bootstrapComponents.forEach(s => r.bootstrap(s)); else { if (!n.instance.ngDoBootstrap) throw new F(-403, !1); n.instance.ngDoBootstrap(r) } this._modules.push(n) } onDestroy(n) { this._destroyListeners.push(n) } get injector() { return this._injector } destroy() { if (this._destroyed) throw new F(404, !1); this._modules.slice().forEach(r => r.destroy()), this._destroyListeners.forEach(r => r()); const n = this._injector.get(Th, null); n && (n.forEach(r => r()), n.clear()), this._destroyed = !0 } get destroyed() { return this._destroyed } } return (e = t).\u0275fac = function (n) { return new (n || e)(L(Jt)) }, e.\u0275prov = G({ token: e, factory: e.\u0275fac, providedIn: "platform" }), t })(); function F1(e, t) { return Array.isArray(t) ? t.reduce(F1, e) : { ...e, ...t } } let kr = (() => { var e; class t { constructor() { this._bootstrapListeners = [], this._runningTick = !1, this._destroyed = !1, this._destroyListeners = [], this._views = [], this.internalErrorHandler = fe(L1), this.zoneIsStable = fe(av), this.componentTypes = [], this.components = [], this.isStable = fe(bh).hasPendingTasks.pipe(Bu(n => n ? ds(!1) : this.zoneIsStable), function Tg(e, t = yi) { return e = e ?? $E, mt((i, n) => { let r, s = !0; i.subscribe(ft(n, o => { const a = t(o); (s || !e(r, a)) && (s = !1, r = a, n.next(o)) })) }) }(), Sg()), this._injector = fe(zn) } get destroyed() { return this._destroyed } get injector() { return this._injector } bootstrap(n, r) { const s = n instanceof Qm; if (!this._injector.get(yh).done) throw !s && function Mo(e) { const t = me(e) || Vt(e) || nn(e); return null !== t && t.standalone }(n), new F(405, !1); let a; a = s ? n : this._injector.get(Kl).resolveComponentFactory(n), this.componentTypes.push(a.componentType); const l = function QR(e) { return e.isBoundToModule }(a) ? void 0 : this._injector.get(Fr), u = a.create(Jt.NULL, [], r || a.selector, l), h = u.location.nativeElement, g = u.injector.get(S1, null); return g?.registerApplication(h), u.onDestroy(() => { this.detachView(u.hostView), Sc(this.components, u), g?.unregisterApplication(h) }), this._loadComponent(u), u } tick() { if (this._runningTick) throw new F(101, !1); try { this._runningTick = !0; for (let n of this._views) n.detectChanges() } catch (n) { this.internalErrorHandler(n) } finally { this._runningTick = !1 } } attachView(n) { const r = n; this._views.push(r), r.attachToAppRef(this) } detachView(n) { const r = n; Sc(this._views, r), r.detachFromAppRef() } _loadComponent(n) { this.attachView(n.hostView), this.tick(), this.components.push(n); const r = this._injector.get(M1, []); r.push(...this._bootstrapListeners), r.forEach(s => s(n)) } ngOnDestroy() { if (!this._destroyed) try { this._destroyListeners.forEach(n => n()), this._views.slice().forEach(n => n.destroy()) } finally { this._destroyed = !0, this._views = [], this._bootstrapListeners = [], this._destroyListeners = [] } } onDestroy(n) { return this._destroyListeners.push(n), () => Sc(this._destroyListeners, n) } destroy() { if (this._destroyed) throw new F(406, !1); const n = this._injector; n.destroy && !n.destroyed && n.destroy() } get viewCount() { return this._views.length } warnIfDestroyed() { } } return (e = t).\u0275fac = function (n) { return new (n || e) }, e.\u0275prov = G({ token: e, factory: e.\u0275fac, providedIn: "root" }), t })(); function Sc(e, t) { const i = e.indexOf(t); i > -1 && e.splice(i, 1) } const L1 = new W("", { providedIn: "root", factory: () => fe(Ar).handleError.bind(void 0) }); function nP() { const e = fe(Se), t = fe(Ar); return i => e.runOutsideAngular(() => t.handleError(i)) } let iP = (() => { var e; class t { constructor() { this.zone = fe(Se), this.applicationRef = fe(kr) } initialize() { this._onMicrotaskEmptySubscription || (this._onMicrotaskEmptySubscription = this.zone.onMicrotaskEmpty.subscribe({ next: () => { this.zone.run(() => { this.applicationRef.tick() }) } })) } ngOnDestroy() { this._onMicrotaskEmptySubscription?.unsubscribe() } } return (e = t).\u0275fac = function (n) { return new (n || e) }, e.\u0275prov = G({ token: e, factory: e.\u0275fac, providedIn: "root" }), t })(); let gt = (() => { class t { } return t.__NG_ELEMENT_ID__ = sP, t })(); function sP(e) { return function oP(e, t, i) { if (Cr(e) && !i) { const n = On(e.index, t); return new Xo(n, n) } return 47 & e.type ? new Xo(t[yt], t) : null }(Ut(), A(), 16 == (16 & e)) } class j1 { constructor() { } supports(t) { return ac(t) } create(t) { return new fP(t) } } const dP = (e, t) => t; class fP { constructor(t) { this.length = 0, this._linkedRecords = null, this._unlinkedRecords = null, this._previousItHead = null, this._itHead = null, this._itTail = null, this._additionsHead = null, this._additionsTail = null, this._movesHead = null, this._movesTail = null, this._removalsHead = null, this._removalsTail = null, this._identityChangesHead = null, this._identityChangesTail = null, this._trackByFn = t || dP } forEachItem(t) { let i; for (i = this._itHead; null !== i; i = i._next)t(i) } forEachOperation(t) { let i = this._itHead, n = this._removalsHead, r = 0, s = null; for (; i || n;) { const o = !n || i && i.currentIndex < G1(n, r, s) ? i : n, a = G1(o, r, s), l = o.currentIndex; if (o === n) r--, n = n._nextRemoved; else if (i = i._next, null == o.previousIndex) r++; else { s || (s = []); const c = a - r, u = l - r; if (c != u) { for (let g = 0; g < c; g++) { const _ = g < s.length ? s[g] : s[g] = 0, y = _ + g; u <= y && y < c && (s[g] = _ + 1) } s[o.previousIndex] = u - c } } a !== l && t(o, a, l) } } forEachPreviousItem(t) { let i; for (i = this._previousItHead; null !== i; i = i._nextPrevious)t(i) } forEachAddedItem(t) { let i; for (i = this._additionsHead; null !== i; i = i._nextAdded)t(i) } forEachMovedItem(t) { let i; for (i = this._movesHead; null !== i; i = i._nextMoved)t(i) } forEachRemovedItem(t) { let i; for (i = this._removalsHead; null !== i; i = i._nextRemoved)t(i) } forEachIdentityChange(t) { let i; for (i = this._identityChangesHead; null !== i; i = i._nextIdentityChange)t(i) } diff(t) { if (null == t && (t = []), !ac(t)) throw new F(900, !1); return this.check(t) ? this : null } onDestroy() { } check(t) { this._reset(); let r, s, o, i = this._itHead, n = !1; if (Array.isArray(t)) { this.length = t.length; for (let a = 0; a < this.length; a++)s = t[a], o = this._trackByFn(a, s), null !== i && Object.is(i.trackById, o) ? (n && (i = this._verifyReinsertion(i, s, o, a)), Object.is(i.item, s) || this._addIdentityChange(i, s)) : (i = this._mismatch(i, s, o, a), n = !0), i = i._next } else r = 0, function qN(e, t) { if (Array.isArray(e)) for (let i = 0; i < e.length; i++)t(e[i]); else { const i = e[Symbol.iterator](); let n; for (; !(n = i.next()).done;)t(n.value) } }(t, a => { o = this._trackByFn(r, a), null !== i && Object.is(i.trackById, o) ? (n && (i = this._verifyReinsertion(i, a, o, r)), Object.is(i.item, a) || this._addIdentityChange(i, a)) : (i = this._mismatch(i, a, o, r), n = !0), i = i._next, r++ }), this.length = r; return this._truncate(i), this.collection = t, this.isDirty } get isDirty() { return null !== this._additionsHead || null !== this._movesHead || null !== this._removalsHead || null !== this._identityChangesHead } _reset() { if (this.isDirty) { let t; for (t = this._previousItHead = this._itHead; null !== t; t = t._next)t._nextPrevious = t._next; for (t = this._additionsHead; null !== t; t = t._nextAdded)t.previousIndex = t.currentIndex; for (this._additionsHead = this._additionsTail = null, t = this._movesHead; null !== t; t = t._nextMoved)t.previousIndex = t.currentIndex; this._movesHead = this._movesTail = null, this._removalsHead = this._removalsTail = null, this._identityChangesHead = this._identityChangesTail = null } } _mismatch(t, i, n, r) { let s; return null === t ? s = this._itTail : (s = t._prev, this._remove(t)), null !== (t = null === this._unlinkedRecords ? null : this._unlinkedRecords.get(n, null)) ? (Object.is(t.item, i) || this._addIdentityChange(t, i), this._reinsertAfter(t, s, r)) : null !== (t = null === this._linkedRecords ? null : this._linkedRecords.get(n, r)) ? (Object.is(t.item, i) || this._addIdentityChange(t, i), this._moveAfter(t, s, r)) : t = this._addAfter(new hP(i, n), s, r), t } _verifyReinsertion(t, i, n, r) { let s = null === this._unlinkedRecords ? null : this._unlinkedRecords.get(n, null); return null !== s ? t = this._reinsertAfter(s, t._prev, r) : t.currentIndex != r && (t.currentIndex = r, this._addToMoves(t, r)), t } _truncate(t) { for (; null !== t;) { const i = t._next; this._addToRemovals(this._unlink(t)), t = i } null !== this._unlinkedRecords && this._unlinkedRecords.clear(), null !== this._additionsTail && (this._additionsTail._nextAdded = null), null !== this._movesTail && (this._movesTail._nextMoved = null), null !== this._itTail && (this._itTail._next = null), null !== this._removalsTail && (this._removalsTail._nextRemoved = null), null !== this._identityChangesTail && (this._identityChangesTail._nextIdentityChange = null) } _reinsertAfter(t, i, n) { null !== this._unlinkedRecords && this._unlinkedRecords.remove(t); const r = t._prevRemoved, s = t._nextRemoved; return null === r ? this._removalsHead = s : r._nextRemoved = s, null === s ? this._removalsTail = r : s._prevRemoved = r, this._insertAfter(t, i, n), this._addToMoves(t, n), t } _moveAfter(t, i, n) { return this._unlink(t), this._insertAfter(t, i, n), this._addToMoves(t, n), t } _addAfter(t, i, n) { return this._insertAfter(t, i, n), this._additionsTail = null === this._additionsTail ? this._additionsHead = t : this._additionsTail._nextAdded = t, t } _insertAfter(t, i, n) { const r = null === i ? this._itHead : i._next; return t._next = r, t._prev = i, null === r ? this._itTail = t : r._prev = t, null === i ? this._itHead = t : i._next = t, null === this._linkedRecords && (this._linkedRecords = new $1), this._linkedRecords.put(t), t.currentIndex = n, t } _remove(t) { return this._addToRemovals(this._unlink(t)) } _unlink(t) { null !== this._linkedRecords && this._linkedRecords.remove(t); const i = t._prev, n = t._next; return null === i ? this._itHead = n : i._next = n, null === n ? this._itTail = i : n._prev = i, t } _addToMoves(t, i) { return t.previousIndex === i || (this._movesTail = null === this._movesTail ? this._movesHead = t : this._movesTail._nextMoved = t), t } _addToRemovals(t) { return null === this._unlinkedRecords && (this._unlinkedRecords = new $1), this._unlinkedRecords.put(t), t.currentIndex = null, t._nextRemoved = null, null === this._removalsTail ? (this._removalsTail = this._removalsHead = t, t._prevRemoved = null) : (t._prevRemoved = this._removalsTail, this._removalsTail = this._removalsTail._nextRemoved = t), t } _addIdentityChange(t, i) { return t.item = i, this._identityChangesTail = null === this._identityChangesTail ? this._identityChangesHead = t : this._identityChangesTail._nextIdentityChange = t, t } } class hP { constructor(t, i) { this.item = t, this.trackById = i, this.currentIndex = null, this.previousIndex = null, this._nextPrevious = null, this._prev = null, this._next = null, this._prevDup = null, this._nextDup = null, this._prevRemoved = null, this._nextRemoved = null, this._nextAdded = null, this._nextMoved = null, this._nextIdentityChange = null } } class pP { constructor() { this._head = null, this._tail = null } add(t) { null === this._head ? (this._head = this._tail = t, t._nextDup = null, t._prevDup = null) : (this._tail._nextDup = t, t._prevDup = this._tail, t._nextDup = null, this._tail = t) } get(t, i) { let n; for (n = this._head; null !== n; n = n._nextDup)if ((null === i || i <= n.currentIndex) && Object.is(n.trackById, t)) return n; return null } remove(t) { const i = t._prevDup, n = t._nextDup; return null === i ? this._head = n : i._nextDup = n, null === n ? this._tail = i : n._prevDup = i, null === this._head } } class $1 { constructor() { this.map = new Map } put(t) { const i = t.trackById; let n = this.map.get(i); n || (n = new pP, this.map.set(i, n)), n.add(t) } get(t, i) { const r = this.map.get(t); return r ? r.get(t, i) : null } remove(t) { const i = t.trackById; return this.map.get(i).remove(t) && this.map.delete(i), t } get isEmpty() { return 0 === this.map.size } clear() { this.map.clear() } } function G1(e, t, i) { const n = e.previousIndex; if (null === n) return n; let r = 0; return i && n < i.length && (r = i[n]), n + t + r } function W1() { return new Ic([new j1]) } let Ic = (() => { var e; class t { constructor(n) { this.factories = n } static create(n, r) { if (null != r) { const s = r.factories.slice(); n = n.concat(s) } return new t(n) } static extend(n) { return { provide: t, useFactory: r => t.create(n, r || W1()), deps: [[t, new Md, new Td]] } } find(n) { const r = this.factories.find(s => s.supports(n)); if (null != r) return r; throw new F(901, !1) } } return (e = t).\u0275prov = G({ token: e, providedIn: "root", factory: W1 }), t })(); const yP = A1(null, "core", []); let bP = (() => { var e; class t { constructor(n) { } } return (e = t).\u0275fac = function (n) { return new (n || e)(L(kr)) }, e.\u0275mod = Pe({ type: e }), e.\u0275inj = Ae({}), t })(); function Ph(e, t) { const i = me(e), n = t.elementInjector || Gl(); return new ea(i).create(n, t.projectableNodes, t.hostElement, t.environmentInjector) } let Fh = null; function ba() { return Fh } class RP { } const Kt = new W("DocumentToken"); function fb(e, t) { t = encodeURIComponent(t); for (const i of e.split(";")) { const n = i.indexOf("="), [r, s] = -1 == n ? [i, ""] : [i.slice(0, n), i.slice(n + 1)]; if (r.trim() === t) return decodeURIComponent(s) } return null } class vF { constructor(t, i, n, r) { this.$implicit = t, this.ngForOf = i, this.index = n, this.count = r } get first() { return 0 === this.index } get last() { return this.index === this.count - 1 } get even() { return this.index % 2 == 0 } get odd() { return !this.even } } let kn = (() => { var e; class t { set ngForOf(n) { this._ngForOf = n, this._ngForOfDirty = !0 } set ngForTrackBy(n) { this._trackByFn = n } get ngForTrackBy() { return this._trackByFn } constructor(n, r, s) { this._viewContainer = n, this._template = r, this._differs = s, this._ngForOf = null, this._ngForOfDirty = !0, this._differ = null } set ngForTemplate(n) { n && (this._template = n) } ngDoCheck() { if (this._ngForOfDirty) { this._ngForOfDirty = !1; const n = this._ngForOf; !this._differ && n && (this._differ = this._differs.find(n).create(this.ngForTrackBy)) } if (this._differ) { const n = this._differ.diff(this._ngForOf); n && this._applyChanges(n) } } _applyChanges(n) { const r = this._viewContainer; n.forEachOperation((s, o, a) => { if (null == s.previousIndex) r.createEmbeddedView(this._template, new vF(s.item, this._ngForOf, -1, -1), null === a ? void 0 : a); else if (null == a) r.remove(null === o ? void 0 : o); else if (null !== o) { const l = r.get(o); r.move(l, a), gb(l, s) } }); for (let s = 0, o = r.length; s < o; s++) { const l = r.get(s).context; l.index = s, l.count = o, l.ngForOf = this._ngForOf } n.forEachIdentityChange(s => { gb(r.get(s.currentIndex), s) }) } static ngTemplateContextGuard(n, r) { return !0 } } return (e = t).\u0275fac = function (n) { return new (n || e)(v(Cn), v(nt), v(Ic)) }, e.\u0275dir = k({ type: e, selectors: [["", "ngFor", "", "ngForOf", ""]], inputs: { ngForOf: "ngForOf", ngForTrackBy: "ngForTrackBy", ngForTemplate: "ngForTemplate" }, standalone: !0 }), t })(); function gb(e, t) { e.context.$implicit = t.item } let Ln = (() => { var e; class t { constructor(n, r) { this._viewContainer = n, this._context = new yF, this._thenTemplateRef = null, this._elseTemplateRef = null, this._thenViewRef = null, this._elseViewRef = null, this._thenTemplateRef = r } set ngIf(n) { this._context.$implicit = this._context.ngIf = n, this._updateView() } set ngIfThen(n) { _b("ngIfThen", n), this._thenTemplateRef = n, this._thenViewRef = null, this._updateView() } set ngIfElse(n) { _b("ngIfElse", n), this._elseTemplateRef = n, this._elseViewRef = null, this._updateView() } _updateView() { this._context.$implicit ? this._thenViewRef || (this._viewContainer.clear(), this._elseViewRef = null, this._thenTemplateRef && (this._thenViewRef = this._viewContainer.createEmbeddedView(this._thenTemplateRef, this._context))) : this._elseViewRef || (this._viewContainer.clear(), this._thenViewRef = null, this._elseTemplateRef && (this._elseViewRef = this._viewContainer.createEmbeddedView(this._elseTemplateRef, this._context))) } static ngTemplateContextGuard(n, r) { return !0 } } return (e = t).\u0275fac = function (n) { return new (n || e)(v(Cn), v(nt)) }, e.\u0275dir = k({ type: e, selectors: [["", "ngIf", ""]], inputs: { ngIf: "ngIf", ngIfThen: "ngIfThen", ngIfElse: "ngIfElse" }, standalone: !0 }), t })(); class yF { constructor() { this.$implicit = null, this.ngIf = null } } function _b(e, t) { if (t && !t.createEmbeddedView) throw new Error(`${e} must be a TemplateRef, but received '${Nt(t)}'.`) } let yb = (() => { var e; class t { } return (e = t).\u0275fac = function (n) { return new (n || e) }, e.\u0275mod = Pe({ type: e }), e.\u0275inj = Ae({}), t })(); function Db(e) { return "server" === e } class wb { } class vk extends RP { constructor() { super(...arguments), this.supportsDOMEvents = !0 } } class Xh extends vk { static makeCurrent() { !function xP(e) { Fh || (Fh = e) }(new Xh) } onAndCancel(t, i, n) { return t.addEventListener(i, n), () => { t.removeEventListener(i, n) } } dispatchEvent(t, i) { t.dispatchEvent(i) } remove(t) { t.parentNode && t.parentNode.removeChild(t) } createElement(t, i) { return (i = i || this.getDefaultDocument()).createElement(t) } createHtmlDocument() { return document.implementation.createHTMLDocument("fakeTitle") } getDefaultDocument() { return document } isElementNode(t) { return t.nodeType === Node.ELEMENT_NODE } isShadowRoot(t) { return t instanceof DocumentFragment } getGlobalEventTarget(t, i) { return "window" === i ? window : "document" === i ? t : "body" === i ? t.body : null } getBaseHref(t) { const i = function yk() { return Ea = Ea || document.querySelector("base"), Ea ? Ea.getAttribute("href") : null }(); return null == i ? null : function bk(e) { jc = jc || document.createElement("a"), jc.setAttribute("href", e); const t = jc.pathname; return "/" === t.charAt(0) ? t : `/${t}` }(i) } resetBaseElement() { Ea = null } getUserAgent() { return window.navigator.userAgent } getCookie(t) { return fb(document.cookie, t) } } let jc, Ea = null, wk = (() => { var e; class t { build() { return new XMLHttpRequest } } return (e = t).\u0275fac = function (n) { return new (n || e) }, e.\u0275prov = G({ token: e, factory: e.\u0275fac }), t })(); const ep = new W("EventManagerPlugins"); let Mb = (() => { var e; class t { constructor(n, r) { this._zone = r, this._eventNameToPlugin = new Map, n.forEach(s => { s.manager = this }), this._plugins = n.slice().reverse() } addEventListener(n, r, s) { return this._findPluginFor(r).addEventListener(n, r, s) } getZone() { return this._zone } _findPluginFor(n) { let r = this._eventNameToPlugin.get(n); if (r) return r; if (r = this._plugins.find(o => o.supports(n)), !r) throw new F(5101, !1); return this._eventNameToPlugin.set(n, r), r } } return (e = t).\u0275fac = function (n) { return new (n || e)(L(ep), L(Se)) }, e.\u0275prov = G({ token: e, factory: e.\u0275fac }), t })(); class Ib { constructor(t) { this._doc = t } } const tp = "ng-app-id"; let Nb = (() => { var e; class t { constructor(n, r, s, o = {}) { this.doc = n, this.appId = r, this.nonce = s, this.platformId = o, this.styleRef = new Map, this.hostNodes = new Set, this.styleNodesInDOM = this.collectServerRenderedStyles(), this.platformIsServer = Db(o), this.resetHostNodes() } addStyles(n) { for (const r of n) 1 === this.changeUsageCount(r, 1) && this.onStyleAdded(r) } removeStyles(n) { for (const r of n) this.changeUsageCount(r, -1) <= 0 && this.onStyleRemoved(r) } ngOnDestroy() { const n = this.styleNodesInDOM; n && (n.forEach(r => r.remove()), n.clear()); for (const r of this.getAllStyles()) this.onStyleRemoved(r); this.resetHostNodes() } addHost(n) { this.hostNodes.add(n); for (const r of this.getAllStyles()) this.addStyleToHost(n, r) } removeHost(n) { this.hostNodes.delete(n) } getAllStyles() { return this.styleRef.keys() } onStyleAdded(n) { for (const r of this.hostNodes) this.addStyleToHost(r, n) } onStyleRemoved(n) { const r = this.styleRef; r.get(n)?.elements?.forEach(s => s.remove()), r.delete(n) } collectServerRenderedStyles() { const n = this.doc.head?.querySelectorAll(`style[${tp}="${this.appId}"]`); if (n?.length) { const r = new Map; return n.forEach(s => { null != s.textContent && r.set(s.textContent, s) }), r } return null } changeUsageCount(n, r) { const s = this.styleRef; if (s.has(n)) { const o = s.get(n); return o.usage += r, o.usage } return s.set(n, { usage: r, elements: [] }), r } getStyleElement(n, r) { const s = this.styleNodesInDOM, o = s?.get(r); if (o?.parentNode === n) return s.delete(r), o.removeAttribute(tp), o; { const a = this.doc.createElement("style"); return this.nonce && a.setAttribute("nonce", this.nonce), a.textContent = r, this.platformIsServer && a.setAttribute(tp, this.appId), a } } addStyleToHost(n, r) { const s = this.getStyleElement(n, r); n.appendChild(s); const o = this.styleRef, a = o.get(r)?.elements; a ? a.push(s) : o.set(r, { elements: [s], usage: 1 }) } resetHostNodes() { const n = this.hostNodes; n.clear(), n.add(this.doc.head) } } return (e = t).\u0275fac = function (n) { return new (n || e)(L(Kt), L(Wl), L(qm, 8), L(Nr)) }, e.\u0275prov = G({ token: e, factory: e.\u0275fac }), t })(); const np = { svg: "http://www.w3.org/2000/svg", xhtml: "http://www.w3.org/1999/xhtml", xlink: "http://www.w3.org/1999/xlink", xml: "http://www.w3.org/XML/1998/namespace", xmlns: "http://www.w3.org/2000/xmlns/", math: "http://www.w3.org/1998/MathML/" }, ip = /%COMP%/g, Tk = new W("RemoveStylesOnCompDestroy", { providedIn: "root", factory: () => !1 }); function Ob(e, t) { return t.map(i => i.replace(ip, e)) } let xb = (() => { var e; class t { constructor(n, r, s, o, a, l, c, u = null) { this.eventManager = n, this.sharedStylesHost = r, this.appId = s, this.removeStylesOnCompDestroy = o, this.doc = a, this.platformId = l, this.ngZone = c, this.nonce = u, this.rendererByCompId = new Map, this.platformIsServer = Db(l), this.defaultRenderer = new rp(n, a, c, this.platformIsServer) } createRenderer(n, r) { if (!n || !r) return this.defaultRenderer; this.platformIsServer && r.encapsulation === ei.ShadowDom && (r = { ...r, encapsulation: ei.Emulated }); const s = this.getOrCreateRenderer(n, r); return s instanceof Pb ? s.applyToHost(n) : s instanceof sp && s.applyStyles(), s } getOrCreateRenderer(n, r) { const s = this.rendererByCompId; let o = s.get(r.id); if (!o) { const a = this.doc, l = this.ngZone, c = this.eventManager, u = this.sharedStylesHost, h = this.removeStylesOnCompDestroy, g = this.platformIsServer; switch (r.encapsulation) { case ei.Emulated: o = new Pb(c, u, r, this.appId, h, a, l, g); break; case ei.ShadowDom: return new Ak(c, u, n, r, a, l, this.nonce, g); default: o = new sp(c, u, r, h, a, l, g) }s.set(r.id, o) } return o } ngOnDestroy() { this.rendererByCompId.clear() } } return (e = t).\u0275fac = function (n) { return new (n || e)(L(Mb), L(Nb), L(Wl), L(Tk), L(Kt), L(Nr), L(Se), L(qm)) }, e.\u0275prov = G({ token: e, factory: e.\u0275fac }), t })(); class rp { constructor(t, i, n, r) { this.eventManager = t, this.doc = i, this.ngZone = n, this.platformIsServer = r, this.data = Object.create(null), this.destroyNode = null } destroy() { } createElement(t, i) { return i ? this.doc.createElementNS(np[i] || i, t) : this.doc.createElement(t) } createComment(t) { return this.doc.createComment(t) } createText(t) { return this.doc.createTextNode(t) } appendChild(t, i) { (Rb(t) ? t.content : t).appendChild(i) } insertBefore(t, i, n) { t && (Rb(t) ? t.content : t).insertBefore(i, n) } removeChild(t, i) { t && t.removeChild(i) } selectRootElement(t, i) { let n = "string" == typeof t ? this.doc.querySelector(t) : t; if (!n) throw new F(-5104, !1); return i || (n.textContent = ""), n } parentNode(t) { return t.parentNode } nextSibling(t) { return t.nextSibling } setAttribute(t, i, n, r) { if (r) { i = r + ":" + i; const s = np[r]; s ? t.setAttributeNS(s, i, n) : t.setAttribute(i, n) } else t.setAttribute(i, n) } removeAttribute(t, i, n) { if (n) { const r = np[n]; r ? t.removeAttributeNS(r, i) : t.removeAttribute(`${n}:${i}`) } else t.removeAttribute(i) } addClass(t, i) { t.classList.add(i) } removeClass(t, i) { t.classList.remove(i) } setStyle(t, i, n, r) { r & (sr.DashCase | sr.Important) ? t.style.setProperty(i, n, r & sr.Important ? "important" : "") : t.style[i] = n } removeStyle(t, i, n) { n & sr.DashCase ? t.style.removeProperty(i) : t.style[i] = "" } setProperty(t, i, n) { t[i] = n } setValue(t, i) { t.nodeValue = i } listen(t, i, n) { if ("string" == typeof t && !(t = ba().getGlobalEventTarget(this.doc, t))) throw new Error(`Unsupported event target ${t} for event ${i}`); return this.eventManager.addEventListener(t, i, this.decoratePreventDefault(n)) } decoratePreventDefault(t) { return i => { if ("__ngUnwrap__" === i) return t; !1 === (this.platformIsServer ? this.ngZone.runGuarded(() => t(i)) : t(i)) && i.preventDefault() } } } function Rb(e) { return "TEMPLATE" === e.tagName && void 0 !== e.content } class Ak extends rp { constructor(t, i, n, r, s, o, a, l) { super(t, s, o, l), this.sharedStylesHost = i, this.hostEl = n, this.shadowRoot = n.attachShadow({ mode: "open" }), this.sharedStylesHost.addHost(this.shadowRoot); const c = Ob(r.id, r.styles); for (const u of c) { const h = document.createElement("style"); a && h.setAttribute("nonce", a), h.textContent = u, this.shadowRoot.appendChild(h) } } nodeOrShadowRoot(t) { return t === this.hostEl ? this.shadowRoot : t } appendChild(t, i) { return super.appendChild(this.nodeOrShadowRoot(t), i) } insertBefore(t, i, n) { return super.insertBefore(this.nodeOrShadowRoot(t), i, n) } removeChild(t, i) { return super.removeChild(this.nodeOrShadowRoot(t), i) } parentNode(t) { return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(t))) } destroy() { this.sharedStylesHost.removeHost(this.shadowRoot) } } class sp extends rp { constructor(t, i, n, r, s, o, a, l) { super(t, s, o, a), this.sharedStylesHost = i, this.removeStylesOnCompDestroy = r, this.styles = l ? Ob(l, n.styles) : n.styles } applyStyles() { this.sharedStylesHost.addStyles(this.styles) } destroy() { this.removeStylesOnCompDestroy && this.sharedStylesHost.removeStyles(this.styles) } } class Pb extends sp { constructor(t, i, n, r, s, o, a, l) { const c = r + "-" + n.id; super(t, i, n, s, o, a, l, c), this.contentAttr = function Mk(e) { return "_ngcontent-%COMP%".replace(ip, e) }(c), this.hostAttr = function Ik(e) { return "_nghost-%COMP%".replace(ip, e) }(c) } applyToHost(t) { this.applyStyles(), this.setAttribute(t, this.hostAttr, "") } createElement(t, i) { const n = super.createElement(t, i); return super.setAttribute(n, this.contentAttr, ""), n } } let Ok = (() => { var e; class t extends Ib { constructor(n) { super(n) } supports(n) { return !0 } addEventListener(n, r, s) { return n.addEventListener(r, s, !1), () => this.removeEventListener(n, r, s) } removeEventListener(n, r, s) { return n.removeEventListener(r, s) } } return (e = t).\u0275fac = function (n) { return new (n || e)(L(Kt)) }, e.\u0275prov = G({ token: e, factory: e.\u0275fac }), t })(); const Fb = ["alt", "control", "meta", "shift"], xk = { "\b": "Backspace", "\t": "Tab", "\x7f": "Delete", "\x1b": "Escape", Del: "Delete", Esc: "Escape", Left: "ArrowLeft", Right: "ArrowRight", Up: "ArrowUp", Down: "ArrowDown", Menu: "ContextMenu", Scroll: "ScrollLock", Win: "OS" }, Rk = { alt: e => e.altKey, control: e => e.ctrlKey, meta: e => e.metaKey, shift: e => e.shiftKey }; let Pk = (() => { var e; class t extends Ib { constructor(n) { super(n) } supports(n) { return null != t.parseEventName(n) } addEventListener(n, r, s) { const o = t.parseEventName(r), a = t.eventCallback(o.fullKey, s, this.manager.getZone()); return this.manager.getZone().runOutsideAngular(() => ba().onAndCancel(n, o.domEventName, a)) } static parseEventName(n) { const r = n.toLowerCase().split("."), s = r.shift(); if (0 === r.length || "keydown" !== s && "keyup" !== s) return null; const o = t._normalizeKey(r.pop()); let a = "", l = r.indexOf("code"); if (l > -1 && (r.splice(l, 1), a = "code."), Fb.forEach(u => { const h = r.indexOf(u); h > -1 && (r.splice(h, 1), a += u + ".") }), a += o, 0 != r.length || 0 === o.length) return null; const c = {}; return c.domEventName = s, c.fullKey = a, c } static matchEventFullKeyCode(n, r) { let s = xk[n.key] || n.key, o = ""; return r.indexOf("code.") > -1 && (s = n.code, o = "code."), !(null == s || !s) && (s = s.toLowerCase(), " " === s ? s = "space" : "." === s && (s = "dot"), Fb.forEach(a => { a !== s && (0, Rk[a])(n) && (o += a + ".") }), o += s, o === r) } static eventCallback(n, r, s) { return o => { t.matchEventFullKeyCode(o, n) && s.runGuarded(() => r(o)) } } static _normalizeKey(n) { return "esc" === n ? "escape" : n } } return (e = t).\u0275fac = function (n) { return new (n || e)(L(Kt)) }, e.\u0275prov = G({ token: e, factory: e.\u0275fac }), t })(); const Bk = A1(yP, "browser", [{ provide: Nr, useValue: "browser" }, { provide: Wm, useValue: function Fk() { Xh.makeCurrent() }, multi: !0 }, { provide: Kt, useFactory: function Lk() { return function OM(e) { Gd = e }(document), document }, deps: [] }]), Vk = new W(""), Bb = [{ provide: Ec, useClass: class Dk { addToWindow(t) { je.getAngularTestability = (n, r = !0) => { const s = t.findTestabilityInTree(n, r); if (null == s) throw new F(5103, !1); return s }, je.getAllAngularTestabilities = () => t.getAllTestabilities(), je.getAllAngularRootElements = () => t.getAllRootElements(), je.frameworkStabilizers || (je.frameworkStabilizers = []), je.frameworkStabilizers.push(n => { const r = je.getAllAngularTestabilities(); let s = r.length, o = !1; const a = function (l) { o = o || l, s--, 0 == s && n(o) }; r.forEach(l => { l.whenStable(a) }) }) } findTestabilityInTree(t, i, n) { return null == i ? null : t.getTestability(i) ?? (n ? ba().isShadowRoot(i) ? this.findTestabilityInTree(t, i.host, !0) : this.findTestabilityInTree(t, i.parentElement, !0) : null) } }, deps: [] }, { provide: S1, useClass: Ch, deps: [Se, Eh, Ec] }, { provide: Ch, useClass: Ch, deps: [Se, Eh, Ec] }], Vb = [{ provide: tf, useValue: "root" }, { provide: Ar, useFactory: function kk() { return new Ar }, deps: [] }, { provide: ep, useClass: Ok, multi: !0, deps: [Kt, Se, Nr] }, { provide: ep, useClass: Pk, multi: !0, deps: [Kt] }, xb, Nb, Mb, { provide: mf, useExisting: xb }, { provide: wb, useClass: wk, deps: [] }, []]; let Hk = (() => { var e; class t { constructor(n) { } static withServerTransition(n) { return { ngModule: t, providers: [{ provide: Wl, useValue: n.appId }] } } } return (e = t).\u0275fac = function (n) { return new (n || e)(L(Vk, 12)) }, e.\u0275mod = Pe({ type: e }), e.\u0275inj = Ae({ providers: [...Vb, ...Bb], imports: [yb, bP] }), t })(); typeof window < "u" && window; let Xt = (() => { var e; class t { constructor() { this.elementLookup = [] } findElementIndex(n) { let r = -1; for (let s = 0; s < this.elementLookup.length; s++)this.elementLookup[s].id == n && (r = s); return r } addElementObject(n, r, s) { let o = this.findElementIndex(n); if (o < 0) { let a = this.initializeElementLookupDtoNullTagHTML(n, s, r); this.elementLookup.push(a) } else this.elementLookup[o].object = r } addElementTagHTML(n, r, s) { let o = this.findElementIndex(n); if (o < 0) { let a = this.initializeElementLookupDtoNullObject(n, s, r); this.elementLookup.push(a) } else this.elementLookup[o].tagHtml = r } addElementAll(n, r, s, o) { let a = this.elementLookup.find(l => { }); if (null == a) { let l = this.initializeElementLookupDtoAll(n, r, o, s); this.elementLookup.push(l) } else null == a.tagHtml && (a.tagHtml = s), null == a.object && (a.object = null) } getElement(n) { return this.elementLookup.find(s => s.id == n) ?? null } initializeElementLookupDtoAll(n, r, s, o) { return new ap(n, r, s, o) } initializeElementLookupDtoNullObject(n, r, s) { return new ap(n, null, r, s) } initializeElementLookupDtoNullTagHTML(n, r, s) { return new ap(n, s, r, null) } clearElementLookupDict() { this.elementLookup.length = 0 } } return (e = t).\u0275fac = function (n) { return new (n || e) }, e.\u0275prov = G({ token: e, factory: e.\u0275fac, providedIn: "root" }), t })(); class ap { constructor(t, i, n, r) { this.id = t, this.object = i, this.element = n, this.tagHtml = r } } let $t = (() => { var e; class t { } return (e = t).\u0275fac = function (n) { return new (n || e) }, e.\u0275prov = G({ token: e, factory: e.\u0275fac, providedIn: "root" }), t })(); function $b(e) { return mt((t, i) => { let s, n = null, r = !1; n = t.subscribe(ft(i, void 0, void 0, o => { s = Ft(e(o, $b(e)(t))), n ? (n.unsubscribe(), n = null, s.subscribe(i)) : r = !0 })), r && (n.unsubscribe(), n = null, s.subscribe(i)) }) } function ci(e, t) { return mt((i, n) => { let r = 0; i.subscribe(ft(n, s => e.call(t, s, r++) && n.next(s))) }) } function Gb(e) { return mt((t, i) => { try { t.subscribe(i) } finally { i.add(e) } }) } class $c { } class Gc { } class Pi { constructor(t) { this.normalizedNames = new Map, this.lazyUpdate = null, t ? "string" == typeof t ? this.lazyInit = () => { this.headers = new Map, t.split("\n").forEach(i => { const n = i.indexOf(":"); if (n > 0) { const r = i.slice(0, n), s = r.toLowerCase(), o = i.slice(n + 1).trim(); this.maybeSetNormalizedName(r, s), this.headers.has(s) ? this.headers.get(s).push(o) : this.headers.set(s, [o]) } }) } : typeof Headers < "u" && t instanceof Headers ? (this.headers = new Map, t.forEach((i, n) => { this.setHeaderEntries(n, i) })) : this.lazyInit = () => { this.headers = new Map, Object.entries(t).forEach(([i, n]) => { this.setHeaderEntries(i, n) }) } : this.headers = new Map } has(t) { return this.init(), this.headers.has(t.toLowerCase()) } get(t) { this.init(); const i = this.headers.get(t.toLowerCase()); return i && i.length > 0 ? i[0] : null } keys() { return this.init(), Array.from(this.normalizedNames.values()) } getAll(t) { return this.init(), this.headers.get(t.toLowerCase()) || null } append(t, i) { return this.clone({ name: t, value: i, op: "a" }) } set(t, i) { return this.clone({ name: t, value: i, op: "s" }) } delete(t, i) { return this.clone({ name: t, value: i, op: "d" }) } maybeSetNormalizedName(t, i) { this.normalizedNames.has(i) || this.normalizedNames.set(i, t) } init() { this.lazyInit && (this.lazyInit instanceof Pi ? this.copyFrom(this.lazyInit) : this.lazyInit(), this.lazyInit = null, this.lazyUpdate && (this.lazyUpdate.forEach(t => this.applyUpdate(t)), this.lazyUpdate = null)) } copyFrom(t) { t.init(), Array.from(t.headers.keys()).forEach(i => { this.headers.set(i, t.headers.get(i)), this.normalizedNames.set(i, t.normalizedNames.get(i)) }) } clone(t) { const i = new Pi; return i.lazyInit = this.lazyInit && this.lazyInit instanceof Pi ? this.lazyInit : this, i.lazyUpdate = (this.lazyUpdate || []).concat([t]), i } applyUpdate(t) { const i = t.name.toLowerCase(); switch (t.op) { case "a": case "s": let n = t.value; if ("string" == typeof n && (n = [n]), 0 === n.length) return; this.maybeSetNormalizedName(t.name, i); const r = ("a" === t.op ? this.headers.get(i) : void 0) || []; r.push(...n), this.headers.set(i, r); break; case "d": const s = t.value; if (s) { let o = this.headers.get(i); if (!o) return; o = o.filter(a => -1 === s.indexOf(a)), 0 === o.length ? (this.headers.delete(i), this.normalizedNames.delete(i)) : this.headers.set(i, o) } else this.headers.delete(i), this.normalizedNames.delete(i) } } setHeaderEntries(t, i) { const n = (Array.isArray(i) ? i : [i]).map(s => s.toString()), r = t.toLowerCase(); this.headers.set(r, n), this.maybeSetNormalizedName(t, r) } forEach(t) { this.init(), Array.from(this.normalizedNames.keys()).forEach(i => t(this.normalizedNames.get(i), this.headers.get(i))) } } class Zk { encodeKey(t) { return zb(t) } encodeValue(t) { return zb(t) } decodeKey(t) { return decodeURIComponent(t) } decodeValue(t) { return decodeURIComponent(t) } } const Qk = /%(\d[a-f0-9])/gi, Kk = { 40: "@", "3A": ":", 24: "$", "2C": ",", "3B": ";", "3D": "=", "3F": "?", "2F": "/" }; function zb(e) { return encodeURIComponent(e).replace(Qk, (t, i) => Kk[i] ?? t) } function zc(e) { return `${e}` } class ur { constructor(t = {}) { if (this.updates = null, this.cloneFrom = null, this.encoder = t.encoder || new Zk, t.fromString) { if (t.fromObject) throw new Error("Cannot specify both fromString and fromObject."); this.map = function Jk(e, t) { const i = new Map; return e.length > 0 && e.replace(/^\?/, "").split("&").forEach(r => { const s = r.indexOf("="), [o, a] = -1 == s ? [t.decodeKey(r), ""] : [t.decodeKey(r.slice(0, s)), t.decodeValue(r.slice(s + 1))], l = i.get(o) || []; l.push(a), i.set(o, l) }), i }(t.fromString, this.encoder) } else t.fromObject ? (this.map = new Map, Object.keys(t.fromObject).forEach(i => { const n = t.fromObject[i], r = Array.isArray(n) ? n.map(zc) : [zc(n)]; this.map.set(i, r) })) : this.map = null } has(t) { return this.init(), this.map.has(t) } get(t) { this.init(); const i = this.map.get(t); return i ? i[0] : null } getAll(t) { return this.init(), this.map.get(t) || null } keys() { return this.init(), Array.from(this.map.keys()) } append(t, i) { return this.clone({ param: t, value: i, op: "a" }) } appendAll(t) { const i = []; return Object.keys(t).forEach(n => { const r = t[n]; Array.isArray(r) ? r.forEach(s => { i.push({ param: n, value: s, op: "a" }) }) : i.push({ param: n, value: r, op: "a" }) }), this.clone(i) } set(t, i) { return this.clone({ param: t, value: i, op: "s" }) } delete(t, i) { return this.clone({ param: t, value: i, op: "d" }) } toString() { return this.init(), this.keys().map(t => { const i = this.encoder.encodeKey(t); return this.map.get(t).map(n => i + "=" + this.encoder.encodeValue(n)).join("&") }).filter(t => "" !== t).join("&") } clone(t) { const i = new ur({ encoder: this.encoder }); return i.cloneFrom = this.cloneFrom || this, i.updates = (this.updates || []).concat(t), i } init() { null === this.map && (this.map = new Map), null !== this.cloneFrom && (this.cloneFrom.init(), this.cloneFrom.keys().forEach(t => this.map.set(t, this.cloneFrom.map.get(t))), this.updates.forEach(t => { switch (t.op) { case "a": case "s": const i = ("a" === t.op ? this.map.get(t.param) : void 0) || []; i.push(zc(t.value)), this.map.set(t.param, i); break; case "d": if (void 0 === t.value) { this.map.delete(t.param); break } { let n = this.map.get(t.param) || []; const r = n.indexOf(zc(t.value)); -1 !== r && n.splice(r, 1), n.length > 0 ? this.map.set(t.param, n) : this.map.delete(t.param) } } }), this.cloneFrom = this.updates = null) } } class Xk { constructor() { this.map = new Map } set(t, i) { return this.map.set(t, i), this } get(t) { return this.map.has(t) || this.map.set(t, t.defaultValue()), this.map.get(t) } delete(t) { return this.map.delete(t), this } has(t) { return this.map.has(t) } keys() { return this.map.keys() } } function Wb(e) { return typeof ArrayBuffer < "u" && e instanceof ArrayBuffer } function qb(e) { return typeof Blob < "u" && e instanceof Blob } function Yb(e) { return typeof FormData < "u" && e instanceof FormData } class Sa { constructor(t, i, n, r) { let s; if (this.url = i, this.body = null, this.reportProgress = !1, this.withCredentials = !1, this.responseType = "json", this.method = t.toUpperCase(), function e2(e) { switch (e) { case "DELETE": case "GET": case "HEAD": case "OPTIONS": case "JSONP": return !1; default: return !0 } }(this.method) || r ? (this.body = void 0 !== n ? n : null, s = r) : s = n, s && (this.reportProgress = !!s.reportProgress, this.withCredentials = !!s.withCredentials, s.responseType && (this.responseType = s.responseType), s.headers && (this.headers = s.headers), s.context && (this.context = s.context), s.params && (this.params = s.params)), this.headers || (this.headers = new Pi), this.context || (this.context = new Xk), this.params) { const o = this.params.toString(); if (0 === o.length) this.urlWithParams = i; else { const a = i.indexOf("?"); this.urlWithParams = i + (-1 === a ? "?" : a < i.length - 1 ? "&" : "") + o } } else this.params = new ur, this.urlWithParams = i } serializeBody() { return null === this.body ? null : Wb(this.body) || qb(this.body) || Yb(this.body) || function t2(e) { return typeof URLSearchParams < "u" && e instanceof URLSearchParams }(this.body) || "string" == typeof this.body ? this.body : this.body instanceof ur ? this.body.toString() : "object" == typeof this.body || "boolean" == typeof this.body || Array.isArray(this.body) ? JSON.stringify(this.body) : this.body.toString() } detectContentTypeHeader() { return null === this.body || Yb(this.body) ? null : qb(this.body) ? this.body.type || null : Wb(this.body) ? null : "string" == typeof this.body ? "text/plain" : this.body instanceof ur ? "application/x-www-form-urlencoded;charset=UTF-8" : "object" == typeof this.body || "number" == typeof this.body || "boolean" == typeof this.body ? "application/json" : null } clone(t = {}) { const i = t.method || this.method, n = t.url || this.url, r = t.responseType || this.responseType, s = void 0 !== t.body ? t.body : this.body, o = void 0 !== t.withCredentials ? t.withCredentials : this.withCredentials, a = void 0 !== t.reportProgress ? t.reportProgress : this.reportProgress; let l = t.headers || this.headers, c = t.params || this.params; const u = t.context ?? this.context; return void 0 !== t.setHeaders && (l = Object.keys(t.setHeaders).reduce((h, g) => h.set(g, t.setHeaders[g]), l)), t.setParams && (c = Object.keys(t.setParams).reduce((h, g) => h.set(g, t.setParams[g]), c)), new Sa(i, n, s, { params: c, headers: l, context: u, reportProgress: a, responseType: r, withCredentials: o }) } } var so = function (e) { return e[e.Sent = 0] = "Sent", e[e.UploadProgress = 1] = "UploadProgress", e[e.ResponseHeader = 2] = "ResponseHeader", e[e.DownloadProgress = 3] = "DownloadProgress", e[e.Response = 4] = "Response", e[e.User = 5] = "User", e }(so || {}); class lp { constructor(t, i = 200, n = "OK") { this.headers = t.headers || new Pi, this.status = void 0 !== t.status ? t.status : i, this.statusText = t.statusText || n, this.url = t.url || null, this.ok = this.status >= 200 && this.status < 300 } } class cp extends lp { constructor(t = {}) { super(t), this.type = so.ResponseHeader } clone(t = {}) { return new cp({ headers: t.headers || this.headers, status: void 0 !== t.status ? t.status : this.status, statusText: t.statusText || this.statusText, url: t.url || this.url || void 0 }) } } class oo extends lp { constructor(t = {}) { super(t), this.type = so.Response, this.body = void 0 !== t.body ? t.body : null } clone(t = {}) { return new oo({ body: void 0 !== t.body ? t.body : this.body, headers: t.headers || this.headers, status: void 0 !== t.status ? t.status : this.status, statusText: t.statusText || this.statusText, url: t.url || this.url || void 0 }) } } class Zb extends lp { constructor(t) { super(t, 0, "Unknown Error"), this.name = "HttpErrorResponse", this.ok = !1, this.message = this.status >= 200 && this.status < 300 ? `Http failure during parsing for ${t.url || "(unknown url)"}` : `Http failure response for ${t.url || "(unknown url)"}: ${t.status} ${t.statusText}`, this.error = t.error || null } } function up(e, t) { return { body: t, headers: e.headers, context: e.context, observe: e.observe, params: e.params, reportProgress: e.reportProgress, responseType: e.responseType, withCredentials: e.withCredentials } } let Wc = (() => { var e; class t { constructor(n) { this.handler = n } request(n, r, s = {}) { let o; if (n instanceof Sa) o = n; else { let c, u; c = s.headers instanceof Pi ? s.headers : new Pi(s.headers), s.params && (u = s.params instanceof ur ? s.params : new ur({ fromObject: s.params })), o = new Sa(n, r, void 0 !== s.body ? s.body : null, { headers: c, context: s.context, params: u, reportProgress: s.reportProgress, responseType: s.responseType || "json", withCredentials: s.withCredentials }) } const a = ds(o).pipe(function Yk(e, t) { return $(t) ? us(e, t, 1) : us(e, 1) }(c => this.handler.handle(c))); if (n instanceof Sa || "events" === s.observe) return a; const l = a.pipe(ci(c => c instanceof oo)); switch (s.observe || "body") { case "body": switch (o.responseType) { case "arraybuffer": return l.pipe(Pt(c => { if (null !== c.body && !(c.body instanceof ArrayBuffer)) throw new Error("Response is not an ArrayBuffer."); return c.body })); case "blob": return l.pipe(Pt(c => { if (null !== c.body && !(c.body instanceof Blob)) throw new Error("Response is not a Blob."); return c.body })); case "text": return l.pipe(Pt(c => { if (null !== c.body && "string" != typeof c.body) throw new Error("Response is not a string."); return c.body })); default: return l.pipe(Pt(c => c.body)) }case "response": return l; default: throw new Error(`Unreachable: unhandled observe type ${s.observe}}`) } } delete(n, r = {}) { return this.request("DELETE", n, r) } get(n, r = {}) { return this.request("GET", n, r) } head(n, r = {}) { return this.request("HEAD", n, r) } jsonp(n, r) { return this.request("JSONP", n, { params: (new ur).append(r, "JSONP_CALLBACK"), observe: "body", responseType: "json" }) } options(n, r = {}) { return this.request("OPTIONS", n, r) } patch(n, r, s = {}) { return this.request("PATCH", n, up(s, r)) } post(n, r, s = {}) { return this.request("POST", n, up(s, r)) } put(n, r, s = {}) { return this.request("PUT", n, up(s, r)) } } return (e = t).\u0275fac = function (n) { return new (n || e)(L($c)) }, e.\u0275prov = G({ token: e, factory: e.\u0275fac }), t })(); function Kb(e, t) { return t(e) } function i2(e, t) { return (i, n) => t.intercept(i, { handle: r => e(r, n) }) } const s2 = new W(""), Ta = new W(""), Xb = new W(""); function o2() { let e = null; return (t, i) => { null === e && (e = (fe(s2, { optional: !0 }) ?? []).reduceRight(i2, Kb)); const n = fe(bh), r = n.add(); return e(t, i).pipe(Gb(() => n.remove(r))) } } let eD = (() => { var e; class t extends $c { constructor(n, r) { super(), this.backend = n, this.injector = r, this.chain = null, this.pendingTasks = fe(bh) } handle(n) { if (null === this.chain) { const s = Array.from(new Set([...this.injector.get(Ta), ...this.injector.get(Xb, [])])); this.chain = s.reduceRight((o, a) => function r2(e, t, i) { return (n, r) => i.runInContext(() => t(n, s => e(s, r))) }(o, a, this.injector), Kb) } const r = this.pendingTasks.add(); return this.chain(n, s => this.backend.handle(s)).pipe(Gb(() => this.pendingTasks.remove(r))) } } return (e = t).\u0275fac = function (n) { return new (n || e)(L(Gc), L(zn)) }, e.\u0275prov = G({ token: e, factory: e.\u0275fac }), t })(); const u2 = /^\)\]\}',?\n/; let nD = (() => { var e; class t { constructor(n) { this.xhrFactory = n } handle(n) { if ("JSONP" === n.method) throw new F(-2800, !1); const r = this.xhrFactory; return (r.\u0275loadImpl ? wo(r.\u0275loadImpl()) : ds(null)).pipe(Bu(() => new ze(o => { const a = r.build(); if (a.open(n.method, n.urlWithParams), n.withCredentials && (a.withCredentials = !0), n.headers.forEach((D, T) => a.setRequestHeader(D, T.join(","))), n.headers.has("Accept") || a.setRequestHeader("Accept", "application/json, text/plain, */*"), !n.headers.has("Content-Type")) { const D = n.detectContentTypeHeader(); null !== D && a.setRequestHeader("Content-Type", D) } if (n.responseType) { const D = n.responseType.toLowerCase(); a.responseType = "json" !== D ? D : "text" } const l = n.serializeBody(); let c = null; const u = () => { if (null !== c) return c; const D = a.statusText || "OK", T = new Pi(a.getAllResponseHeaders()), C = function d2(e) { return "responseURL" in e && e.responseURL ? e.responseURL : /^X-Request-URL:/m.test(e.getAllResponseHeaders()) ? e.getResponseHeader("X-Request-URL") : null }(a) || n.url; return c = new cp({ headers: T, status: a.status, statusText: D, url: C }), c }, h = () => { let { headers: D, status: T, statusText: C, url: P } = u(), O = null; 204 !== T && (O = typeof a.response > "u" ? a.responseText : a.response), 0 === T && (T = O ? 200 : 0); let V = T >= 200 && T < 300; if ("json" === n.responseType && "string" == typeof O) { const J = O; O = O.replace(u2, ""); try { O = "" !== O ? JSON.parse(O) : null } catch (ue) { O = J, V && (V = !1, O = { error: ue, text: O }) } } V ? (o.next(new oo({ body: O, headers: D, status: T, statusText: C, url: P || void 0 })), o.complete()) : o.error(new Zb({ error: O, headers: D, status: T, statusText: C, url: P || void 0 })) }, g = D => { const { url: T } = u(), C = new Zb({ error: D, status: a.status || 0, statusText: a.statusText || "Unknown Error", url: T || void 0 }); o.error(C) }; let _ = !1; const y = D => { _ || (o.next(u()), _ = !0); let T = { type: so.DownloadProgress, loaded: D.loaded }; D.lengthComputable && (T.total = D.total), "text" === n.responseType && a.responseText && (T.partialText = a.responseText), o.next(T) }, b = D => { let T = { type: so.UploadProgress, loaded: D.loaded }; D.lengthComputable && (T.total = D.total), o.next(T) }; return a.addEventListener("load", h), a.addEventListener("error", g), a.addEventListener("timeout", g), a.addEventListener("abort", g), n.reportProgress && (a.addEventListener("progress", y), null !== l && a.upload && a.upload.addEventListener("progress", b)), a.send(l), o.next({ type: so.Sent }), () => { a.removeEventListener("error", g), a.removeEventListener("abort", g), a.removeEventListener("load", h), a.removeEventListener("timeout", g), n.reportProgress && (a.removeEventListener("progress", y), null !== l && a.upload && a.upload.removeEventListener("progress", b)), a.readyState !== a.DONE && a.abort() } }))) } } return (e = t).\u0275fac = function (n) { return new (n || e)(L(wb)) }, e.\u0275prov = G({ token: e, factory: e.\u0275fac }), t })(); const dp = new W("XSRF_ENABLED"), iD = new W("XSRF_COOKIE_NAME", { providedIn: "root", factory: () => "XSRF-TOKEN" }), rD = new W("XSRF_HEADER_NAME", { providedIn: "root", factory: () => "X-XSRF-TOKEN" }); class sD { } let p2 = (() => { var e; class t { constructor(n, r, s) { this.doc = n, this.platform = r, this.cookieName = s, this.lastCookieString = "", this.lastToken = null, this.parseCount = 0 } getToken() { if ("server" === this.platform) return null; const n = this.doc.cookie || ""; return n !== this.lastCookieString && (this.parseCount++, this.lastToken = fb(n, this.cookieName), this.lastCookieString = n), this.lastToken } } return (e = t).\u0275fac = function (n) { return new (n || e)(L(Kt), L(Nr), L(iD)) }, e.\u0275prov = G({ token: e, factory: e.\u0275fac }), t })(); function g2(e, t) { const i = e.url.toLowerCase(); if (!fe(dp) || "GET" === e.method || "HEAD" === e.method || i.startsWith("http://") || i.startsWith("https://")) return t(e); const n = fe(sD).getToken(), r = fe(rD); return null != n && !e.headers.has(r) && (e = e.clone({ headers: e.headers.set(r, n) })), t(e) } var dr = function (e) { return e[e.Interceptors = 0] = "Interceptors", e[e.LegacyInterceptors = 1] = "LegacyInterceptors", e[e.CustomXsrfConfiguration = 2] = "CustomXsrfConfiguration", e[e.NoXsrfProtection = 3] = "NoXsrfProtection", e[e.JsonpSupport = 4] = "JsonpSupport", e[e.RequestsMadeViaParent = 5] = "RequestsMadeViaParent", e[e.Fetch = 6] = "Fetch", e }(dr || {}); function Br(e, t) { return { \u0275kind: e, \u0275providers: t } } function _2(...e) { const t = [Wc, nD, eD, { provide: $c, useExisting: eD }, { provide: Gc, useExisting: nD }, { provide: Ta, useValue: g2, multi: !0 }, { provide: dp, useValue: !0 }, { provide: sD, useClass: p2 }]; for (const i of e) t.push(...i.\u0275providers); return function Kd(e) { return { \u0275providers: e } }(t) } const oD = new W("LEGACY_INTERCEPTOR_FN"); let v2 = (() => { var e; class t { } return (e = t).\u0275fac = function (n) { return new (n || e) }, e.\u0275mod = Pe({ type: e }), e.\u0275inj = Ae({ providers: [_2(Br(dr.LegacyInterceptors, [{ provide: oD, useFactory: o2 }, { provide: Ta, useExisting: oD, multi: !0 }]))] }), t })(), aD = (() => { var e; class t { constructor(n) { this.http = n } load() { return this.http.get("/assets/config.json").toPromise().then(r => (Object.assign(this, r), r)) } } return (e = t).\u0275fac = function (n) { return new (n || e)(L(Wc)) }, e.\u0275prov = G({ token: e, factory: e.\u0275fac, providedIn: "root" }), t })(), lD = (() => { var e; class t { constructor() { this.modals = [] } registerModal(n, r) { this.modals.push({ key: n, modalRef: r }) } removeModalByKey(n) { let r = -1; for (let s = 0; s < this.modals.length; s++) { let o = this.modals[s]; if (null != o && o.key == n) { r = s; break } } return r >= 0 && delete this.modals[r], r } closeRemoveAllModals() { this.modals.forEach(n => { n.modalRef.close() }), this.modals.length = 0 } } return (e = t).\u0275fac = function (n) { return new (n || e) }, e.\u0275prov = G({ token: e, factory: e.\u0275fac, providedIn: "root" }), t })(), Yc = (() => { var e; class t { constructor() { this.contextKeyVal = [] } addContext(n, r) { let s = !1; for (let o = 0; o < this.contextKeyVal.length; o++) { let a = this.contextKeyVal[o]; a.key == n && (a.value = r, s = !0) } 0 == s && this.contextKeyVal.push(new E2(n, r)) } getContext() { return this.contextKeyVal } retrieveContextValue(n) { let r = -1; for (let s = 0; s < this.contextKeyVal.length; s++)if (this.contextKeyVal[s].key == n) { r = s; break } return r >= 0 ? this.contextKeyVal[r].value : "" } clearContext() { this.contextKeyVal.length = 0 } } return (e = t).\u0275fac = function (n) { return new (n || e) }, e.\u0275prov = G({ token: e, factory: e.\u0275fac, providedIn: "root" }), t })(); class E2 { constructor(t, i) { this.key = t, this.value = i } } let Ma = (() => { var e; class t { constructor(n) { this.elementLookupService = n, this.contextMenus = [] } registerContextMenu(n, r) { this.contextMenus.push({ key: n, contextMenu: r }), this.elementLookupService.addElementTagHTML(n, null, r) } removeContextMenuByKey(n) { let r = -1; for (let s = 0; s < this.contextMenus.length; s++)if (this.contextMenus[s].key == n) { r = s; break } return r >= 0 && delete this.contextMenus[r], r } retrieveContextValue(n) { let r = -1; for (let s = 0; s < this.contextMenus.length; s++)if (this.contextMenus[s].key == n) { r = s; break } return r >= 0 ? this.contextMenus[r].contextMenu : null } removeAllContextMenus() { this.contextMenus.length = 0 } } return (e = t).\u0275fac = function (n) { return new (n || e)(L(Xt)) }, e.\u0275prov = G({ token: e, factory: e.\u0275fac, providedIn: "root" }), t })(), S2 = (() => { var e; class t { constructor(n, r, s, o, a, l) { this.http = n, this.configService = r, this.modalRefService = s, this.elementLookupService = o, this.contextService = a, this.contextMenuService = l, this.backend_URI = "http://localhost:8000", this.backend_URI = r.serverUrl + ":" + r.serverPort } get() { this.modalRefService.closeRemoveAllModals(), this.elementLookupService.clearElementLookupDict(), this.contextService.clearContext(), this.contextMenuService.removeAllContextMenus(); let n = $t.injector.get(Bn); const r = this.http.get(this.backend_URI).pipe($b((s, o) => (console.error("Error occurred during the HTTP request:", s), n.postMessage("error connection"), function qk(e, t) { const i = $(e) ? e : () => e, n = r => r.error(i()); return new ze(t ? r => t.schedule(n, 0, r) : n) }(() => new Error(s.error))))); return r } post(n, r) { let s = []; r.forEach(a => s.push(Object.assign({}, a))), this.modalRefService.closeRemoveAllModals(), this.elementLookupService.clearElementLookupDict(), this.contextService.clearContext(), this.contextMenuService.removeAllContextMenus(); let o = null; return o = this.http.post(this.backend_URI + "/backend", s.length > 0 ? { function: n, context: s } : { function: n }), o } } return (e = t).\u0275fac = function (n) { return new (n || e)(L(Wc), L(aD), L(lD), L(Xt), L(Yc), L(Ma)) }, e.\u0275prov = G({ token: e, factory: e.\u0275fac, providedIn: "root" }), t })(), Bn = (() => { var e; class t { constructor(n, r, s) { this.httpService = n, this.httpClient = r, this.contextService = s, this.frontendJson = new ee, this.menuBar = new ee, this.messageLists = new ee, this.contextMenus = new ee, this.lastData = null, this.backend_URI = "http://localhost:8000" } initialGet() { let n = document.getElementById("loader"); n?.removeAttribute("hidden"), this.httpService.get().subscribe({ next: r => { this.lastData = r, this.frontendJson.next(r), n?.setAttribute("hidden", "true") } }) } operationPost(n) { let r = this.contextService.getContext(), s = document.getElementById("loader"); s?.removeAttribute("hidden"), this.httpService.post(n.operation, r).subscribe({ next: o => { this.lastData = o, this.frontendJson.next(o), s?.setAttribute("hidden", "true") } }) } uncheckedPost(n) { this.httpClient.post(this.backend_URI + "/backend", n).subscribe({ next: r => { this.lastData = r, this.frontendJson.next(r) } }) } detectCreateMenuBar(n) { "menu_bar" == n.type ? this.menuBar.next(n) : n.children.forEach(r => { this.detectCreateMenuBar(r) }) } getAllMessagesContextMenus(n, r, s) { "message" == n.type ? r.push(n) : "context_menu" == n.type ? s.push(n) : n.children.forEach(o => { this.getAllMessagesContextMenus(o, r, s) }) } postMessage(n, r = "danger") { let s = [this.getErrorMessage(n)]; this.messageLists.next(s) } getErrorMessage(n, r = "danger") { return { id: "client_error", type: "message", parent: "window", attributes: [{ id: "client_error", key: "message", value: n }, { id: "client_error", key: "title", value: "Error" }, { id: "client_error", key: "type", value: r }], when: [], children: [] } } } return (e = t).\u0275fac = function (n) { return new (n || e)(L(S2), L(Wc), L(Yc)) }, e.\u0275prov = G({ token: e, factory: e.\u0275fac, providedIn: "root" }), t })(), Tn = (() => { var e; class t { constructor() { } attrBackgroundColor(n, r) { n.style.backgroundColor = r.value } attrHeight(n, r) { n.style.height = r.value + "px" } attrWidth(n, r) { n.style.width = r.value + "px" } setBorderHelper(n, r) { let s = Number(this.findGetAttributeValue("border_width", r, "0")), o = this.findGetAttributeValue("border_color", r, "black"); this.setBorder(n, s, o, "solid") } setBorder(n, r, s, o) { r > 0 && (n.style.border = String(r) + "px " + o + " " + s) } addAttributes(n, r) { let s = [{ key: "background_color", value: this.attrBackgroundColor }, { key: "height", value: this.attrHeight }, { key: "width", value: this.attrWidth }]; r.forEach(o => { let a = s.findIndex(l => l.key == o.key); a >= 0 && s[a].value(n, o) }), this.setHover(n, r) } addGeneralAttributes(n, r) { this.setGrid(n, r), this.setBorderHelper(n, r) } setGrid(n, r) { let s = this.findAttribute("grid_row", r), o = this.findAttribute("grid_row_span", r), a = this.findAttribute("grid_column", r), l = this.findAttribute("grid_column_span", r), c = 1; null != o && (c = Number(o.value)); let u = 1; if (null != l && (u = Number(l.value)), null != s) { let h = Number(s.value) + 1; n.style.gridRow = String(h) + "/span " + String(c) } if (null != a) { let h = Number(a.value) + 1; n.style.gridColumn = String(h) + "/span " + String(u) } } setHover(n, r) { let s = this.findGetAttributeValue("on_hover", r, "false"), o = this.findGetAttributeValue("on_hover_background_color", r, "white"), a = this.findGetAttributeValue("on_hover_foreground_color", r, "black"), l = this.findGetAttributeValue("on_hover_border_color", r, "white"), c = this.findGetAttributeValue("background_color", r, "white"), u = this.findGetAttributeValue("foreground_color", r, "black"), h = Number(this.findGetAttributeValue("border_width", r, "0")), g = this.findGetAttributeValue("border_color", r, "black"), _ = "solid"; "true" == s && (n.onmouseenter = y => { n.style.backgroundColor = o, n.style.color = a, this.setBorder(n, h, l, _) }, n.onmouseleave = y => { n.style.backgroundColor = c, n.style.color = u, this.setBorder(n, h, g, _) }) } textAttributes(n, r) { } addClasses(n, r, s, o, a = "class") { s.forEach(function (c) { n.classList.contains(c) && n.classList.remove(c), n.classList.add(c) }); let l = !1; r.forEach(function (c) { if (c.key == a) { l = !0; let u = String(c.value); n.classList.add(u) } }), l || o.forEach(function (c) { n.classList.add(c) }) } setAttributesDirectly(n, r) { r.forEach(s => { n.style[s.key] = s.value }) } findAttribute(n, r) { let s = null, o = r.findIndex(a => a.key == n); return o >= 0 && (s = r[o]), s } findGetAttributeValue(n, r, s) { let o = s, a = r.findIndex(l => l.key == n); return a >= 0 && (o = r[a].value), o } setAbsoulteRelativePositions(n, r, s) { let o = Number(this.findGetAttributeValue("pos_x", s.attributes, "-1")), a = Number(this.findGetAttributeValue("pos_y", s.attributes, "-1")); o >= 0 && "absstatic" == n && (r.style.left = String(o) + "px"), o >= 0 && "relstatic" == n && (r.style.left = String(o) + "%"), a >= 0 && "absstatic" == n && (r.style.top = String(a) + "px"), a >= 0 && "relstatic" == n && (r.style.top = String(a) + "%"), (a >= 0 || o >= 0) && ("absstatic" == n || "relstatic" == n) && (r.style.position = "absolute"); let l = this.findAttribute("grid_row", s.attributes), c = this.findAttribute("grid_column", s.attributes); null == l && "grid" == n && (r.style.gridRow = "1"), null == c && "grid" == n && (r.style.gridColumn = "1") } setChildLayout(n, r) { let s = this.findAttribute("child_layout", r), o = this.findAttribute("flex_direction", r); if (null != s) { let a = s?.value; "grid" == a ? n.style.display = "grid" : "flex" == a ? (n.style.display = "flex", n.style.flexDirection = null != o ? o.value : "column") : ("absstatic" == a || "relstatic" == a) && (n.style.position = "relative", n.style.display = "flex") } else n.style.display = "flex", n.style.flexDirection = null != o ? o.value : "column" } setVisibility(n, r) { let s = this.findAttribute("visibility", r); null != s && ("hidden" == s.value || "collapse" == s.value ? n.style.visibility = "collapse" : ("shown" == s.value || "visible" == s.value) && (n.style.visibility = "visible")) } } return (e = t).\u0275fac = function (n) { return new (n || e) }, e.\u0275prov = G({ token: e, factory: e.\u0275fac, providedIn: "root" }), t })(); const T2 = ["child"]; function M2(e, t) { } let cD = (() => { var e; class t { constructor(n, r, s, o) { this.childBearerService = n, this.cd = r, this.attributeService = s, this.elementLookupService = o, this.element = null, this.parentLayout = "", this.container_id = "", this.container = null, this.children = [] } ngAfterViewInit() { if (null != this.element) { "modal" != this.element.type && this.elementLookupService.addElementObject(this.element.id, this, this.element); let n = this.attributeService.findGetAttributeValue("child_layout", this.element.attributes, "flex"); this.element.children.forEach(r => { let s = this.childBearerService.bearChild(this.child, r, n); null != s && this.children.push(s) }), this.cd.detectChanges() } } } return (e = t).\u0275fac = function (n) { return new (n || e)(v(Su), v(gt), v(Tn), v(Xt)) }, e.\u0275cmp = et({ type: e, selectors: [["app-container"]], viewQuery: function (n, r) { if (1 & n && at(T2, 5, Cn), 2 & n) { let s; se(s = oe()) && (r.child = s.first) } }, inputs: { element: "element", parentLayout: "parentLayout" }, decls: 2, vars: 0, consts: [["child", ""]], template: function (n, r) { 1 & n && B(0, M2, 0, 0, "ng-template", null, 0, En) } }), t })(); function uD(e) { let t = [], i = "", n = 0; for (let r = 0; r < e.length; r++) { let s = e.charAt(r); if ("(" == s) n += 1, i += s; else if (")" == s) { if (n -= 1, i += s, n < 0) { console.log("ERROR - BRACKE LEVEL LOWER THAN 0"); break } } else "," == s && 0 == n ? (t.push(i), i = "") : i += s } return t.push(i), t } function dD(e) { $t.injector.get(Ma).contextMenus.length > 0 && (e.preventDefault(), e.stopPropagation(), fD()) } function fD() { let e = $t.injector.get(Ma), t = !1; return e.contextMenus.forEach(i => { let n = document.getElementById(i.key); null != n && "block" == n.style.display && (n.style.display = "none", t = !0) }), t } function hD(e, t) { let i = $t.injector.get(Xt), n = e.operation; n = n.substring(1), n = n.slice(0, -1); let r = uD(n), s = r[0], o = r[1], a = r[2].replaceAll('"', ""), l = i.getElement(s); if (null != l) { if ("context_menu" == l.element.type && null != t) return void ("visibility" != o || "visible" != a ? console.error("For updates to context menu only tuples of form (_,visibility,visible) are valid, but got: " + s + "," + o + "," + a) : function I2(e, t) { if (t.preventDefault(), t.stopPropagation(), 1 != fD() && null != $t.injector.get(Ma).retrieveContextValue(e) && "pageX" in t && "pageY" in t && "number" == typeof t.pageX && "number" == typeof t.pageY) { let r = document.getElementById(e); null != r && ("block" == r.style.display ? r.style.display = "none" : (r.style.display = "block", r.style.left = t.pageX + "px", r.style.top = t.pageY + "px")) } }(s, t)); let c = l.element.attributes, u = !1; for (let h in c) c[h].key == o && (u = !0, c[h] = { id: s, key: o, value: a }); 0 == u && c.push({ id: s, key: o, value: a }), l.element.attributes = c, null != l.object && "setAttributes" in l.object && null != l.object.setAttributes && "function" == typeof l.object.setAttributes && l.object.setAttributes(c), null == l.object && l.element.type.startsWith("svg") && null != l.tagHtml && l.tagHtml.style.setProperty(o, a.replaceAll('"', "")), null != l.tagHtml && $t.injector.get(Su).setChildTagAttributes(l.tagHtml, l.element) } else console.log("COULD NOT FIND ELEMENT FOR when:" + s + "::" + o + "::" + a), console.log(e) } function pD(e) { let t = $t.injector.get(Yc), i = /_context_value\((?:"([^"]*)"|(\w+)|(\w+\(\s*(?:"[^"]*"|\w+)\s*\)))(?:,\s*(?:"([^"]*)"|(\w+)|(\w+\(\s*("[^"]*"|\w+)\s*\))))?(?:,\s*(?:"([^"]*)"|(\w+)|(\w+\(\s*(?:"[^"]*"|\w+)\s*\))))?\)/g, n = /^(\w+)$|^(\w+\((?:"([^"]*)"|(\w+)|(\w+\(\s*(?:"[^"]*"|\w+)\s*\)))((?:,\s*(?:"([^"]*)"|(\w+)|(\w+\(\s*("[^"]*"|\w+)\s*\))))?)*\))$/, r = i.exec(e); for (; null != r;) { let s = r[0], o = r[1] || r[2] || r[3], a = r[4] || r[5] || r[6], l = r[7] || r[8] || r[9], c = t.retrieveContextValue(o); if (null == c || "" == c) { if (null == l) throw new Error("Missing required value for " + o); c = l } let u = /^[0-9]*$/.test(c), h = n.test(c), g = c.length > 1 && '"' == c[0] && '"' == c.slice(-1), _ = !u && !h && !g; if (null != a) { if ("str" != a && "int" != a && "const" != a) throw new Error("Not a valid type " + a + ". Should be str, int or const."); if ("str" != a || g) { if ("int" == a && !u) throw new Error("Expected a number but got " + c) } else c = '"' + c + '"'; if ("const" == a && !h) throw new Error("Expected a constant that can be parsed to an atom, but got: " + c) } console.log("out"), null == a && _ && (c = '"' + c + '"'), e = e.replace(s, c), i = /_context_value\((?:"([^"]*)"|(\w+)|(\w+\(\s*(?:"[^"]*"|\w+)\s*\)))(?:,\s*(?:"([^"]*)"|(\w+)|(\w+\(\s*("[^"]*"|\w+)\s*\))))?(?:,\s*(?:"([^"]*)"|(\w+)|(\w+\(\s*(?:"[^"]*"|\w+)\s*\))))?\)/g, r = i.exec(e) } return e } function gD(e, t) { let i = $t.injector.get(Bn), n = e.operation; n = pD(n), e.operation = n, i.operationPost(e) } function _D(e, t) { let i = $t.injector.get(Yc), n = e.operation; if (n = pD(n), "(" == n[0]) { n = n.substring(1), n = n.slice(0, -1); let o = uD(n); if (o.length >= 2) { o.length > 2 && (console.log("ATTENTION, CONTEXT LENGTH GREATER THAN 2 FOR"), console.log(e)); let a = o[0], l = o[1]; if (null != t) { let u = t.target; if (null != u && "value" in u && null != l.match(/_value/g) && "string" == typeof u.value) { if ("" == u.value) return void console.log("EVENT TARGET IS EMPTY"); l = l.replace("_value", u.value) } } for (let c = 2; c < o.length; c++)l = l + "," + o[c]; return void i.addContext(a, l) } } let r = "The value of context event should be a tuple of size 2, but got " + e.operation; console.error(r), $t.injector.get(Bn).postMessage(r, "warning") } let Fi = (() => { var e; class t { constructor(n) { this.frontendService = n, document.onclick = dD, document.oncontextmenu = dD } findCallback(n, r) { let s = null, o = r.findIndex(a => a.actionType == n); return o >= 0 && (s = r[o]), s } setCallbacks(n, r) { this.handleEvent(n, r, "click", "click"), this.handleEvent(n, r, "input", "input"), this.handleEvent(n, r, "right_click", "contextmenu"), this.handleEvent(n, r, "mouseenter", "mouseenter"), this.handleEvent(n, r, "mouseleave", "mouseleave"), this.handleEvent(n, r, "load", "load"), this.handleEvent(n, r, "dblclick", "dblclick") } handleEvent(n, r, s = "", o = "") { let a = []; if (r.forEach(l => { l.actionType == s && a.push(l) }), a.length > 0 && "" != o) { if ("load" == s) return void a.forEach(l => { if ("context" == l.interactionType && _D(l, null), "update" == l.interactionType && hD(l, null), "call" == l.interactionType || "callback" == l.interactionType) { console.log("call"); try { gD(l) } catch (c) { $t.injector.get(Bn).postMessage(c.message, "warning") } } }); "click" == s && (n.style.cursor = "pointer"), n.addEventListener(o, function (l) { a.sort(function (g, _) { return g.interactionType < _.interactionType ? 1 : g.interactionType > _.interactionType ? -1 : 0 }); const c = a.filter(g => "update" == g.interactionType), u = a.filter(g => "context" == g.interactionType), h = a.filter(g => "call" == g.interactionType || "callback" == g.interactionType); c.forEach(g => { try { hD(g, l) } catch (_) { $t.injector.get(Bn).postMessage(_.message, "warning") } }), u.forEach(g => { try { _D(g, l) } catch (_) { $t.injector.get(Bn).postMessage(_.message, "warning") } }), h.length > 1 && (h[0].operation = "(" + h.map(g => g.operation).join(",") + ")"), h.forEach(g => { try { gD(h[0]) } catch (_) { $t.injector.get(Bn).postMessage(_.message, "warning") } }) }) } } } return (e = t).\u0275fac = function (n) { return new (n || e)(L(Bn)) }, e.\u0275prov = G({ token: e, factory: e.\u0275fac, providedIn: "root" }), t })(); const { isArray: N2 } = Array; function mD(e) { return Pt(t => function A2(e, t) { return N2(t) ? e(...t) : e(t) }(e, t)) } const O2 = ["addListener", "removeListener"], x2 = ["addEventListener", "removeEventListener"], R2 = ["on", "off"]; function Gt(e, t, i, n) { if ($(i) && (n = i, i = void 0), n) return Gt(e, t, i).pipe(mD(n)); const [r, s] = function k2(e) { return $(e.addEventListener) && $(e.removeEventListener) }(e) ? x2.map(o => a => e[o](t, a, i)) : function P2(e) { return $(e.addListener) && $(e.removeListener) }(e) ? O2.map(vD(e, t)) : function F2(e) { return $(e.on) && $(e.off) }(e) ? R2.map(vD(e, t)) : []; if (!r && Pu(e)) return us(o => Gt(o, t, i))(Ft(e)); if (!r) throw new TypeError("Invalid event target"); return new ze(o => { const a = (...l) => o.next(1 < l.length ? l : l[0]); return r(a), () => s(a) }) } function vD(e, t) { return i => n => e[i](t, n) } class L2 extends de { constructor(t, i) { super() } schedule(t, i = 0) { return this } } const Zc = { setInterval(e, t, ...i) { const { delegate: n } = Zc; return n?.setInterval ? n.setInterval(e, t, ...i) : setInterval(e, t, ...i) }, clearInterval(e) { const { delegate: t } = Zc; return (t?.clearInterval || clearInterval)(e) }, delegate: void 0 }, yD = { now: () => (yD.delegate || Date).now(), delegate: void 0 }; class Ia { constructor(t, i = Ia.now) { this.schedulerActionCtor = t, this.now = i } schedule(t, i = 0, n) { return new this.schedulerActionCtor(this, t).schedule(n, i) } } Ia.now = yD.now; const bD = new class V2 extends Ia { constructor(t, i = Ia.now) { super(t, i), this.actions = [], this._active = !1 } flush(t) { const { actions: i } = this; if (this._active) return void i.push(t); let n; this._active = !0; do { if (n = t.execute(t.state, t.delay)) break } while (t = i.shift()); if (this._active = !1, n) { for (; t = i.shift();)t.unsubscribe(); throw n } } }(class B2 extends L2 { constructor(t, i) { super(t, i), this.scheduler = t, this.work = i, this.pending = !1 } schedule(t, i = 0) { var n; if (this.closed) return this; this.state = t; const r = this.id, s = this.scheduler; return null != r && (this.id = this.recycleAsyncId(s, r, i)), this.pending = !0, this.delay = i, this.id = null !== (n = this.id) && void 0 !== n ? n : this.requestAsyncId(s, this.id, i), this } requestAsyncId(t, i, n = 0) { return Zc.setInterval(t.flush.bind(t, this), n) } recycleAsyncId(t, i, n = 0) { if (null != n && this.delay === n && !1 === this.pending) return i; null != i && Zc.clearInterval(i) } execute(t, i) { if (this.closed) return new Error("executing a cancelled action"); this.pending = !1; const n = this._execute(t, i); if (n) return n; !1 === this.pending && null != this.id && (this.id = this.recycleAsyncId(this.scheduler, this.id, null)) } _execute(t, i) { let r, n = !1; try { this.work(t) } catch (s) { n = !0, r = s || new Error("Scheduled action threw falsy error") } if (n) return this.unsubscribe(), r } unsubscribe() { if (!this.closed) { const { id: t, scheduler: i } = this, { actions: n } = i; this.work = this.state = this.scheduler = null, this.pending = !1, ke(n, this), null != t && (this.id = this.recycleAsyncId(i, t, null)), this.delay = null, super.unsubscribe() } } }), H2 = bD; function DD(e = 0, t, i = H2) { let n = -1; return null != t && (bg(t) ? i = t : n = t), new ze(r => { let s = function U2(e) { return e instanceof Date && !isNaN(e) }(e) ? +e - i.now() : e; s < 0 && (s = 0); let o = 0; return i.schedule(function () { r.closed || (r.next(o++), 0 <= n ? this.schedule(void 0, n) : r.complete()) }, s) }) } const { isArray: j2 } = Array; function wD(e) { return 1 === e.length && j2(e[0]) ? e[0] : e } function CD(...e) { return 1 === (e = wD(e)).length ? Ft(e[0]) : new ze(function $2(e) { return t => { let i = []; for (let n = 0; i && !t.closed && n < e.length; n++)i.push(Ft(e[n]).subscribe(ft(t, r => { if (i) { for (let s = 0; s < i.length; s++)s !== n && i[s].unsubscribe(); i = null } t.next(r) }))) } }(e)) } function fp(...e) { const t = ku(e), i = wD(e); return i.length ? new ze(n => { let r = i.map(() => []), s = i.map(() => !1); n.add(() => { r = s = null }); for (let o = 0; !n.closed && o < i.length; o++)Ft(i[o]).subscribe(ft(n, a => { if (r[o].push(a), r.every(l => l.length)) { const l = r.map(c => c.shift()); n.next(t ? t(...l) : l), r.some((c, u) => !c.length && s[u]) && n.complete() } }, () => { s[o] = !0, !r[o].length && n.complete() })); return () => { r = s = null } }) : Do } function Jc(...e) { return function G2() { return yg(1) }()(wo(e, Qa(e))) } function Mt(e) { return mt((t, i) => { Ft(e).subscribe(ft(i, () => i.complete(), wt)), !i.closed && t.subscribe(i) }) } function ui(e) { return e <= 0 ? () => Do : mt((t, i) => { let n = 0; t.subscribe(ft(i, r => { ++n <= e && (i.next(r), e <= n && i.complete()) })) }) } function ED(e, t, i) { const n = $(e) || t || i ? { next: e, error: t, complete: i } : e; return n ? mt((r, s) => { var o; null === (o = n.subscribe) || void 0 === o || o.call(n); let a = !0; r.subscribe(ft(s, l => { var c; null === (c = n.next) || void 0 === c || c.call(n, l), s.next(l) }, () => { var l; a = !1, null === (l = n.complete) || void 0 === l || l.call(n), s.complete() }, l => { var c; a = !1, null === (c = n.error) || void 0 === c || c.call(n, l), s.error(l) }, () => { var l, c; a && (null === (l = n.unsubscribe) || void 0 === l || l.call(n)), null === (c = n.finalize) || void 0 === c || c.call(n) })) }) : yi } function hp(...e) { const t = ku(e); return mt((i, n) => { const r = e.length, s = new Array(r); let o = e.map(() => !1), a = !1; for (let l = 0; l < r; l++)Ft(e[l]).subscribe(ft(n, c => { s[l] = c, !a && !o[l] && (o[l] = !0, (a = o.every(yi)) && (o = null)) }, wt)); i.subscribe(ft(n, l => { if (a) { const c = [l, ...s]; n.next(t ? t(...c) : c) } })) }) } function SD(e, t) { return t ? i => Jc(t.pipe(ui(1), function W2() { return mt((e, t) => { e.subscribe(ft(t, wt)) }) }()), i.pipe(SD(e))) : us((i, n) => Ft(e(i, n)).pipe(ui(1), function q2(e) { return Pt(() => e) }(i))) } const { isArray: Q2 } = Array, { getPrototypeOf: K2, prototype: X2, keys: eL } = Object; function iL(e, t) { return e.reduce((i, n, r) => (i[n] = t[r], i), {}) } let TD = (() => { var e; class t { constructor(n, r) { this._renderer = n, this._elementRef = r, this.onChange = s => { }, this.onTouched = () => { } } setProperty(n, r) { this._renderer.setProperty(this._elementRef.nativeElement, n, r) } registerOnTouched(n) { this.onTouched = n } registerOnChange(n) { this.onChange = n } setDisabledState(n) { this.setProperty("disabled", n) } } return (e = t).\u0275fac = function (n) { return new (n || e)(v(Wn), v(Fe)) }, e.\u0275dir = k({ type: e }), t })(), Vr = (() => { var e; class t extends TD { } return (e = t).\u0275fac = function () { let i; return function (r) { return (i || (i = St(e)))(r || e) } }(), e.\u0275dir = k({ type: e, features: [Oe] }), t })(); const Kn = new W("NgValueAccessor"), sL = { provide: Kn, useExisting: ae(() => pp), multi: !0 }; let pp = (() => { var e; class t extends Vr { writeValue(n) { this.setProperty("checked", n) } } return (e = t).\u0275fac = function () { let i; return function (r) { return (i || (i = St(e)))(r || e) } }(), e.\u0275dir = k({ type: e, selectors: [["input", "type", "checkbox", "formControlName", ""], ["input", "type", "checkbox", "formControl", ""], ["input", "type", "checkbox", "ngModel", ""]], hostBindings: function (n, r) { 1 & n && ce("change", function (o) { return r.onChange(o.target.checked) })("blur", function () { return r.onTouched() }) }, features: [$e([sL]), Oe] }), t })(); const oL = { provide: Kn, useExisting: ae(() => Qc), multi: !0 }, lL = new W("CompositionEventMode"); let Qc = (() => { var e; class t extends TD { constructor(n, r, s) { super(n, r), this._compositionMode = s, this._composing = !1, null == this._compositionMode && (this._compositionMode = !function aL() { const e = ba() ? ba().getUserAgent() : ""; return /android (\d+)/.test(e.toLowerCase()) }()) } writeValue(n) { this.setProperty("value", n ?? "") } _handleInput(n) { (!this._compositionMode || this._compositionMode && !this._composing) && this.onChange(n) } _compositionStart() { this._composing = !0 } _compositionEnd(n) { this._composing = !1, this._compositionMode && this.onChange(n) } } return (e = t).\u0275fac = function (n) { return new (n || e)(v(Wn), v(Fe), v(lL, 8)) }, e.\u0275dir = k({ type: e, selectors: [["input", "formControlName", "", 3, "type", "checkbox"], ["textarea", "formControlName", ""], ["input", "formControl", "", 3, "type", "checkbox"], ["textarea", "formControl", ""], ["input", "ngModel", "", 3, "type", "checkbox"], ["textarea", "ngModel", ""], ["", "ngDefaultControl", ""]], hostBindings: function (n, r) { 1 & n && ce("input", function (o) { return r._handleInput(o.target.value) })("blur", function () { return r.onTouched() })("compositionstart", function () { return r._compositionStart() })("compositionend", function (o) { return r._compositionEnd(o.target.value) }) }, features: [$e([oL]), Oe] }), t })(); const zt = new W("NgValidators"), hr = new W("NgAsyncValidators"); function kD(e) { return null != e } function LD(e) { return fc(e) ? wo(e) : e } function BD(e) { let t = {}; return e.forEach(i => { t = null != i ? { ...t, ...i } : t }), 0 === Object.keys(t).length ? null : t } function VD(e, t) { return t.map(i => i(e)) } function HD(e) { return e.map(t => function uL(e) { return !e.validate }(t) ? t : i => t.validate(i)) } function gp(e) { return null != e ? function UD(e) { if (!e) return null; const t = e.filter(kD); return 0 == t.length ? null : function (i) { return BD(VD(i, t)) } }(HD(e)) : null } function jD(e) { if (!e) return null; const t = e.filter(kD); return 0 == t.length ? null : function (i) { return function rL(...e) { const t = ku(e), { args: i, keys: n } = function tL(e) { if (1 === e.length) { const t = e[0]; if (Q2(t)) return { args: t, keys: null }; if (function nL(e) { return e && "object" == typeof e && K2(e) === X2 }(t)) { const i = eL(t); return { args: i.map(n => t[n]), keys: i } } } return { args: e, keys: null } }(e), r = new ze(s => { const { length: o } = i; if (!o) return void s.complete(); const a = new Array(o); let l = o, c = o; for (let u = 0; u < o; u++) { let h = !1; Ft(i[u]).subscribe(ft(s, g => { h || (h = !0, c--), a[u] = g }, () => l--, void 0, () => { (!l || !h) && (c || s.next(n ? iL(n, a) : a), s.complete()) })) } }); return t ? r.pipe(mD(t)) : r }(VD(i, t).map(LD)).pipe(Pt(BD)) } } function _p(e) { return null != e ? jD(HD(e)) : null } function $D(e, t) { return null === e ? [t] : Array.isArray(e) ? [...e, t] : [e, t] } function GD(e) { return e._rawValidators } function zD(e) { return e._rawAsyncValidators } function mp(e) { return e ? Array.isArray(e) ? e : [e] : [] } function Xc(e, t) { return Array.isArray(e) ? e.includes(t) : e === t } function WD(e, t) { const i = mp(t); return mp(e).forEach(r => { Xc(i, r) || i.push(r) }), i } function qD(e, t) { return mp(t).filter(i => !Xc(e, i)) } class YD { constructor() { this._rawValidators = [], this._rawAsyncValidators = [], this._onDestroyCallbacks = [] } get value() { return this.control ? this.control.value : null } get valid() { return this.control ? this.control.valid : null } get invalid() { return this.control ? this.control.invalid : null } get pending() { return this.control ? this.control.pending : null } get disabled() { return this.control ? this.control.disabled : null } get enabled() { return this.control ? this.control.enabled : null } get errors() { return this.control ? this.control.errors : null } get pristine() { return this.control ? this.control.pristine : null } get dirty() { return this.control ? this.control.dirty : null } get touched() { return this.control ? this.control.touched : null } get status() { return this.control ? this.control.status : null } get untouched() { return this.control ? this.control.untouched : null } get statusChanges() { return this.control ? this.control.statusChanges : null } get valueChanges() { return this.control ? this.control.valueChanges : null } get path() { return null } _setValidators(t) { this._rawValidators = t || [], this._composedValidatorFn = gp(this._rawValidators) } _setAsyncValidators(t) { this._rawAsyncValidators = t || [], this._composedAsyncValidatorFn = _p(this._rawAsyncValidators) } get validator() { return this._composedValidatorFn || null } get asyncValidator() { return this._composedAsyncValidatorFn || null } _registerOnDestroy(t) { this._onDestroyCallbacks.push(t) } _invokeOnDestroyCallbacks() { this._onDestroyCallbacks.forEach(t => t()), this._onDestroyCallbacks = [] } reset(t = void 0) { this.control && this.control.reset(t) } hasError(t, i) { return !!this.control && this.control.hasError(t, i) } getError(t, i) { return this.control ? this.control.getError(t, i) : null } } class hn extends YD { get formDirective() { return null } get path() { return null } } class pr extends YD { constructor() { super(...arguments), this._parent = null, this.name = null, this.valueAccessor = null } } class ZD { constructor(t) { this._cd = t } get isTouched() { return !!this._cd?.control?.touched } get isUntouched() { return !!this._cd?.control?.untouched } get isPristine() { return !!this._cd?.control?.pristine } get isDirty() { return !!this._cd?.control?.dirty } get isValid() { return !!this._cd?.control?.valid } get isInvalid() { return !!this._cd?.control?.invalid } get isPending() { return !!this._cd?.control?.pending } get isSubmitted() { return !!this._cd?.submitted } } let JD = (() => { var e; class t extends ZD { constructor(n) { super(n) } } return (e = t).\u0275fac = function (n) { return new (n || e)(v(pr, 2)) }, e.\u0275dir = k({ type: e, selectors: [["", "formControlName", ""], ["", "ngModel", ""], ["", "formControl", ""]], hostVars: 14, hostBindings: function (n, r) { 2 & n && De("ng-untouched", r.isUntouched)("ng-touched", r.isTouched)("ng-pristine", r.isPristine)("ng-dirty", r.isDirty)("ng-valid", r.isValid)("ng-invalid", r.isInvalid)("ng-pending", r.isPending) }, features: [Oe] }), t })(), QD = (() => { var e; class t extends ZD { constructor(n) { super(n) } } return (e = t).\u0275fac = function (n) { return new (n || e)(v(hn, 10)) }, e.\u0275dir = k({ type: e, selectors: [["", "formGroupName", ""], ["", "formArrayName", ""], ["", "ngModelGroup", ""], ["", "formGroup", ""], ["form", 3, "ngNoForm", ""], ["", "ngForm", ""]], hostVars: 16, hostBindings: function (n, r) { 2 & n && De("ng-untouched", r.isUntouched)("ng-touched", r.isTouched)("ng-pristine", r.isPristine)("ng-dirty", r.isDirty)("ng-valid", r.isValid)("ng-invalid", r.isInvalid)("ng-pending", r.isPending)("ng-submitted", r.isSubmitted) }, features: [Oe] }), t })(); const Na = "VALID", tu = "INVALID", ao = "PENDING", Aa = "DISABLED"; function bp(e) { return (nu(e) ? e.validators : e) || null } function Dp(e, t) { return (nu(t) ? t.asyncValidators : e) || null } function nu(e) { return null != e && !Array.isArray(e) && "object" == typeof e } function XD(e, t, i) { const n = e.controls; if (!(t ? Object.keys(n) : n).length) throw new F(1e3, ""); if (!n[i]) throw new F(1001, "") } function ew(e, t, i) { e._forEachChild((n, r) => { if (void 0 === i[r]) throw new F(1002, "") }) } class iu { constructor(t, i) { this._pendingDirty = !1, this._hasOwnPendingAsyncValidator = !1, this._pendingTouched = !1, this._onCollectionChange = () => { }, this._parent = null, this.pristine = !0, this.touched = !1, this._onDisabledChange = [], this._assignValidators(t), this._assignAsyncValidators(i) } get validator() { return this._composedValidatorFn } set validator(t) { this._rawValidators = this._composedValidatorFn = t } get asyncValidator() { return this._composedAsyncValidatorFn } set asyncValidator(t) { this._rawAsyncValidators = this._composedAsyncValidatorFn = t } get parent() { return this._parent } get valid() { return this.status === Na } get invalid() { return this.status === tu } get pending() { return this.status == ao } get disabled() { return this.status === Aa } get enabled() { return this.status !== Aa } get dirty() { return !this.pristine } get untouched() { return !this.touched } get updateOn() { return this._updateOn ? this._updateOn : this.parent ? this.parent.updateOn : "change" } setValidators(t) { this._assignValidators(t) } setAsyncValidators(t) { this._assignAsyncValidators(t) } addValidators(t) { this.setValidators(WD(t, this._rawValidators)) } addAsyncValidators(t) { this.setAsyncValidators(WD(t, this._rawAsyncValidators)) } removeValidators(t) { this.setValidators(qD(t, this._rawValidators)) } removeAsyncValidators(t) { this.setAsyncValidators(qD(t, this._rawAsyncValidators)) } hasValidator(t) { return Xc(this._rawValidators, t) } hasAsyncValidator(t) { return Xc(this._rawAsyncValidators, t) } clearValidators() { this.validator = null } clearAsyncValidators() { this.asyncValidator = null } markAsTouched(t = {}) { this.touched = !0, this._parent && !t.onlySelf && this._parent.markAsTouched(t) } markAllAsTouched() { this.markAsTouched({ onlySelf: !0 }), this._forEachChild(t => t.markAllAsTouched()) } markAsUntouched(t = {}) { this.touched = !1, this._pendingTouched = !1, this._forEachChild(i => { i.markAsUntouched({ onlySelf: !0 }) }), this._parent && !t.onlySelf && this._parent._updateTouched(t) } markAsDirty(t = {}) { this.pristine = !1, this._parent && !t.onlySelf && this._parent.markAsDirty(t) } markAsPristine(t = {}) { this.pristine = !0, this._pendingDirty = !1, this._forEachChild(i => { i.markAsPristine({ onlySelf: !0 }) }), this._parent && !t.onlySelf && this._parent._updatePristine(t) } markAsPending(t = {}) { this.status = ao, !1 !== t.emitEvent && this.statusChanges.emit(this.status), this._parent && !t.onlySelf && this._parent.markAsPending(t) } disable(t = {}) { const i = this._parentMarkedDirty(t.onlySelf); this.status = Aa, this.errors = null, this._forEachChild(n => { n.disable({ ...t, onlySelf: !0 }) }), this._updateValue(), !1 !== t.emitEvent && (this.valueChanges.emit(this.value), this.statusChanges.emit(this.status)), this._updateAncestors({ ...t, skipPristineCheck: i }), this._onDisabledChange.forEach(n => n(!0)) } enable(t = {}) { const i = this._parentMarkedDirty(t.onlySelf); this.status = Na, this._forEachChild(n => { n.enable({ ...t, onlySelf: !0 }) }), this.updateValueAndValidity({ onlySelf: !0, emitEvent: t.emitEvent }), this._updateAncestors({ ...t, skipPristineCheck: i }), this._onDisabledChange.forEach(n => n(!1)) } _updateAncestors(t) { this._parent && !t.onlySelf && (this._parent.updateValueAndValidity(t), t.skipPristineCheck || this._parent._updatePristine(), this._parent._updateTouched()) } setParent(t) { this._parent = t } getRawValue() { return this.value } updateValueAndValidity(t = {}) { this._setInitialStatus(), this._updateValue(), this.enabled && (this._cancelExistingSubscription(), this.errors = this._runValidator(), this.status = this._calculateStatus(), (this.status === Na || this.status === ao) && this._runAsyncValidator(t.emitEvent)), !1 !== t.emitEvent && (this.valueChanges.emit(this.value), this.statusChanges.emit(this.status)), this._parent && !t.onlySelf && this._parent.updateValueAndValidity(t) } _updateTreeValidity(t = { emitEvent: !0 }) { this._forEachChild(i => i._updateTreeValidity(t)), this.updateValueAndValidity({ onlySelf: !0, emitEvent: t.emitEvent }) } _setInitialStatus() { this.status = this._allControlsDisabled() ? Aa : Na } _runValidator() { return this.validator ? this.validator(this) : null } _runAsyncValidator(t) { if (this.asyncValidator) { this.status = ao, this._hasOwnPendingAsyncValidator = !0; const i = LD(this.asyncValidator(this)); this._asyncValidationSubscription = i.subscribe(n => { this._hasOwnPendingAsyncValidator = !1, this.setErrors(n, { emitEvent: t }) }) } } _cancelExistingSubscription() { this._asyncValidationSubscription && (this._asyncValidationSubscription.unsubscribe(), this._hasOwnPendingAsyncValidator = !1) } setErrors(t, i = {}) { this.errors = t, this._updateControlsErrors(!1 !== i.emitEvent) } get(t) { let i = t; return null == i || (Array.isArray(i) || (i = i.split(".")), 0 === i.length) ? null : i.reduce((n, r) => n && n._find(r), this) } getError(t, i) { const n = i ? this.get(i) : this; return n && n.errors ? n.errors[t] : null } hasError(t, i) { return !!this.getError(t, i) } get root() { let t = this; for (; t._parent;)t = t._parent; return t } _updateControlsErrors(t) { this.status = this._calculateStatus(), t && this.statusChanges.emit(this.status), this._parent && this._parent._updateControlsErrors(t) } _initObservables() { this.valueChanges = new Y, this.statusChanges = new Y } _calculateStatus() { return this._allControlsDisabled() ? Aa : this.errors ? tu : this._hasOwnPendingAsyncValidator || this._anyControlsHaveStatus(ao) ? ao : this._anyControlsHaveStatus(tu) ? tu : Na } _anyControlsHaveStatus(t) { return this._anyControls(i => i.status === t) } _anyControlsDirty() { return this._anyControls(t => t.dirty) } _anyControlsTouched() { return this._anyControls(t => t.touched) } _updatePristine(t = {}) { this.pristine = !this._anyControlsDirty(), this._parent && !t.onlySelf && this._parent._updatePristine(t) } _updateTouched(t = {}) { this.touched = this._anyControlsTouched(), this._parent && !t.onlySelf && this._parent._updateTouched(t) } _registerOnCollectionChange(t) { this._onCollectionChange = t } _setUpdateStrategy(t) { nu(t) && null != t.updateOn && (this._updateOn = t.updateOn) } _parentMarkedDirty(t) { return !t && !(!this._parent || !this._parent.dirty) && !this._parent._anyControlsDirty() } _find(t) { return null } _assignValidators(t) { this._rawValidators = Array.isArray(t) ? t.slice() : t, this._composedValidatorFn = function pL(e) { return Array.isArray(e) ? gp(e) : e || null }(this._rawValidators) } _assignAsyncValidators(t) { this._rawAsyncValidators = Array.isArray(t) ? t.slice() : t, this._composedAsyncValidatorFn = function gL(e) { return Array.isArray(e) ? _p(e) : e || null }(this._rawAsyncValidators) } } class Hr extends iu { constructor(t, i, n) { super(bp(i), Dp(n, i)), this.controls = t, this._initObservables(), this._setUpdateStrategy(i), this._setUpControls(), this.updateValueAndValidity({ onlySelf: !0, emitEvent: !!this.asyncValidator }) } registerControl(t, i) { return this.controls[t] ? this.controls[t] : (this.controls[t] = i, i.setParent(this), i._registerOnCollectionChange(this._onCollectionChange), i) } addControl(t, i, n = {}) { this.registerControl(t, i), this.updateValueAndValidity({ emitEvent: n.emitEvent }), this._onCollectionChange() } removeControl(t, i = {}) { this.controls[t] && this.controls[t]._registerOnCollectionChange(() => { }), delete this.controls[t], this.updateValueAndValidity({ emitEvent: i.emitEvent }), this._onCollectionChange() } setControl(t, i, n = {}) { this.controls[t] && this.controls[t]._registerOnCollectionChange(() => { }), delete this.controls[t], i && this.registerControl(t, i), this.updateValueAndValidity({ emitEvent: n.emitEvent }), this._onCollectionChange() } contains(t) { return this.controls.hasOwnProperty(t) && this.controls[t].enabled } setValue(t, i = {}) { ew(this, 0, t), Object.keys(t).forEach(n => { XD(this, !0, n), this.controls[n].setValue(t[n], { onlySelf: !0, emitEvent: i.emitEvent }) }), this.updateValueAndValidity(i) } patchValue(t, i = {}) { null != t && (Object.keys(t).forEach(n => { const r = this.controls[n]; r && r.patchValue(t[n], { onlySelf: !0, emitEvent: i.emitEvent }) }), this.updateValueAndValidity(i)) } reset(t = {}, i = {}) { this._forEachChild((n, r) => { n.reset(t[r], { onlySelf: !0, emitEvent: i.emitEvent }) }), this._updatePristine(i), this._updateTouched(i), this.updateValueAndValidity(i) } getRawValue() { return this._reduceChildren({}, (t, i, n) => (t[n] = i.getRawValue(), t)) } _syncPendingControls() { let t = this._reduceChildren(!1, (i, n) => !!n._syncPendingControls() || i); return t && this.updateValueAndValidity({ onlySelf: !0 }), t } _forEachChild(t) { Object.keys(this.controls).forEach(i => { const n = this.controls[i]; n && t(n, i) }) } _setUpControls() { this._forEachChild(t => { t.setParent(this), t._registerOnCollectionChange(this._onCollectionChange) }) } _updateValue() { this.value = this._reduceValue() } _anyControls(t) { for (const [i, n] of Object.entries(this.controls)) if (this.contains(i) && t(n)) return !0; return !1 } _reduceValue() { return this._reduceChildren({}, (i, n, r) => ((n.enabled || this.disabled) && (i[r] = n.value), i)) } _reduceChildren(t, i) { let n = t; return this._forEachChild((r, s) => { n = i(n, r, s) }), n } _allControlsDisabled() { for (const t of Object.keys(this.controls)) if (this.controls[t].enabled) return !1; return Object.keys(this.controls).length > 0 || this.disabled } _find(t) { return this.controls.hasOwnProperty(t) ? this.controls[t] : null } } class tw extends Hr { } const Ur = new W("CallSetDisabledState", { providedIn: "root", factory: () => Oa }), Oa = "always"; function xa(e, t, i = Oa) { wp(e, t), t.valueAccessor.writeValue(e.value), (e.disabled || "always" === i) && t.valueAccessor.setDisabledState?.(e.disabled), function mL(e, t) { t.valueAccessor.registerOnChange(i => { e._pendingValue = i, e._pendingChange = !0, e._pendingDirty = !0, "change" === e.updateOn && nw(e, t) }) }(e, t), function yL(e, t) { const i = (n, r) => { t.valueAccessor.writeValue(n), r && t.viewToModelUpdate(n) }; e.registerOnChange(i), t._registerOnDestroy(() => { e._unregisterOnChange(i) }) }(e, t), function vL(e, t) { t.valueAccessor.registerOnTouched(() => { e._pendingTouched = !0, "blur" === e.updateOn && e._pendingChange && nw(e, t), "submit" !== e.updateOn && e.markAsTouched() }) }(e, t), function _L(e, t) { if (t.valueAccessor.setDisabledState) { const i = n => { t.valueAccessor.setDisabledState(n) }; e.registerOnDisabledChange(i), t._registerOnDestroy(() => { e._unregisterOnDisabledChange(i) }) } }(e, t) } function su(e, t, i = !0) { const n = () => { }; t.valueAccessor && (t.valueAccessor.registerOnChange(n), t.valueAccessor.registerOnTouched(n)), au(e, t), e && (t._invokeOnDestroyCallbacks(), e._registerOnCollectionChange(() => { })) } function ou(e, t) { e.forEach(i => { i.registerOnValidatorChange && i.registerOnValidatorChange(t) }) } function wp(e, t) { const i = GD(e); null !== t.validator ? e.setValidators($D(i, t.validator)) : "function" == typeof i && e.setValidators([i]); const n = zD(e); null !== t.asyncValidator ? e.setAsyncValidators($D(n, t.asyncValidator)) : "function" == typeof n && e.setAsyncValidators([n]); const r = () => e.updateValueAndValidity(); ou(t._rawValidators, r), ou(t._rawAsyncValidators, r) } function au(e, t) { let i = !1; if (null !== e) { if (null !== t.validator) { const r = GD(e); if (Array.isArray(r) && r.length > 0) { const s = r.filter(o => o !== t.validator); s.length !== r.length && (i = !0, e.setValidators(s)) } } if (null !== t.asyncValidator) { const r = zD(e); if (Array.isArray(r) && r.length > 0) { const s = r.filter(o => o !== t.asyncValidator); s.length !== r.length && (i = !0, e.setAsyncValidators(s)) } } } const n = () => { }; return ou(t._rawValidators, n), ou(t._rawAsyncValidators, n), i } function nw(e, t) { e._pendingDirty && e.markAsDirty(), e.setValue(e._pendingValue, { emitModelToViewChange: !1 }), t.viewToModelUpdate(e._pendingValue), e._pendingChange = !1 } function sw(e, t) { const i = e.indexOf(t); i > -1 && e.splice(i, 1) } function ow(e) { return "object" == typeof e && null !== e && 2 === Object.keys(e).length && "value" in e && "disabled" in e } const jr = class extends iu { constructor(t = null, i, n) { super(bp(i), Dp(n, i)), this.defaultValue = null, this._onChange = [], this._pendingChange = !1, this._applyFormState(t), this._setUpdateStrategy(i), this._initObservables(), this.updateValueAndValidity({ onlySelf: !0, emitEvent: !!this.asyncValidator }), nu(i) && (i.nonNullable || i.initialValueIsDefault) && (this.defaultValue = ow(t) ? t.value : t) } setValue(t, i = {}) { this.value = this._pendingValue = t, this._onChange.length && !1 !== i.emitModelToViewChange && this._onChange.forEach(n => n(this.value, !1 !== i.emitViewToModelChange)), this.updateValueAndValidity(i) } patchValue(t, i = {}) { this.setValue(t, i) } reset(t = this.defaultValue, i = {}) { this._applyFormState(t), this.markAsPristine(i), this.markAsUntouched(i), this.setValue(this.value, i), this._pendingChange = !1 } _updateValue() { } _anyControls(t) { return !1 } _allControlsDisabled() { return this.disabled } registerOnChange(t) { this._onChange.push(t) } _unregisterOnChange(t) { sw(this._onChange, t) } registerOnDisabledChange(t) { this._onDisabledChange.push(t) } _unregisterOnDisabledChange(t) { sw(this._onDisabledChange, t) } _forEachChild(t) { } _syncPendingControls() { return !("submit" !== this.updateOn || (this._pendingDirty && this.markAsDirty(), this._pendingTouched && this.markAsTouched(), !this._pendingChange) || (this.setValue(this._pendingValue, { onlySelf: !0, emitModelToViewChange: !1 }), 0)) } _applyFormState(t) { ow(t) ? (this.value = this._pendingValue = t.value, t.disabled ? this.disable({ onlySelf: !0, emitEvent: !1 }) : this.enable({ onlySelf: !0, emitEvent: !1 })) : this.value = this._pendingValue = t } }; let dw = (() => { var e; class t { } return (e = t).\u0275fac = function (n) { return new (n || e) }, e.\u0275dir = k({ type: e, selectors: [["form", 3, "ngNoForm", "", 3, "ngNativeValidate", ""]], hostAttrs: ["novalidate", ""] }), t })(), hw = (() => { var e; class t { } return (e = t).\u0275fac = function (n) { return new (n || e) }, e.\u0275mod = Pe({ type: e }), e.\u0275inj = Ae({}), t })(); const Mp = new W("NgModelWithFormControlWarning"), RL = { provide: hn, useExisting: ae(() => lu) }; let lu = (() => { var e; class t extends hn { constructor(n, r, s) { super(), this.callSetDisabledState = s, this.submitted = !1, this._onCollectionChange = () => this._updateDomValue(), this.directives = [], this.form = null, this.ngSubmit = new Y, this._setValidators(n), this._setAsyncValidators(r) } ngOnChanges(n) { this._checkFormPresent(), n.hasOwnProperty("form") && (this._updateValidators(), this._updateDomValue(), this._updateRegistrations(), this._oldForm = this.form) } ngOnDestroy() { this.form && (au(this.form, this), this.form._onCollectionChange === this._onCollectionChange && this.form._registerOnCollectionChange(() => { })) } get formDirective() { return this } get control() { return this.form } get path() { return [] } addControl(n) { const r = this.form.get(n.path); return xa(r, n, this.callSetDisabledState), r.updateValueAndValidity({ emitEvent: !1 }), this.directives.push(n), r } getControl(n) { return this.form.get(n.path) } removeControl(n) { su(n.control || null, n, !1), function CL(e, t) { const i = e.indexOf(t); i > -1 && e.splice(i, 1) }(this.directives, n) } addFormGroup(n) { this._setUpFormContainer(n) } removeFormGroup(n) { this._cleanUpFormContainer(n) } getFormGroup(n) { return this.form.get(n.path) } addFormArray(n) { this._setUpFormContainer(n) } removeFormArray(n) { this._cleanUpFormContainer(n) } getFormArray(n) { return this.form.get(n.path) } updateModel(n, r) { this.form.get(n.path).setValue(r) } onSubmit(n) { return this.submitted = !0, function rw(e, t) { e._syncPendingControls(), t.forEach(i => { const n = i.control; "submit" === n.updateOn && n._pendingChange && (i.viewToModelUpdate(n._pendingValue), n._pendingChange = !1) }) }(this.form, this.directives), this.ngSubmit.emit(n), "dialog" === n?.target?.method } onReset() { this.resetForm() } resetForm(n = void 0) { this.form.reset(n), this.submitted = !1 } _updateDomValue() { this.directives.forEach(n => { const r = n.control, s = this.form.get(n.path); r !== s && (su(r || null, n), (e => e instanceof jr)(s) && (xa(s, n, this.callSetDisabledState), n.control = s)) }), this.form._updateTreeValidity({ emitEvent: !1 }) } _setUpFormContainer(n) { const r = this.form.get(n.path); (function iw(e, t) { wp(e, t) })(r, n), r.updateValueAndValidity({ emitEvent: !1 }) } _cleanUpFormContainer(n) { if (this.form) { const r = this.form.get(n.path); r && function bL(e, t) { return au(e, t) }(r, n) && r.updateValueAndValidity({ emitEvent: !1 }) } } _updateRegistrations() { this.form._registerOnCollectionChange(this._onCollectionChange), this._oldForm && this._oldForm._registerOnCollectionChange(() => { }) } _updateValidators() { wp(this.form, this), this._oldForm && au(this._oldForm, this) } _checkFormPresent() { } } return (e = t).\u0275fac = function (n) { return new (n || e)(v(zt, 10), v(hr, 10), v(Ur, 8)) }, e.\u0275dir = k({ type: e, selectors: [["", "formGroup", ""]], hostBindings: function (n, r) { 1 & n && ce("submit", function (o) { return r.onSubmit(o) })("reset", function () { return r.onReset() }) }, inputs: { form: ["formGroup", "form"] }, outputs: { ngSubmit: "ngSubmit" }, exportAs: ["ngForm"], features: [$e([RL]), Oe, sn] }), t })(); const kL = { provide: pr, useExisting: ae(() => Ap) }; let Ap = (() => { var e; class t extends pr { set isDisabled(n) { } constructor(n, r, s, o, a) { super(), this._ngModelWarningConfig = a, this._added = !1, this.name = null, this.update = new Y, this._ngModelWarningSent = !1, this._parent = n, this._setValidators(r), this._setAsyncValidators(s), this.valueAccessor = function Sp(e, t) { if (!t) return null; let i, n, r; return Array.isArray(t), t.forEach(s => { s.constructor === Qc ? i = s : function wL(e) { return Object.getPrototypeOf(e.constructor) === Vr }(s) ? n = s : r = s }), r || n || i || null }(0, o) } ngOnChanges(n) { this._added || this._setUpControl(), function Ep(e, t) { if (!e.hasOwnProperty("model")) return !1; const i = e.model; return !!i.isFirstChange() || !Object.is(t, i.currentValue) }(n, this.viewModel) && (this.viewModel = this.model, this.formDirective.updateModel(this, this.model)) } ngOnDestroy() { this.formDirective && this.formDirective.removeControl(this) } viewToModelUpdate(n) { this.viewModel = n, this.update.emit(n) } get path() { return function ru(e, t) { return [...t.path, e] }(null == this.name ? this.name : this.name.toString(), this._parent) } get formDirective() { return this._parent ? this._parent.formDirective : null } _checkParentType() { } _setUpControl() { this._checkParentType(), this.control = this.formDirective.addControl(this), this._added = !0 } } return (e = t)._ngModelWarningSentOnce = !1, e.\u0275fac = function (n) { return new (n || e)(v(hn, 13), v(zt, 10), v(hr, 10), v(Kn, 10), v(Mp, 8)) }, e.\u0275dir = k({ type: e, selectors: [["", "formControlName", ""]], inputs: { name: ["formControlName", "name"], isDisabled: ["disabled", "isDisabled"], model: ["ngModel", "model"] }, outputs: { update: "ngModelChange" }, features: [$e([kL]), Oe, sn] }), t })(); const LL = { provide: Kn, useExisting: ae(() => cu), multi: !0 }; function vw(e, t) { return null == e ? `${t}` : (t && "object" == typeof t && (t = "Object"), `${e}: ${t}`.slice(0, 50)) } let cu = (() => { var e; class t extends Vr { constructor() { super(...arguments), this._optionMap = new Map, this._idCounter = 0, this._compareWith = Object.is } set compareWith(n) { this._compareWith = n } writeValue(n) { this.value = n; const s = vw(this._getOptionId(n), n); this.setProperty("value", s) } registerOnChange(n) { this.onChange = r => { this.value = this._getOptionValue(r), n(this.value) } } _registerOption() { return (this._idCounter++).toString() } _getOptionId(n) { for (const r of this._optionMap.keys()) if (this._compareWith(this._optionMap.get(r), n)) return r; return null } _getOptionValue(n) { const r = function BL(e) { return e.split(":")[0] }(n); return this._optionMap.has(r) ? this._optionMap.get(r) : n } } return (e = t).\u0275fac = function () { let i; return function (r) { return (i || (i = St(e)))(r || e) } }(), e.\u0275dir = k({ type: e, selectors: [["select", "formControlName", "", 3, "multiple", ""], ["select", "formControl", "", 3, "multiple", ""], ["select", "ngModel", "", 3, "multiple", ""]], hostBindings: function (n, r) { 1 & n && ce("change", function (o) { return r.onChange(o.target.value) })("blur", function () { return r.onTouched() }) }, inputs: { compareWith: "compareWith" }, features: [$e([LL]), Oe] }), t })(), yw = (() => { var e; class t { constructor(n, r, s) { this._element = n, this._renderer = r, this._select = s, this._select && (this.id = this._select._registerOption()) } set ngValue(n) { null != this._select && (this._select._optionMap.set(this.id, n), this._setElementValue(vw(this.id, n)), this._select.writeValue(this._select.value)) } set value(n) { this._setElementValue(n), this._select && this._select.writeValue(this._select.value) } _setElementValue(n) { this._renderer.setProperty(this._element.nativeElement, "value", n) } ngOnDestroy() { this._select && (this._select._optionMap.delete(this.id), this._select.writeValue(this._select.value)) } } return (e = t).\u0275fac = function (n) { return new (n || e)(v(Fe), v(Wn), v(cu, 9)) }, e.\u0275dir = k({ type: e, selectors: [["option"]], inputs: { ngValue: "ngValue", value: "value" } }), t })(); const VL = { provide: Kn, useExisting: ae(() => Op), multi: !0 }; function bw(e, t) { return null == e ? `${t}` : ("string" == typeof t && (t = `'${t}'`), t && "object" == typeof t && (t = "Object"), `${e}: ${t}`.slice(0, 50)) } let Op = (() => { var e; class t extends Vr { constructor() { super(...arguments), this._optionMap = new Map, this._idCounter = 0, this._compareWith = Object.is } set compareWith(n) { this._compareWith = n } writeValue(n) { let r; if (this.value = n, Array.isArray(n)) { const s = n.map(o => this._getOptionId(o)); r = (o, a) => { o._setSelected(s.indexOf(a.toString()) > -1) } } else r = (s, o) => { s._setSelected(!1) }; this._optionMap.forEach(r) } registerOnChange(n) { this.onChange = r => { const s = [], o = r.selectedOptions; if (void 0 !== o) { const a = o; for (let l = 0; l < a.length; l++) { const u = this._getOptionValue(a[l].value); s.push(u) } } else { const a = r.options; for (let l = 0; l < a.length; l++) { const c = a[l]; if (c.selected) { const u = this._getOptionValue(c.value); s.push(u) } } } this.value = s, n(s) } } _registerOption(n) { const r = (this._idCounter++).toString(); return this._optionMap.set(r, n), r } _getOptionId(n) { for (const r of this._optionMap.keys()) if (this._compareWith(this._optionMap.get(r)._value, n)) return r; return null } _getOptionValue(n) { const r = function HL(e) { return e.split(":")[0] }(n); return this._optionMap.has(r) ? this._optionMap.get(r)._value : n } } return (e = t).\u0275fac = function () { let i; return function (r) { return (i || (i = St(e)))(r || e) } }(), e.\u0275dir = k({ type: e, selectors: [["select", "multiple", "", "formControlName", ""], ["select", "multiple", "", "formControl", ""], ["select", "multiple", "", "ngModel", ""]], hostBindings: function (n, r) { 1 & n && ce("change", function (o) { return r.onChange(o.target) })("blur", function () { return r.onTouched() }) }, inputs: { compareWith: "compareWith" }, features: [$e([VL]), Oe] }), t })(), Dw = (() => { var e; class t { constructor(n, r, s) { this._element = n, this._renderer = r, this._select = s, this._select && (this.id = this._select._registerOption(this)) } set ngValue(n) { null != this._select && (this._value = n, this._setElementValue(bw(this.id, n)), this._select.writeValue(this._select.value)) } set value(n) { this._select ? (this._value = n, this._setElementValue(bw(this.id, n)), this._select.writeValue(this._select.value)) : this._setElementValue(n) } _setElementValue(n) { this._renderer.setProperty(this._element.nativeElement, "value", n) } _setSelected(n) { this._renderer.setProperty(this._element.nativeElement, "selected", n) } ngOnDestroy() { this._select && (this._select._optionMap.delete(this.id), this._select.writeValue(this._select.value)) } } return (e = t).\u0275fac = function (n) { return new (n || e)(v(Fe), v(Wn), v(Op, 9)) }, e.\u0275dir = k({ type: e, selectors: [["option"]], inputs: { ngValue: "ngValue", value: "value" } }), t })(), Ow = (() => { var e; class t { } return (e = t).\u0275fac = function (n) { return new (n || e) }, e.\u0275mod = Pe({ type: e }), e.\u0275inj = Ae({ imports: [hw] }), t })(); class xw extends iu { constructor(t, i, n) { super(bp(i), Dp(n, i)), this.controls = t, this._initObservables(), this._setUpdateStrategy(i), this._setUpControls(), this.updateValueAndValidity({ onlySelf: !0, emitEvent: !!this.asyncValidator }) } at(t) { return this.controls[this._adjustIndex(t)] } push(t, i = {}) { this.controls.push(t), this._registerControl(t), this.updateValueAndValidity({ emitEvent: i.emitEvent }), this._onCollectionChange() } insert(t, i, n = {}) { this.controls.splice(t, 0, i), this._registerControl(i), this.updateValueAndValidity({ emitEvent: n.emitEvent }) } removeAt(t, i = {}) { let n = this._adjustIndex(t); n < 0 && (n = 0), this.controls[n] && this.controls[n]._registerOnCollectionChange(() => { }), this.controls.splice(n, 1), this.updateValueAndValidity({ emitEvent: i.emitEvent }) } setControl(t, i, n = {}) { let r = this._adjustIndex(t); r < 0 && (r = 0), this.controls[r] && this.controls[r]._registerOnCollectionChange(() => { }), this.controls.splice(r, 1), i && (this.controls.splice(r, 0, i), this._registerControl(i)), this.updateValueAndValidity({ emitEvent: n.emitEvent }), this._onCollectionChange() } get length() { return this.controls.length } setValue(t, i = {}) { ew(this, 0, t), t.forEach((n, r) => { XD(this, !1, r), this.at(r).setValue(n, { onlySelf: !0, emitEvent: i.emitEvent }) }), this.updateValueAndValidity(i) } patchValue(t, i = {}) { null != t && (t.forEach((n, r) => { this.at(r) && this.at(r).patchValue(n, { onlySelf: !0, emitEvent: i.emitEvent }) }), this.updateValueAndValidity(i)) } reset(t = [], i = {}) { this._forEachChild((n, r) => { n.reset(t[r], { onlySelf: !0, emitEvent: i.emitEvent }) }), this._updatePristine(i), this._updateTouched(i), this.updateValueAndValidity(i) } getRawValue() { return this.controls.map(t => t.getRawValue()) } clear(t = {}) { this.controls.length < 1 || (this._forEachChild(i => i._registerOnCollectionChange(() => { })), this.controls.splice(0), this.updateValueAndValidity({ emitEvent: t.emitEvent })) } _adjustIndex(t) { return t < 0 ? t + this.length : t } _syncPendingControls() { let t = this.controls.reduce((i, n) => !!n._syncPendingControls() || i, !1); return t && this.updateValueAndValidity({ onlySelf: !0 }), t } _forEachChild(t) { this.controls.forEach((i, n) => { t(i, n) }) } _updateValue() { this.value = this.controls.filter(t => t.enabled || this.disabled).map(t => t.value) } _anyControls(t) { return this.controls.some(i => i.enabled && t(i)) } _setUpControls() { this._forEachChild(t => this._registerControl(t)) } _allControlsDisabled() { for (const t of this.controls) if (t.enabled) return !1; return this.controls.length > 0 || this.disabled } _registerControl(t) { t.setParent(this), t._registerOnCollectionChange(this._onCollectionChange) } _find(t) { return this.at(t) ?? null } } function Rw(e) { return !!e && (void 0 !== e.asyncValidators || void 0 !== e.validators || void 0 !== e.updateOn) } let ZL = (() => { var e; class t { constructor() { this.useNonNullable = !1 } get nonNullable() { const n = new t; return n.useNonNullable = !0, n } group(n, r = null) { const s = this._reduceControls(n); let o = {}; return Rw(r) ? o = r : null !== r && (o.validators = r.validator, o.asyncValidators = r.asyncValidator), new Hr(s, o) } record(n, r = null) { const s = this._reduceControls(n); return new tw(s, r) } control(n, r, s) { let o = {}; return this.useNonNullable ? (Rw(r) ? o = r : (o.validators = r, o.asyncValidators = s), new jr(n, { ...o, nonNullable: !0 })) : new jr(n, r, s) } array(n, r, s) { const o = n.map(a => this._createControl(a)); return new xw(o, r, s) } _reduceControls(n) { const r = {}; return Object.keys(n).forEach(s => { r[s] = this._createControl(n[s]) }), r } _createControl(n) { return n instanceof jr || n instanceof iu ? n : Array.isArray(n) ? this.control(n[0], n.length > 1 ? n[1] : null, n.length > 2 ? n[2] : null) : this.control(n) } } return (e = t).\u0275fac = function (n) { return new (n || e) }, e.\u0275prov = G({ token: e, factory: e.\u0275fac, providedIn: "root" }), t })(), JL = (() => { var e; class t { static withConfig(n) { return { ngModule: t, providers: [{ provide: Ur, useValue: n.callSetDisabledState ?? Oa }] } } } return (e = t).\u0275fac = function (n) { return new (n || e) }, e.\u0275mod = Pe({ type: e }), e.\u0275inj = Ae({ imports: [Ow] }), t })(), QL = (() => { var e; class t { static withConfig(n) { return { ngModule: t, providers: [{ provide: Mp, useValue: n.warnOnNgModelWithFormControl ?? "always" }, { provide: Ur, useValue: n.callSetDisabledState ?? Oa }] } } } return (e = t).\u0275fac = function (n) { return new (n || e) }, e.\u0275mod = Pe({ type: e }), e.\u0275inj = Ae({ imports: [Ow] }), t })(); var KL = { left: "right", right: "left", bottom: "top", top: "bottom" }; function uu(e) { return e.replace(/left|right|bottom|top/g, function (t) { return KL[t] }) } function ki(e) { return e.split("-")[0] } var XL = { start: "end", end: "start" }; function Pw(e) { return e.replace(/start|end/g, function (t) { return XL[t] }) } var Vn = "top", di = "bottom", fi = "right", Hn = "left", Rp = "auto", Pa = [Vn, di, fi, Hn], lo = "start", Fa = "end", Fw = "viewport", ka = "popper", kw = Pa.reduce(function (e, t) { return e.concat([t + "-" + lo, t + "-" + Fa]) }, []), Lw = [].concat(Pa, [Rp]).reduce(function (e, t) { return e.concat([t, t + "-" + lo, t + "-" + Fa]) }, []), dB = ["beforeRead", "read", "afterRead", "beforeMain", "main", "afterMain", "beforeWrite", "write", "afterWrite"]; function Un(e) { if (null == e) return window; if ("[object Window]" !== e.toString()) { var t = e.ownerDocument; return t && t.defaultView || window } return e } function Gr(e) { return e instanceof Un(e).Element || e instanceof Element } function Xn(e) { return e instanceof Un(e).HTMLElement || e instanceof HTMLElement } function Pp(e) { return !(typeof ShadowRoot > "u") && (e instanceof Un(e).ShadowRoot || e instanceof ShadowRoot) } function gr(e) { return ((Gr(e) ? e.ownerDocument : e.document) || window.document).documentElement } var zr = Math.max, du = Math.min, co = Math.round; function Fp() { var e = navigator.userAgentData; return null != e && e.brands && Array.isArray(e.brands) ? e.brands.map(function (t) { return t.brand + "/" + t.version }).join(" ") : navigator.userAgent } function Bw() { return !/^((?!chrome|android).)*safari/i.test(Fp()) } function uo(e, t, i) { void 0 === t && (t = !1), void 0 === i && (i = !1); var n = e.getBoundingClientRect(), r = 1, s = 1; t && Xn(e) && (r = e.offsetWidth > 0 && co(n.width) / e.offsetWidth || 1, s = e.offsetHeight > 0 && co(n.height) / e.offsetHeight || 1); var a = (Gr(e) ? Un(e) : window).visualViewport, l = !Bw() && i, c = (n.left + (l && a ? a.offsetLeft : 0)) / r, u = (n.top + (l && a ? a.offsetTop : 0)) / s, h = n.width / r, g = n.height / s; return { width: h, height: g, top: u, right: c + h, bottom: u + g, left: c, x: c, y: u } } function kp(e) { var t = Un(e); return { scrollLeft: t.pageXOffset, scrollTop: t.pageYOffset } } function Lp(e) { return uo(gr(e)).left + kp(e).scrollLeft } function Yi(e) { return Un(e).getComputedStyle(e) } function Li(e) { return e ? (e.nodeName || "").toLowerCase() : null } function fu(e) { return "html" === Li(e) ? e : e.assignedSlot || e.parentNode || (Pp(e) ? e.host : null) || gr(e) } function Bp(e) { var t = Yi(e); return /auto|scroll|overlay|hidden/.test(t.overflow + t.overflowY + t.overflowX) } function Vw(e) { return ["html", "body", "#document"].indexOf(Li(e)) >= 0 ? e.ownerDocument.body : Xn(e) && Bp(e) ? e : Vw(fu(e)) } function La(e, t) { var i; void 0 === t && (t = []); var n = Vw(e), r = n === (null == (i = e.ownerDocument) ? void 0 : i.body), s = Un(n), o = r ? [s].concat(s.visualViewport || [], Bp(n) ? n : []) : n, a = t.concat(o); return r ? a : a.concat(La(fu(o))) } function pB(e) { return ["table", "td", "th"].indexOf(Li(e)) >= 0 } function Hw(e) { return Xn(e) && "fixed" !== Yi(e).position ? e.offsetParent : null } function Ba(e) { for (var t = Un(e), i = Hw(e); i && pB(i) && "static" === Yi(i).position;)i = Hw(i); return i && ("html" === Li(i) || "body" === Li(i) && "static" === Yi(i).position) ? t : i || function gB(e) { var t = /firefox/i.test(Fp()); if (/Trident/i.test(Fp()) && Xn(e) && "fixed" === Yi(e).position) return null; var r = fu(e); for (Pp(r) && (r = r.host); Xn(r) && ["html", "body"].indexOf(Li(r)) < 0;) { var s = Yi(r); if ("none" !== s.transform || "none" !== s.perspective || "paint" === s.contain || -1 !== ["transform", "perspective"].indexOf(s.willChange) || t && "filter" === s.willChange || t && s.filter && "none" !== s.filter) return r; r = r.parentNode } return null }(e) || t } function Uw(e, t) { var i = t.getRootNode && t.getRootNode(); if (e.contains(t)) return !0; if (i && Pp(i)) { var n = t; do { if (n && e.isSameNode(n)) return !0; n = n.parentNode || n.host } while (n) } return !1 } function Vp(e) { return Object.assign({}, e, { left: e.x, top: e.y, right: e.x + e.width, bottom: e.y + e.height }) } function jw(e, t, i) { return t === Fw ? Vp(function fB(e, t) { var i = Un(e), n = gr(e), r = i.visualViewport, s = n.clientWidth, o = n.clientHeight, a = 0, l = 0; if (r) { s = r.width, o = r.height; var c = Bw(); (c || !c && "fixed" === t) && (a = r.offsetLeft, l = r.offsetTop) } return { width: s, height: o, x: a + Lp(e), y: l } }(e, i)) : Gr(t) ? function _B(e, t) { var i = uo(e, !1, "fixed" === t); return i.top = i.top + e.clientTop, i.left = i.left + e.clientLeft, i.bottom = i.top + e.clientHeight, i.right = i.left + e.clientWidth, i.width = e.clientWidth, i.height = e.clientHeight, i.x = i.left, i.y = i.top, i }(t, i) : Vp(function hB(e) { var t, i = gr(e), n = kp(e), r = null == (t = e.ownerDocument) ? void 0 : t.body, s = zr(i.scrollWidth, i.clientWidth, r ? r.scrollWidth : 0, r ? r.clientWidth : 0), o = zr(i.scrollHeight, i.clientHeight, r ? r.scrollHeight : 0, r ? r.clientHeight : 0), a = -n.scrollLeft + Lp(e), l = -n.scrollTop; return "rtl" === Yi(r || i).direction && (a += zr(i.clientWidth, r ? r.clientWidth : 0) - s), { width: s, height: o, x: a, y: l } }(gr(e))) } function fo(e) { return e.split("-")[1] } function Hp(e) { return ["top", "bottom"].indexOf(e) >= 0 ? "x" : "y" } function $w(e) { var l, t = e.reference, i = e.element, n = e.placement, r = n ? ki(n) : null, s = n ? fo(n) : null, o = t.x + t.width / 2 - i.width / 2, a = t.y + t.height / 2 - i.height / 2; switch (r) { case Vn: l = { x: o, y: t.y - i.height }; break; case di: l = { x: o, y: t.y + t.height }; break; case fi: l = { x: t.x + t.width, y: a }; break; case Hn: l = { x: t.x - i.width, y: a }; break; default: l = { x: t.x, y: t.y } }var c = r ? Hp(r) : null; if (null != c) { var u = "y" === c ? "height" : "width"; switch (s) { case lo: l[c] = l[c] - (t[u] / 2 - i[u] / 2); break; case Fa: l[c] = l[c] + (t[u] / 2 - i[u] / 2) } } return l } function zw(e) { return Object.assign({}, { top: 0, right: 0, bottom: 0, left: 0 }, e) } function Ww(e, t) { return t.reduce(function (i, n) { return i[n] = e, i }, {}) } function Up(e, t) { void 0 === t && (t = {}); var n = t.placement, r = void 0 === n ? e.placement : n, s = t.strategy, o = void 0 === s ? e.strategy : s, a = t.boundary, l = void 0 === a ? "clippingParents" : a, c = t.rootBoundary, u = void 0 === c ? Fw : c, h = t.elementContext, g = void 0 === h ? ka : h, _ = t.altBoundary, y = void 0 !== _ && _, b = t.padding, D = void 0 === b ? 0 : b, T = zw("number" != typeof D ? D : Ww(D, Pa)), P = e.rects.popper, O = e.elements[y ? g === ka ? "reference" : ka : g], V = function vB(e, t, i, n) { var r = "clippingParents" === t ? function mB(e) { var t = La(fu(e)), n = ["absolute", "fixed"].indexOf(Yi(e).position) >= 0 && Xn(e) ? Ba(e) : e; return Gr(n) ? t.filter(function (r) { return Gr(r) && Uw(r, n) && "body" !== Li(r) }) : [] }(e) : [].concat(t), s = [].concat(r, [i]), a = s.reduce(function (l, c) { var u = jw(e, c, n); return l.top = zr(u.top, l.top), l.right = du(u.right, l.right), l.bottom = du(u.bottom, l.bottom), l.left = zr(u.left, l.left), l }, jw(e, s[0], n)); return a.width = a.right - a.left, a.height = a.bottom - a.top, a.x = a.left, a.y = a.top, a }(Gr(O) ? O : O.contextElement || gr(e.elements.popper), l, u, o), J = uo(e.elements.reference), ue = $w({ reference: J, element: P, strategy: "absolute", placement: r }), _e = Vp(Object.assign({}, P, ue)), lt = g === ka ? _e : J, Dt = { top: V.top - lt.top + T.top, bottom: lt.bottom - V.bottom + T.bottom, left: V.left - lt.left + T.left, right: lt.right - V.right + T.right }, Bt = e.modifiersData.offset; if (g === ka && Bt) { var pi = Bt[r]; Object.keys(Dt).forEach(function (gn) { var Xr = [fi, di].indexOf(gn) >= 0 ? 1 : -1, es = [Vn, di].indexOf(gn) >= 0 ? "y" : "x"; Dt[gn] += pi[es] * Xr }) } return Dt } const wB = { name: "flip", enabled: !0, phase: "main", fn: function DB(e) { var t = e.state, i = e.options, n = e.name; if (!t.modifiersData[n]._skip) { for (var r = i.mainAxis, s = void 0 === r || r, o = i.altAxis, a = void 0 === o || o, l = i.fallbackPlacements, c = i.padding, u = i.boundary, h = i.rootBoundary, g = i.altBoundary, _ = i.flipVariations, y = void 0 === _ || _, b = i.allowedAutoPlacements, D = t.options.placement, T = ki(D), P = l || (T !== D && y ? function bB(e) { if (ki(e) === Rp) return []; var t = uu(e); return [Pw(e), t, Pw(t)] }(D) : [uu(D)]), O = [D].concat(P).reduce(function (mo, _r) { return mo.concat(ki(_r) === Rp ? function yB(e, t) { void 0 === t && (t = {}); var r = t.boundary, s = t.rootBoundary, o = t.padding, a = t.flipVariations, l = t.allowedAutoPlacements, c = void 0 === l ? Lw : l, u = fo(t.placement), h = u ? a ? kw : kw.filter(function (y) { return fo(y) === u }) : Pa, g = h.filter(function (y) { return c.indexOf(y) >= 0 }); 0 === g.length && (g = h); var _ = g.reduce(function (y, b) { return y[b] = Up(e, { placement: b, boundary: r, rootBoundary: s, padding: o })[ki(b)], y }, {}); return Object.keys(_).sort(function (y, b) { return _[y] - _[b] }) }(t, { placement: _r, boundary: u, rootBoundary: h, padding: c, flipVariations: y, allowedAutoPlacements: b }) : _r) }, []), V = t.rects.reference, J = t.rects.popper, ue = new Map, _e = !0, lt = O[0], Dt = 0; Dt < O.length; Dt++) { var Bt = O[Dt], pi = ki(Bt), gn = fo(Bt) === lo, Xr = [Vn, di].indexOf(pi) >= 0, es = Xr ? "width" : "height", jn = Up(t, { placement: Bt, boundary: u, rootBoundary: h, altBoundary: g, padding: c }), gi = Xr ? gn ? fi : Hn : gn ? di : Vn; V[es] > J[es] && (gi = uu(gi)); var Tu = uu(gi), ts = []; if (s && ts.push(jn[pi] <= 0), a && ts.push(jn[gi] <= 0, jn[Tu] <= 0), ts.every(function (mo) { return mo })) { lt = Bt, _e = !1; break } ue.set(Bt, ts) } if (_e) for (var og = function (_r) { var Za = O.find(function (Nu) { var ns = ue.get(Nu); if (ns) return ns.slice(0, _r).every(function (ag) { return ag }) }); if (Za) return lt = Za, "break" }, Ya = y ? 3 : 1; Ya > 0 && "break" !== og(Ya); Ya--); t.placement !== lt && (t.modifiersData[n]._skip = !0, t.placement = lt, t.reset = !0) } }, requiresIfExists: ["offset"], data: { _skip: !1 } }; function Va(e, t, i) { return zr(e, du(t, i)) } function jp(e) { var t = uo(e), i = e.offsetWidth, n = e.offsetHeight; return Math.abs(t.width - i) <= 1 && (i = t.width), Math.abs(t.height - n) <= 1 && (n = t.height), { x: e.offsetLeft, y: e.offsetTop, width: i, height: n } } const TB = { name: "preventOverflow", enabled: !0, phase: "main", fn: function SB(e) { var t = e.state, i = e.options, n = e.name, r = i.mainAxis, s = void 0 === r || r, o = i.altAxis, a = void 0 !== o && o, g = i.tether, _ = void 0 === g || g, y = i.tetherOffset, b = void 0 === y ? 0 : y, D = Up(t, { boundary: i.boundary, rootBoundary: i.rootBoundary, padding: i.padding, altBoundary: i.altBoundary }), T = ki(t.placement), C = fo(t.placement), P = !C, O = Hp(T), V = function CB(e) { return "x" === e ? "y" : "x" }(O), J = t.modifiersData.popperOffsets, ue = t.rects.reference, _e = t.rects.popper, lt = "function" == typeof b ? b(Object.assign({}, t.rects, { placement: t.placement })) : b, Dt = "number" == typeof lt ? { mainAxis: lt, altAxis: lt } : Object.assign({ mainAxis: 0, altAxis: 0 }, lt), Bt = t.modifiersData.offset ? t.modifiersData.offset[t.placement] : null, pi = { x: 0, y: 0 }; if (J) { if (s) { var gn, Xr = "y" === O ? Vn : Hn, es = "y" === O ? di : fi, jn = "y" === O ? "height" : "width", gi = J[O], Tu = gi + D[Xr], ts = gi - D[es], Mu = _ ? -_e[jn] / 2 : 0, og = C === lo ? ue[jn] : _e[jn], Ya = C === lo ? -_e[jn] : -ue[jn], Iu = t.elements.arrow, mo = _ && Iu ? jp(Iu) : { width: 0, height: 0 }, _r = t.modifiersData["arrow#persistent"] ? t.modifiersData["arrow#persistent"].padding : { top: 0, right: 0, bottom: 0, left: 0 }, Za = _r[Xr], Nu = _r[es], ns = Va(0, ue[jn], mo[jn]), ag = P ? ue[jn] / 2 - Mu - ns - Za - Dt.mainAxis : og - ns - Za - Dt.mainAxis, aj = P ? -ue[jn] / 2 + Mu + ns + Nu + Dt.mainAxis : Ya + ns + Nu + Dt.mainAxis, lg = t.elements.arrow && Ba(t.elements.arrow), lj = lg ? "y" === O ? lg.clientTop || 0 : lg.clientLeft || 0 : 0, uE = null != (gn = Bt?.[O]) ? gn : 0, uj = gi + aj - uE, dE = Va(_ ? du(Tu, gi + ag - uE - lj) : Tu, gi, _ ? zr(ts, uj) : ts); J[O] = dE, pi[O] = dE - gi } if (a) { var fE, is = J[V], Au = "y" === V ? "height" : "width", hE = is + D["x" === O ? Vn : Hn], pE = is - D["x" === O ? di : fi], cg = -1 !== [Vn, Hn].indexOf(T), gE = null != (fE = Bt?.[V]) ? fE : 0, _E = cg ? hE : is - ue[Au] - _e[Au] - gE + Dt.altAxis, mE = cg ? is + ue[Au] + _e[Au] - gE - Dt.altAxis : pE, vE = _ && cg ? function EB(e, t, i) { var n = Va(e, t, i); return n > i ? i : n }(_E, is, mE) : Va(_ ? _E : hE, is, _ ? mE : pE); J[V] = vE, pi[V] = vE - is } t.modifiersData[n] = pi } }, requiresIfExists: ["offset"] }, AB = { name: "arrow", enabled: !0, phase: "main", fn: function IB(e) { var t, i = e.state, n = e.name, r = e.options, s = i.elements.arrow, o = i.modifiersData.popperOffsets, a = ki(i.placement), l = Hp(a), u = [Hn, fi].indexOf(a) >= 0 ? "height" : "width"; if (s && o) { var h = function (t, i) { return zw("number" != typeof (t = "function" == typeof t ? t(Object.assign({}, i.rects, { placement: i.placement })) : t) ? t : Ww(t, Pa)) }(r.padding, i), g = jp(s), _ = "y" === l ? Vn : Hn, y = "y" === l ? di : fi, b = i.rects.reference[u] + i.rects.reference[l] - o[l] - i.rects.popper[u], D = o[l] - i.rects.reference[l], T = Ba(s), C = T ? "y" === l ? T.clientHeight || 0 : T.clientWidth || 0 : 0, J = C / 2 - g[u] / 2 + (b / 2 - D / 2), ue = Va(h[_], J, C - g[u] - h[y]); i.modifiersData[n] = ((t = {})[l] = ue, t.centerOffset = ue - J, t) } }, effect: function NB(e) { var t = e.state, n = e.options.element, r = void 0 === n ? "[data-popper-arrow]" : n; null != r && ("string" == typeof r && !(r = t.elements.popper.querySelector(r)) || Uw(t.elements.popper, r) && (t.elements.arrow = r)) }, requires: ["popperOffsets"], requiresIfExists: ["preventOverflow"] }; function PB(e, t, i) { void 0 === i && (i = !1); var n = Xn(t), r = Xn(t) && function RB(e) { var t = e.getBoundingClientRect(), i = co(t.width) / e.offsetWidth || 1, n = co(t.height) / e.offsetHeight || 1; return 1 !== i || 1 !== n }(t), s = gr(t), o = uo(e, r, i), a = { scrollLeft: 0, scrollTop: 0 }, l = { x: 0, y: 0 }; return (n || !n && !i) && (("body" !== Li(t) || Bp(s)) && (a = function xB(e) { return e !== Un(e) && Xn(e) ? function OB(e) { return { scrollLeft: e.scrollLeft, scrollTop: e.scrollTop } }(e) : kp(e) }(t)), Xn(t) ? ((l = uo(t, !0)).x += t.clientLeft, l.y += t.clientTop) : s && (l.x = Lp(s))), { x: o.left + a.scrollLeft - l.x, y: o.top + a.scrollTop - l.y, width: o.width, height: o.height } } function FB(e) { var t = new Map, i = new Set, n = []; function r(s) { i.add(s.name), [].concat(s.requires || [], s.requiresIfExists || []).forEach(function (a) { if (!i.has(a)) { var l = t.get(a); l && r(l) } }), n.push(s) } return e.forEach(function (s) { t.set(s.name, s) }), e.forEach(function (s) { i.has(s.name) || r(s) }), n } function LB(e) { var t; return function () { return t || (t = new Promise(function (i) { Promise.resolve().then(function () { t = void 0, i(e()) }) })), t } } var qw = { placement: "bottom", modifiers: [], strategy: "absolute" }; function Yw() { for (var e = arguments.length, t = new Array(e), i = 0; i < e; i++)t[i] = arguments[i]; return !t.some(function (n) { return !(n && "function" == typeof n.getBoundingClientRect) }) } function VB(e) { void 0 === e && (e = {}); var i = e.defaultModifiers, n = void 0 === i ? [] : i, r = e.defaultOptions, s = void 0 === r ? qw : r; return function (a, l, c) { void 0 === c && (c = s); var u = { placement: "bottom", orderedModifiers: [], options: Object.assign({}, qw, s), modifiersData: {}, elements: { reference: a, popper: l }, attributes: {}, styles: {} }, h = [], g = !1, _ = { state: u, setOptions: function (T) { var C = "function" == typeof T ? T(u.options) : T; b(), u.options = Object.assign({}, s, u.options, C), u.scrollParents = { reference: Gr(a) ? La(a) : a.contextElement ? La(a.contextElement) : [], popper: La(l) }; var P = function kB(e) { var t = FB(e); return dB.reduce(function (i, n) { return i.concat(t.filter(function (r) { return r.phase === n })) }, []) }(function BB(e) { var t = e.reduce(function (i, n) { var r = i[n.name]; return i[n.name] = r ? Object.assign({}, r, n, { options: Object.assign({}, r.options, n.options), data: Object.assign({}, r.data, n.data) }) : n, i }, {}); return Object.keys(t).map(function (i) { return t[i] }) }([].concat(n, u.options.modifiers))); return u.orderedModifiers = P.filter(function (O) { return O.enabled }), function y() { u.orderedModifiers.forEach(function (D) { var C = D.options, O = D.effect; if ("function" == typeof O) { var V = O({ state: u, name: D.name, instance: _, options: void 0 === C ? {} : C }); h.push(V || function () { }) } }) }(), _.update() }, forceUpdate: function () { if (!g) { var T = u.elements, C = T.reference, P = T.popper; if (Yw(C, P)) { u.rects = { reference: PB(C, Ba(P), "fixed" === u.options.strategy), popper: jp(P) }, u.reset = !1, u.placement = u.options.placement, u.orderedModifiers.forEach(function (Dt) { return u.modifiersData[Dt.name] = Object.assign({}, Dt.data) }); for (var O = 0; O < u.orderedModifiers.length; O++)if (!0 !== u.reset) { var V = u.orderedModifiers[O], J = V.fn, ue = V.options; "function" == typeof J && (u = J({ state: u, options: void 0 === ue ? {} : ue, name: V.name, instance: _ }) || u) } else u.reset = !1, O = -1 } } }, update: LB(function () { return new Promise(function (D) { _.forceUpdate(), D(u) }) }), destroy: function () { b(), g = !0 } }; if (!Yw(a, l)) return _; function b() { h.forEach(function (D) { return D() }), h = [] } return _.setOptions(c).then(function (D) { !g && c.onFirstUpdate && c.onFirstUpdate(D) }), _ } } var hu = { passive: !0 }, GB = { top: "auto", right: "auto", bottom: "auto", left: "auto" }; function Zw(e) { var t, i = e.popper, n = e.popperRect, r = e.placement, s = e.variation, o = e.offsets, a = e.position, l = e.gpuAcceleration, c = e.adaptive, u = e.roundOffsets, h = e.isFixed, g = o.x, _ = void 0 === g ? 0 : g, y = o.y, b = void 0 === y ? 0 : y, D = "function" == typeof u ? u({ x: _, y: b }) : { x: _, y: b }; _ = D.x, b = D.y; var T = o.hasOwnProperty("x"), C = o.hasOwnProperty("y"), P = Hn, O = Vn, V = window; if (c) { var J = Ba(i), ue = "clientHeight", _e = "clientWidth"; J === Un(i) && "static" !== Yi(J = gr(i)).position && "absolute" === a && (ue = "scrollHeight", _e = "scrollWidth"), (r === Vn || (r === Hn || r === fi) && s === Fa) && (O = di, b -= (h && J === V && V.visualViewport ? V.visualViewport.height : J[ue]) - n.height, b *= l ? 1 : -1), r !== Hn && (r !== Vn && r !== di || s !== Fa) || (P = fi, _ -= (h && J === V && V.visualViewport ? V.visualViewport.width : J[_e]) - n.width, _ *= l ? 1 : -1) } var gn, Bt = Object.assign({ position: a }, c && GB), pi = !0 === u ? function zB(e, t) { var n = e.y, r = t.devicePixelRatio || 1; return { x: co(e.x * r) / r || 0, y: co(n * r) / r || 0 } }({ x: _, y: b }, Un(i)) : { x: _, y: b }; return _ = pi.x, b = pi.y, Object.assign({}, Bt, l ? ((gn = {})[O] = C ? "0" : "", gn[P] = T ? "0" : "", gn.transform = (V.devicePixelRatio || 1) <= 1 ? "translate(" + _ + "px, " + b + "px)" : "translate3d(" + _ + "px, " + b + "px, 0)", gn) : ((t = {})[O] = C ? b + "px" : "", t[P] = T ? _ + "px" : "", t.transform = "", t)) } var QB = VB({ defaultModifiers: [{ name: "eventListeners", enabled: !0, phase: "write", fn: function () { }, effect: function HB(e) { var t = e.state, i = e.instance, n = e.options, r = n.scroll, s = void 0 === r || r, o = n.resize, a = void 0 === o || o, l = Un(t.elements.popper), c = [].concat(t.scrollParents.reference, t.scrollParents.popper); return s && c.forEach(function (u) { u.addEventListener("scroll", i.update, hu) }), a && l.addEventListener("resize", i.update, hu), function () { s && c.forEach(function (u) { u.removeEventListener("scroll", i.update, hu) }), a && l.removeEventListener("resize", i.update, hu) } }, data: {} }, { name: "popperOffsets", enabled: !0, phase: "read", fn: function jB(e) { var t = e.state; t.modifiersData[e.name] = $w({ reference: t.rects.reference, element: t.rects.popper, strategy: "absolute", placement: t.placement }) }, data: {} }, { name: "computeStyles", enabled: !0, phase: "beforeWrite", fn: function WB(e) { var t = e.state, i = e.options, n = i.gpuAcceleration, r = void 0 === n || n, s = i.adaptive, o = void 0 === s || s, a = i.roundOffsets, l = void 0 === a || a, c = { placement: ki(t.placement), variation: fo(t.placement), popper: t.elements.popper, popperRect: t.rects.popper, gpuAcceleration: r, isFixed: "fixed" === t.options.strategy }; null != t.modifiersData.popperOffsets && (t.styles.popper = Object.assign({}, t.styles.popper, Zw(Object.assign({}, c, { offsets: t.modifiersData.popperOffsets, position: t.options.strategy, adaptive: o, roundOffsets: l })))), null != t.modifiersData.arrow && (t.styles.arrow = Object.assign({}, t.styles.arrow, Zw(Object.assign({}, c, { offsets: t.modifiersData.arrow, position: "absolute", adaptive: !1, roundOffsets: l })))), t.attributes.popper = Object.assign({}, t.attributes.popper, { "data-popper-placement": t.placement }) }, data: {} }, { name: "applyStyles", enabled: !0, phase: "write", fn: function YB(e) { var t = e.state; Object.keys(t.elements).forEach(function (i) { var n = t.styles[i] || {}, r = t.attributes[i] || {}, s = t.elements[i]; !Xn(s) || !Li(s) || (Object.assign(s.style, n), Object.keys(r).forEach(function (o) { var a = r[o]; !1 === a ? s.removeAttribute(o) : s.setAttribute(o, !0 === a ? "" : a) })) }) }, effect: function ZB(e) { var t = e.state, i = { popper: { position: t.options.strategy, left: "0", top: "0", margin: "0" }, arrow: { position: "absolute" }, reference: {} }; return Object.assign(t.elements.popper.style, i.popper), t.styles = i, t.elements.arrow && Object.assign(t.elements.arrow.style, i.arrow), function () { Object.keys(t.elements).forEach(function (n) { var r = t.elements[n], s = t.attributes[n] || {}, a = Object.keys(t.styles.hasOwnProperty(n) ? t.styles[n] : i[n]).reduce(function (l, c) { return l[c] = "", l }, {}); !Xn(r) || !Li(r) || (Object.assign(r.style, a), Object.keys(s).forEach(function (l) { r.removeAttribute(l) })) }) } }, requires: ["computeStyles"] }] }); const eV = { name: "offset", enabled: !0, phase: "main", requires: ["popperOffsets"], fn: function XB(e) { var t = e.state, n = e.name, r = e.options.offset, s = void 0 === r ? [0, 0] : r, o = Lw.reduce(function (u, h) { return u[h] = function KB(e, t, i) { var n = ki(e), r = [Hn, Vn].indexOf(n) >= 0 ? -1 : 1, s = "function" == typeof i ? i(Object.assign({}, t, { placement: e })) : i, o = s[0], a = s[1]; return o = o || 0, a = (a || 0) * r, [Hn, fi].indexOf(n) >= 0 ? { x: a, y: o } : { x: o, y: a } }(h, t.rects, s), u }, {}), a = o[t.placement], c = a.y; null != t.modifiersData.popperOffsets && (t.modifiersData.popperOffsets.x += a.x, t.modifiersData.popperOffsets.y += c), t.modifiersData[n] = o } }; function lV(e, t) { if (1 & e) { const i = Dn(); j(0, "button", 1), ce("click", function () { return on(i), an(z().close()) }), U() } } const Jw = ["*"], BV = ["dialog"]; function Wr(e) { return "string" == typeof e } function qr(e) { return null != e } function ho(e) { return (e || document.body).getBoundingClientRect() } function tC(e = document) { const t = e?.activeElement; return t ? t.shadowRoot ? tC(t.shadowRoot) : t : null } const nC = { animation: !0, transitionTimerDelayMs: 5 }, A3 = () => { }, { transitionTimerDelayMs: O3 } = nC, Ha = new Map, pn = (e, t, i, n) => { let r = n.context || {}; const s = Ha.get(t); if (s) switch (n.runningTransition) { case "continue": return Do; case "stop": e.run(() => s.transition$.complete()), r = Object.assign(s.context, r), Ha.delete(t) }const o = i(t, n.animation, r) || A3; if (!n.animation || "none" === window.getComputedStyle(t).transitionProperty) return e.run(() => o()), ds(void 0).pipe(function I3(e) { return t => new ze(i => t.subscribe({ next: o => e.run(() => i.next(o)), error: o => e.run(() => i.error(o)), complete: () => e.run(() => i.complete()) })) }(e)); const a = new ee, l = new ee, c = a.pipe(function z2(...e) { return t => Jc(t, ds(...e)) }(!0)); Ha.set(t, { transition$: a, complete: () => { l.next(), l.complete() }, context: r }); const u = function N3(e) { const { transitionDelay: t, transitionDuration: i } = window.getComputedStyle(e); return 1e3 * (parseFloat(t) + parseFloat(i)) }(t); return e.runOutsideAngular(() => { const h = Gt(t, "transitionend").pipe(Mt(c), ci(({ target: _ }) => _ === t)); CD(DD(u + O3).pipe(Mt(c)), h, l).pipe(Mt(c)).subscribe(() => { Ha.delete(t), e.run(() => { o(), a.next(), a.complete() }) }) }), a.asObservable() }; let Ua = (() => { var e; class t { constructor() { this.animation = nC.animation } } return (e = t).\u0275fac = function (n) { return new (n || e) }, e.\u0275prov = G({ token: e, factory: e.\u0275fac, providedIn: "root" }), t })(), dC = (() => { var e; class t { } return (e = t).\u0275fac = function (n) { return new (n || e) }, e.\u0275mod = Pe({ type: e }), e.\u0275inj = Ae({}), t })(); const H3 = ({ classList: e }) => { e.remove("show") }; let U3 = (() => { var e; class t { constructor(n) { this._ngbConfig = n, this.dismissible = !0, this.type = "warning" } get animation() { return void 0 === this._animation ? this._ngbConfig.animation : this._animation } set animation(n) { this._animation = n } } return (e = t).\u0275fac = function (n) { return new (n || e)(L(Ua)) }, e.\u0275prov = G({ token: e, factory: e.\u0275fac, providedIn: "root" }), t })(), j3 = (() => { var e; class t { constructor(n, r, s, o) { this._renderer = r, this._element = s, this._zone = o, this.closed = new Y, this.dismissible = n.dismissible, this.type = n.type, this.animation = n.animation } close() { const n = pn(this._zone, this._element.nativeElement, H3, { animation: this.animation, runningTransition: "continue" }); return n.subscribe(() => this.closed.emit()), n } ngOnChanges(n) { const r = n.type; r && !r.firstChange && (this._renderer.removeClass(this._element.nativeElement, `alert-${r.previousValue}`), this._renderer.addClass(this._element.nativeElement, `alert-${r.currentValue}`)) } ngOnInit() { this._renderer.addClass(this._element.nativeElement, `alert-${this.type}`) } } return (e = t).\u0275fac = function (n) { return new (n || e)(v(U3), v(Wn), v(Fe), v(Se)) }, e.\u0275cmp = et({ type: e, selectors: [["ngb-alert"]], hostAttrs: ["role", "alert", 1, "alert", "show"], hostVars: 4, hostBindings: function (n, r) { 2 & n && De("fade", r.animation)("alert-dismissible", r.dismissible) }, inputs: { animation: "animation", dismissible: "dismissible", type: "type" }, outputs: { closed: "closed" }, exportAs: ["ngbAlert"], standalone: !0, features: [sn, Zn], ngContentSelectors: Jw, decls: 2, vars: 1, consts: function () { let i; return i = $localize`:@@ngb.alert.close:Close`, [["type", "button", "class", "btn-close", "aria-label", i, 3, "click", 4, "ngIf"], ["type", "button", "aria-label", i, 1, "btn-close", 3, "click"]] }, template: function (n, r) { 1 & n && (Wf(), qf(0), B(1, lV, 1, 0, "button", 0)), 2 & n && (R(1), x("ngIf", r.dismissible)) }, dependencies: [Ln], styles: ["ngb-alert{display:block}\n"], encapsulation: 2, changeDetection: 0 }), t })(), fC = (() => { var e; class t { } return (e = t).\u0275fac = function (n) { return new (n || e) }, e.\u0275mod = Pe({ type: e }), e.\u0275inj = Ae({}), t })(), gC = (() => { var e; class t { } return (e = t).\u0275fac = function (n) { return new (n || e) }, e.\u0275mod = Pe({ type: e }), e.\u0275inj = Ae({}), t })(), Yp = (() => { var e; class t { } return (e = t).\u0275fac = function (n) { return new (n || e) }, e.\u0275mod = Pe({ type: e }), e.\u0275inj = Ae({}), t })(); var Ge = function (e) { return e[e.Tab = 9] = "Tab", e[e.Enter = 13] = "Enter", e[e.Escape = 27] = "Escape", e[e.Space = 32] = "Space", e[e.PageUp = 33] = "PageUp", e[e.PageDown = 34] = "PageDown", e[e.End = 35] = "End", e[e.Home = 36] = "Home", e[e.ArrowLeft = 37] = "ArrowLeft", e[e.ArrowUp = 38] = "ArrowUp", e[e.ArrowRight = 39] = "ArrowRight", e[e.ArrowDown = 40] = "ArrowDown", e }(Ge || {}); const yu = (e, t) => !!t && t.some(i => i.contains(e)), bC = (e, t) => !t || null != function M3(e, t) { return !t || typeof e.closest > "u" ? null : e.closest(t) }(e, t), cH = typeof navigator < "u" && !!navigator.userAgent && (/iPad|iPhone|iPod/.test(navigator.userAgent) || /Macintosh/.test(navigator.userAgent) && navigator.maxTouchPoints && navigator.maxTouchPoints > 2 || /Android/.test(navigator.userAgent)); function DC(e, t, i, n, r, s, o, a) { i && e.runOutsideAngular((e => cH ? () => setTimeout(() => e(), 100) : e)(() => { const c = Gt(t, "keydown").pipe(Mt(r), ci(g => g.which === Ge.Escape), ED(g => g.preventDefault())), u = Gt(t, "mousedown").pipe(Pt(g => { const _ = g.target; return 2 !== g.button && !yu(_, o) && ("inside" === i ? yu(_, s) && bC(_, a) : "outside" === i ? !yu(_, s) : bC(_, a) || !yu(_, s)) }), Mt(r)), h = Gt(t, "mouseup").pipe(hp(u), ci(([g, _]) => _), function Y2(e, t = bD) { const i = DD(e, t); return SD(() => i) }(0), Mt(r)); CD([c.pipe(Pt(g => 0)), h.pipe(Pt(g => 1))]).subscribe(g => e.run(() => n(g))) })) } const wC = ["a[href]", "button:not([disabled])", 'input:not([disabled]):not([type="hidden"])', "select:not([disabled])", "textarea:not([disabled])", "[contenteditable]", '[tabindex]:not([tabindex="-1"])'].join(", "); function CC(e) { const t = Array.from(e.querySelectorAll(wC)).filter(i => -1 !== i.tabIndex); return [t[0], t[t.length - 1]] } let dH = (() => { var e; class t { constructor(n) { this._element = n.documentElement } isRTL() { return "rtl" === (this._element.getAttribute("dir") || "").toLowerCase() } } return (e = t).\u0275fac = function (n) { return new (n || e)(L(Kt)) }, e.\u0275prov = G({ token: e, factory: e.\u0275fac, providedIn: "root" }), t })(); const fH = /\s+/, hH = / +/gi, pH = { top: ["top"], bottom: ["bottom"], start: ["left", "right"], left: ["left"], end: ["right", "left"], right: ["right"], "top-start": ["top-start", "top-end"], "top-left": ["top-start"], "top-end": ["top-end", "top-start"], "top-right": ["top-end"], "bottom-start": ["bottom-start", "bottom-end"], "bottom-left": ["bottom-start"], "bottom-end": ["bottom-end", "bottom-start"], "bottom-right": ["bottom-end"], "start-top": ["left-start", "right-start"], "left-top": ["left-start"], "start-bottom": ["left-end", "right-end"], "left-bottom": ["left-end"], "end-top": ["right-start", "left-start"], "right-top": ["right-start"], "end-bottom": ["right-end", "left-end"], "right-bottom": ["right-end"] }, _H = /^left/, mH = /^right/, vH = /^start/, yH = /^end/; function SC({ placement: e, baseClass: t }, i) { let n = Array.isArray(e) ? e : e.split(fH), s = n.findIndex(c => "auto" === c); s >= 0 && ["top", "bottom", "start", "end", "top-start", "top-end", "bottom-start", "bottom-end", "start-top", "start-bottom", "end-top", "end-bottom"].forEach(function (c) { null == n.find(u => -1 !== u.search("^" + c)) && n.splice(s++, 1, c) }); const o = n.map(c => function gH(e, t) { const [i, n] = pH[e]; return t && n || i }(c, i.isRTL())); return { placement: o.shift(), modifiers: [{ name: "bootstrapClasses", enabled: !!t, phase: "write", fn({ state: c }) { const u = new RegExp(t + "(-[a-z]+)*", "gi"), h = c.elements.popper, g = c.placement; let _ = h.className; _ = _.replace(u, ""), _ += ` ${function bH(e, t) { let [i, n] = t.split("-"); const r = i.replace(_H, "start").replace(mH, "end"); let s = [r]; if (n) { let o = n; ("left" === i || "right" === i) && (o = o.replace(vH, "top").replace(yH, "bottom")), s.push(`${r}-${o}`) } return e && (s = s.map(o => `${e}-${o}`)), s.join(" ") }(t, g)}`, _ = _.trim().replace(hH, " "), h.className = _ } }, wB, TB, AB, { enabled: !0, name: "flip", options: { fallbackPlacements: o } }, { enabled: !0, name: "preventOverflow", phase: "main", fn: function () { } }] } } function TC(e) { return e } new Date(1882, 10, 12), new Date(2174, 10, 25); let kC = (() => { var e; class t { } return (e = t).\u0275fac = function (n) { return new (n || e) }, e.\u0275mod = Pe({ type: e }), e.\u0275inj = Ae({}), t })(), OH = (() => { var e; class t { constructor() { this.autoClose = !0, this.placement = ["bottom-start", "bottom-end", "top-start", "top-end"], this.popperOptions = n => n } } return (e = t).\u0275fac = function (n) { return new (n || e) }, e.\u0275prov = G({ token: e, factory: e.\u0275fac, providedIn: "root" }), t })(), ig = (() => { var e; class t { set disabled(n) { this._disabled = "" === n || !0 === n, this._renderer.setProperty(this.elementRef.nativeElement, "disabled", this._disabled) } get disabled() { return this._disabled } constructor(n, r) { this.elementRef = n, this._renderer = r, this._disabled = !1 } } return (e = t).\u0275fac = function (n) { return new (n || e)(v(Fe), v(Wn)) }, e.\u0275dir = k({ type: e, selectors: [["", "ngbDropdownItem", ""]], hostAttrs: [1, "dropdown-item"], hostVars: 3, hostBindings: function (n, r) { 2 & n && (Yn("tabIndex", r.disabled ? -1 : 0), De("disabled", r.disabled)) }, inputs: { disabled: "disabled" }, standalone: !0 }), t })(), rg = (() => { var e; class t { constructor(n, r) { this.dropdown = n, this.placement = "bottom", this.isOpen = !1, this.nativeElement = r.nativeElement } } return (e = t).\u0275fac = function (n) { return new (n || e)(v(ae(() => za)), v(Fe)) }, e.\u0275dir = k({ type: e, selectors: [["", "ngbDropdownMenu", ""]], contentQueries: function (n, r, s) { if (1 & n && pt(s, ig, 4), 2 & n) { let o; se(o = oe()) && (r.menuItems = o) } }, hostVars: 4, hostBindings: function (n, r) { 1 & n && ce("keydown.ArrowUp", function (o) { return r.dropdown.onKeyDown(o) })("keydown.ArrowDown", function (o) { return r.dropdown.onKeyDown(o) })("keydown.Home", function (o) { return r.dropdown.onKeyDown(o) })("keydown.End", function (o) { return r.dropdown.onKeyDown(o) })("keydown.Enter", function (o) { return r.dropdown.onKeyDown(o) })("keydown.Space", function (o) { return r.dropdown.onKeyDown(o) })("keydown.Tab", function (o) { return r.dropdown.onKeyDown(o) })("keydown.Shift.Tab", function (o) { return r.dropdown.onKeyDown(o) }), 2 & n && De("dropdown-menu", !0)("show", r.dropdown.isOpen()) }, standalone: !0 }), t })(), Cu = (() => { var e; class t { constructor(n, r) { this.dropdown = n, this.nativeElement = r.nativeElement } } return (e = t).\u0275fac = function (n) { return new (n || e)(v(ae(() => za)), v(Fe)) }, e.\u0275dir = k({ type: e, selectors: [["", "ngbDropdownAnchor", ""]], hostAttrs: [1, "dropdown-toggle"], hostVars: 1, hostBindings: function (n, r) { 2 & n && Te("aria-expanded", r.dropdown.isOpen()) }, standalone: !0 }), t })(), LC = (() => { var e; class t extends Cu { constructor(n, r) { super(n, r) } } return (e = t).\u0275fac = function (n) { return new (n || e)(v(ae(() => za)), v(Fe)) }, e.\u0275dir = k({ type: e, selectors: [["", "ngbDropdownToggle", ""]], hostAttrs: [1, "dropdown-toggle"], hostVars: 1, hostBindings: function (n, r) { 1 & n && ce("click", function () { return r.dropdown.toggle() })("keydown.ArrowUp", function (o) { return r.dropdown.onKeyDown(o) })("keydown.ArrowDown", function (o) { return r.dropdown.onKeyDown(o) })("keydown.Home", function (o) { return r.dropdown.onKeyDown(o) })("keydown.End", function (o) { return r.dropdown.onKeyDown(o) })("keydown.Tab", function (o) { return r.dropdown.onKeyDown(o) })("keydown.Shift.Tab", function (o) { return r.dropdown.onKeyDown(o) }), 2 & n && Te("aria-expanded", r.dropdown.isOpen()) }, standalone: !0, features: [$e([{ provide: Cu, useExisting: ae(() => e) }]), Oe] }), t })(), za = (() => { var e; class t { constructor(n, r, s, o, a, l) { this._changeDetector = n, this._document = s, this._ngZone = o, this._elementRef = a, this._renderer = l, this._destroyCloseHandlers$ = new ee, this._bodyContainer = null, this._open = !1, this.openChange = new Y, this.placement = r.placement, this.popperOptions = r.popperOptions, this.container = r.container, this.autoClose = r.autoClose, this._positioning = function MC() { const e = fe(dH); let t = null; return { createPopper(i) { if (!t) { let r = (i.updatePopperOptions || TC)(SC(i, e)); t = QB(i.hostElement, i.targetElement, r) } }, update() { t && t.update() }, setOptions(i) { if (t) { let r = (i.updatePopperOptions || TC)(SC(i, e)); t.setOptions(r) } }, destroy() { t && (t.destroy(), t = null) } } }() } ngOnInit() { this.display || (this.display = this._elementRef.nativeElement.closest(".navbar") ? "static" : "dynamic") } ngAfterContentInit() { this._ngZone.onStable.pipe(ui(1)).subscribe(() => { this._applyPlacementClasses(), this._open && this._setCloseHandlers() }) } ngOnChanges(n) { if (n.container && this._open && this._applyContainer(this.container), n.placement && !n.placement.firstChange && (this._positioning.setOptions({ hostElement: this._anchor.nativeElement, targetElement: this._bodyContainer || this._menu.nativeElement, placement: this.placement, appendToBody: "body" === this.container }), this._applyPlacementClasses()), n.dropdownClass) { const { currentValue: r, previousValue: s } = n.dropdownClass; this._applyCustomDropdownClass(r, s) } n.autoClose && this._open && (this.autoClose = n.autoClose.currentValue, this._setCloseHandlers()) } isOpen() { return this._open } open() { this._open || (this._open = !0, this._applyContainer(this.container), this.openChange.emit(!0), this._setCloseHandlers(), this._anchor && (this._anchor.nativeElement.focus(), "dynamic" === this.display && this._ngZone.runOutsideAngular(() => { this._positioning.createPopper({ hostElement: this._anchor.nativeElement, targetElement: this._bodyContainer || this._menu.nativeElement, placement: this.placement, appendToBody: "body" === this.container, updatePopperOptions: n => this.popperOptions(function NC(e) { return t => (t.modifiers.push(eV, { name: "offset", options: { offset: () => e } }), t) }([0, 2])(n)) }), this._applyPlacementClasses(), this._zoneSubscription = this._ngZone.onStable.subscribe(() => this._positionMenu()) }))) } _setCloseHandlers() { this._destroyCloseHandlers$.next(), DC(this._ngZone, this._document, this.autoClose, n => { this.close(), 0 === n && this._anchor.nativeElement.focus() }, this._destroyCloseHandlers$, this._menu ? [this._menu.nativeElement] : [], this._anchor ? [this._anchor.nativeElement] : [], ".dropdown-item,.dropdown-divider") } close() { this._open && (this._open = !1, this._resetContainer(), this._positioning.destroy(), this._zoneSubscription?.unsubscribe(), this._destroyCloseHandlers$.next(), this.openChange.emit(!1), this._changeDetector.markForCheck()) } toggle() { this.isOpen() ? this.close() : this.open() } ngOnDestroy() { this.close() } onKeyDown(n) { const r = n.which, s = this._getMenuElements(); let o = -1, a = null; const l = this._isEventFromToggle(n); if (!l && s.length && s.forEach((c, u) => { c.contains(n.target) && (a = c), c === tC(this._document) && (o = u) }), r !== Ge.Space && r !== Ge.Enter) { if (r !== Ge.Tab) { if (l || a) { if (this.open(), s.length) { switch (r) { case Ge.ArrowDown: o = Math.min(o + 1, s.length - 1); break; case Ge.ArrowUp: if (this._isDropup() && -1 === o) { o = s.length - 1; break } o = Math.max(o - 1, 0); break; case Ge.Home: o = 0; break; case Ge.End: o = s.length - 1 }s[o].focus() } n.preventDefault() } } else if (n.target && this.isOpen() && this.autoClose) { if (this._anchor.nativeElement === n.target) return void ("body" !== this.container || n.shiftKey ? n.shiftKey && this.close() : (this._renderer.setAttribute(this._menu.nativeElement, "tabindex", "0"), this._menu.nativeElement.focus(), this._renderer.removeAttribute(this._menu.nativeElement, "tabindex"))); if ("body" === this.container) { const c = this._menu.nativeElement.querySelectorAll(wC); n.shiftKey && n.target === c[0] ? (this._anchor.nativeElement.focus(), n.preventDefault()) : !n.shiftKey && n.target === c[c.length - 1] && (this._anchor.nativeElement.focus(), this.close()) } else Gt(n.target, "focusout").pipe(ui(1)).subscribe(({ relatedTarget: c }) => { this._elementRef.nativeElement.contains(c) || this.close() }) } } else a && (!0 === this.autoClose || "inside" === this.autoClose) && Gt(a, "click").pipe(ui(1)).subscribe(() => this.close()) } _isDropup() { return this._elementRef.nativeElement.classList.contains("dropup") } _isEventFromToggle(n) { return this._anchor.nativeElement.contains(n.target) } _getMenuElements() { const n = this._menu; return null == n ? [] : n.menuItems.filter(r => !r.disabled).map(r => r.elementRef.nativeElement) } _positionMenu() { const n = this._menu; this.isOpen() && n && ("dynamic" === this.display ? (this._positioning.update(), this._applyPlacementClasses()) : this._applyPlacementClasses(this._getFirstPlacement(this.placement))) } _getFirstPlacement(n) { return Array.isArray(n) ? n[0] : n.split(" ")[0] } _resetContainer() { const n = this._renderer; this._menu && n.appendChild(this._elementRef.nativeElement, this._menu.nativeElement), this._bodyContainer && (n.removeChild(this._document.body, this._bodyContainer), this._bodyContainer = null) } _applyContainer(n = null) { if (this._resetContainer(), "body" === n) { const r = this._renderer, s = this._menu.nativeElement, o = this._bodyContainer = this._bodyContainer || r.createElement("div"); r.setStyle(o, "position", "absolute"), r.setStyle(s, "position", "static"), r.setStyle(o, "z-index", "1055"), r.appendChild(o, s), r.appendChild(this._document.body, o) } this._applyCustomDropdownClass(this.dropdownClass) } _applyCustomDropdownClass(n, r) { const s = "body" === this.container ? this._bodyContainer : this._elementRef.nativeElement; s && (r && this._renderer.removeClass(s, r), n && this._renderer.addClass(s, n)) } _applyPlacementClasses(n) { const r = this._menu; if (r) { n || (n = this._getFirstPlacement(this.placement)); const s = this._renderer, o = this._elementRef.nativeElement; s.removeClass(o, "dropup"), s.removeClass(o, "dropdown"); const { nativeElement: a } = r; "static" === this.display ? (r.placement = null, s.setAttribute(a, "data-bs-popper", "static")) : (r.placement = n, s.removeAttribute(a, "data-bs-popper")); const l = -1 !== n.search("^top") ? "dropup" : "dropdown"; s.addClass(o, l); const c = this._bodyContainer; c && (s.removeClass(c, "dropup"), s.removeClass(c, "dropdown"), s.addClass(c, l)) } } } return (e = t).\u0275fac = function (n) { return new (n || e)(v(gt), v(OH), v(Kt), v(Se), v(Fe), v(Wn)) }, e.\u0275dir = k({ type: e, selectors: [["", "ngbDropdown", ""]], contentQueries: function (n, r, s) { if (1 & n && (pt(s, rg, 5), pt(s, Cu, 5)), 2 & n) { let o; se(o = oe()) && (r._menu = o.first), se(o = oe()) && (r._anchor = o.first) } }, hostVars: 2, hostBindings: function (n, r) { 2 & n && De("show", r.isOpen()) }, inputs: { autoClose: "autoClose", dropdownClass: "dropdownClass", _open: ["open", "_open"], placement: "placement", popperOptions: "popperOptions", container: "container", display: "display" }, outputs: { openChange: "openChange" }, exportAs: ["ngbDropdown"], standalone: !0, features: [sn] }), t })(), BC = (() => { var e; class t { } return (e = t).\u0275fac = function (n) { return new (n || e) }, e.\u0275mod = Pe({ type: e }), e.\u0275inj = Ae({}), t })(); class Kr { constructor(t, i, n) { this.nodes = t, this.viewRef = i, this.componentRef = n } } let xH = (() => { var e; class t { constructor(n, r) { this._el = n, this._zone = r } ngOnInit() { this._zone.onStable.asObservable().pipe(ui(1)).subscribe(() => { pn(this._zone, this._el.nativeElement, (n, r) => { r && ho(n), n.classList.add("show") }, { animation: this.animation, runningTransition: "continue" }) }) } hide() { return pn(this._zone, this._el.nativeElement, ({ classList: n }) => n.remove("show"), { animation: this.animation, runningTransition: "stop" }) } } return (e = t).\u0275fac = function (n) { return new (n || e)(v(Fe), v(Se)) }, e.\u0275cmp = et({ type: e, selectors: [["ngb-modal-backdrop"]], hostAttrs: [2, "z-index", "1055"], hostVars: 6, hostBindings: function (n, r) { 2 & n && (Rr("modal-backdrop" + (r.backdropClass ? " " + r.backdropClass : "")), De("show", !r.animation)("fade", r.animation)) }, inputs: { animation: "animation", backdropClass: "backdropClass" }, standalone: !0, features: [Zn], decls: 0, vars: 0, template: function (n, r) { }, encapsulation: 2 }), t })(); class VC { update(t) { } close(t) { } dismiss(t) { } } const RH = ["animation", "ariaLabelledBy", "ariaDescribedBy", "backdrop", "centered", "fullscreen", "keyboard", "scrollable", "size", "windowClass", "modalDialogClass"], PH = ["animation", "backdropClass"]; class FH { _applyWindowOptions(t, i) { RH.forEach(n => { qr(i[n]) && (t[n] = i[n]) }) } _applyBackdropOptions(t, i) { PH.forEach(n => { qr(i[n]) && (t[n] = i[n]) }) } update(t) { this._applyWindowOptions(this._windowCmptRef.instance, t), this._backdropCmptRef && this._backdropCmptRef.instance && this._applyBackdropOptions(this._backdropCmptRef.instance, t) } get componentInstance() { if (this._contentRef && this._contentRef.componentRef) return this._contentRef.componentRef.instance } get closed() { return this._closed.asObservable().pipe(Mt(this._hidden)) } get dismissed() { return this._dismissed.asObservable().pipe(Mt(this._hidden)) } get hidden() { return this._hidden.asObservable() } get shown() { return this._windowCmptRef.instance.shown.asObservable() } constructor(t, i, n, r) { this._windowCmptRef = t, this._contentRef = i, this._backdropCmptRef = n, this._beforeDismiss = r, this._closed = new ee, this._dismissed = new ee, this._hidden = new ee, t.instance.dismissEvent.subscribe(s => { this.dismiss(s) }), this.result = new Promise((s, o) => { this._resolve = s, this._reject = o }), this.result.then(null, () => { }) } close(t) { this._windowCmptRef && (this._closed.next(t), this._resolve(t), this._removeModalElements()) } _dismiss(t) { this._dismissed.next(t), this._reject(t), this._removeModalElements() } dismiss(t) { if (this._windowCmptRef) if (this._beforeDismiss) { const i = this._beforeDismiss(); !function Kw(e) { return e && e.then }(i) ? !1 !== i && this._dismiss(t) : i.then(n => { !1 !== n && this._dismiss(t) }, () => { }) } else this._dismiss(t) } _removeModalElements() { const t = this._windowCmptRef.instance.hide(), i = this._backdropCmptRef ? this._backdropCmptRef.instance.hide() : ds(void 0); t.subscribe(() => { const { nativeElement: n } = this._windowCmptRef.location; n.parentNode.removeChild(n), this._windowCmptRef.destroy(), this._contentRef && this._contentRef.viewRef && this._contentRef.viewRef.destroy(), this._windowCmptRef = null, this._contentRef = null }), i.subscribe(() => { if (this._backdropCmptRef) { const { nativeElement: n } = this._backdropCmptRef.location; n.parentNode.removeChild(n), this._backdropCmptRef.destroy(), this._backdropCmptRef = null } }), fp(t, i).subscribe(() => { this._hidden.next(), this._hidden.complete() }) } } var Wa = function (e) { return e[e.BACKDROP_CLICK = 0] = "BACKDROP_CLICK", e[e.ESC = 1] = "ESC", e }(Wa || {}); let kH = (() => { var e; class t { constructor(n, r, s) { this._document = n, this._elRef = r, this._zone = s, this._closed$ = new ee, this._elWithFocus = null, this.backdrop = !0, this.keyboard = !0, this.dismissEvent = new Y, this.shown = new ee, this.hidden = new ee } get fullscreenClass() { return !0 === this.fullscreen ? " modal-fullscreen" : Wr(this.fullscreen) ? ` modal-fullscreen-${this.fullscreen}-down` : "" } dismiss(n) { this.dismissEvent.emit(n) } ngOnInit() { this._elWithFocus = this._document.activeElement, this._zone.onStable.asObservable().pipe(ui(1)).subscribe(() => { this._show() }) } ngOnDestroy() { this._disableEventHandling() } hide() { const { nativeElement: n } = this._elRef, r = { animation: this.animation, runningTransition: "stop" }, a = fp(pn(this._zone, n, () => n.classList.remove("show"), r), pn(this._zone, this._dialogEl.nativeElement, () => { }, r)); return a.subscribe(() => { this.hidden.next(), this.hidden.complete() }), this._disableEventHandling(), this._restoreFocus(), a } _show() { const n = { animation: this.animation, runningTransition: "continue" }; fp(pn(this._zone, this._elRef.nativeElement, (o, a) => { a && ho(o), o.classList.add("show") }, n), pn(this._zone, this._dialogEl.nativeElement, () => { }, n)).subscribe(() => { this.shown.next(), this.shown.complete() }), this._enableEventHandling(), this._setFocus() } _enableEventHandling() { const { nativeElement: n } = this._elRef; this._zone.runOutsideAngular(() => { Gt(n, "keydown").pipe(Mt(this._closed$), ci(s => s.which === Ge.Escape)).subscribe(s => { this.keyboard ? requestAnimationFrame(() => { s.defaultPrevented || this._zone.run(() => this.dismiss(Wa.ESC)) }) : "static" === this.backdrop && this._bumpBackdrop() }); let r = !1; Gt(this._dialogEl.nativeElement, "mousedown").pipe(Mt(this._closed$), ED(() => r = !1), Bu(() => Gt(n, "mouseup").pipe(Mt(this._closed$), ui(1))), ci(({ target: s }) => n === s)).subscribe(() => { r = !0 }), Gt(n, "click").pipe(Mt(this._closed$)).subscribe(({ target: s }) => { n === s && ("static" === this.backdrop ? this._bumpBackdrop() : !0 === this.backdrop && !r && this._zone.run(() => this.dismiss(Wa.BACKDROP_CLICK))), r = !1 }) }) } _disableEventHandling() { this._closed$.next() } _setFocus() { const { nativeElement: n } = this._elRef; if (!n.contains(document.activeElement)) { const r = n.querySelector("[ngbAutofocus]"), s = CC(n)[0]; (r || s || n).focus() } } _restoreFocus() { const n = this._document.body, r = this._elWithFocus; let s; s = r && r.focus && n.contains(r) ? r : n, this._zone.runOutsideAngular(() => { setTimeout(() => s.focus()), this._elWithFocus = null }) } _bumpBackdrop() { "static" === this.backdrop && pn(this._zone, this._elRef.nativeElement, ({ classList: n }) => (n.add("modal-static"), () => n.remove("modal-static")), { animation: this.animation, runningTransition: "continue" }) } } return (e = t).\u0275fac = function (n) { return new (n || e)(v(Kt), v(Fe), v(Se)) }, e.\u0275cmp = et({ type: e, selectors: [["ngb-modal-window"]], viewQuery: function (n, r) { if (1 & n && at(BV, 7), 2 & n) { let s; se(s = oe()) && (r._dialogEl = s.first) } }, hostAttrs: ["role", "dialog", "tabindex", "-1"], hostVars: 7, hostBindings: function (n, r) { 2 & n && (Te("aria-modal", !0)("aria-labelledby", r.ariaLabelledBy)("aria-describedby", r.ariaDescribedBy), Rr("modal d-block" + (r.windowClass ? " " + r.windowClass : "")), De("fade", r.animation)) }, inputs: { animation: "animation", ariaLabelledBy: "ariaLabelledBy", ariaDescribedBy: "ariaDescribedBy", backdrop: "backdrop", centered: "centered", fullscreen: "fullscreen", keyboard: "keyboard", scrollable: "scrollable", size: "size", windowClass: "windowClass", modalDialogClass: "modalDialogClass" }, outputs: { dismissEvent: "dismiss" }, standalone: !0, features: [Zn], ngContentSelectors: Jw, decls: 4, vars: 2, consts: [["role", "document"], ["dialog", ""], [1, "modal-content"]], template: function (n, r) { 1 & n && (Wf(), j(0, "div", 0, 1)(2, "div", 2), qf(3), U()()), 2 & n && Rr("modal-dialog" + (r.size ? " modal-" + r.size : "") + (r.centered ? " modal-dialog-centered" : "") + r.fullscreenClass + (r.scrollable ? " modal-dialog-scrollable" : "") + (r.modalDialogClass ? " " + r.modalDialogClass : "")) }, styles: ["ngb-modal-window .component-host-scrollable{display:flex;flex-direction:column;overflow:hidden}\n"], encapsulation: 2 }), t })(), LH = (() => { var e; class t { constructor(n) { this._document = n } hide() { const n = Math.abs(window.innerWidth - this._document.documentElement.clientWidth), r = this._document.body, s = r.style, { overflow: o, paddingRight: a } = s; if (n > 0) { const l = parseFloat(window.getComputedStyle(r).paddingRight); s.paddingRight = `${l + n}px` } return s.overflow = "hidden", () => { n > 0 && (s.paddingRight = a), s.overflow = o } } } return (e = t).\u0275fac = function (n) { return new (n || e)(L(Kt)) }, e.\u0275prov = G({ token: e, factory: e.\u0275fac, providedIn: "root" }), t })(), BH = (() => { var e; class t { constructor(n, r, s, o, a, l, c) { this._applicationRef = n, this._injector = r, this._environmentInjector = s, this._document = o, this._scrollBar = a, this._rendererFactory = l, this._ngZone = c, this._activeWindowCmptHasChanged = new ee, this._ariaHiddenValues = new Map, this._scrollBarRestoreFn = null, this._modalRefs = [], this._windowCmpts = [], this._activeInstances = new Y, this._activeWindowCmptHasChanged.subscribe(() => { if (this._windowCmpts.length) { const u = this._windowCmpts[this._windowCmpts.length - 1]; ((e, t, i, n = !1) => { e.runOutsideAngular(() => { const r = Gt(t, "focusin").pipe(Mt(i), Pt(s => s.target)); Gt(t, "keydown").pipe(Mt(i), ci(s => s.which === Ge.Tab), hp(r)).subscribe(([s, o]) => { const [a, l] = CC(t); (o === a || o === t) && s.shiftKey && (l.focus(), s.preventDefault()), o === l && !s.shiftKey && (a.focus(), s.preventDefault()) }), n && Gt(t, "click").pipe(Mt(i), hp(r), Pt(s => s[1])).subscribe(s => s.focus()) }) })(this._ngZone, u.location.nativeElement, this._activeWindowCmptHasChanged), this._revertAriaHidden(), this._setAriaHidden(u.location.nativeElement) } }) } _restoreScrollBar() { const n = this._scrollBarRestoreFn; n && (this._scrollBarRestoreFn = null, n()) } _hideScrollBar() { this._scrollBarRestoreFn || (this._scrollBarRestoreFn = this._scrollBar.hide()) } open(n, r, s) { const o = s.container instanceof HTMLElement ? s.container : qr(s.container) ? this._document.querySelector(s.container) : this._document.body, a = this._rendererFactory.createRenderer(null, null); if (!o) throw new Error(`The specified modal container "${s.container || "body"}" was not found in the DOM.`); this._hideScrollBar(); const l = new VC, c = (n = s.injector || n).get(zn, null) || this._environmentInjector, u = this._getContentRef(n, c, r, l, s); let h = !1 !== s.backdrop ? this._attachBackdrop(o) : void 0, g = this._attachWindowComponent(o, u.nodes), _ = new FH(g, u, h, s.beforeDismiss); return this._registerModalRef(_), this._registerWindowCmpt(g), _.hidden.pipe(ui(1)).subscribe(() => Promise.resolve(!0).then(() => { this._modalRefs.length || (a.removeClass(this._document.body, "modal-open"), this._restoreScrollBar(), this._revertAriaHidden()) })), l.close = y => { _.close(y) }, l.dismiss = y => { _.dismiss(y) }, l.update = y => { _.update(y) }, _.update(s), 1 === this._modalRefs.length && a.addClass(this._document.body, "modal-open"), h && h.instance && h.changeDetectorRef.detectChanges(), g.changeDetectorRef.detectChanges(), _ } get activeInstances() { return this._activeInstances } dismissAll(n) { this._modalRefs.forEach(r => r.dismiss(n)) } hasOpenModals() { return this._modalRefs.length > 0 } _attachBackdrop(n) { let r = Ph(xH, { environmentInjector: this._applicationRef.injector, elementInjector: this._injector }); return this._applicationRef.attachView(r.hostView), n.appendChild(r.location.nativeElement), r } _attachWindowComponent(n, r) { let s = Ph(kH, { environmentInjector: this._applicationRef.injector, elementInjector: this._injector, projectableNodes: r }); return this._applicationRef.attachView(s.hostView), n.appendChild(s.location.nativeElement), s } _getContentRef(n, r, s, o, a) { return s ? s instanceof nt ? this._createFromTemplateRef(s, o) : Wr(s) ? this._createFromString(s) : this._createFromComponent(n, r, s, o, a) : new Kr([]) } _createFromTemplateRef(n, r) { const o = n.createEmbeddedView({ $implicit: r, close(a) { r.close(a) }, dismiss(a) { r.dismiss(a) } }); return this._applicationRef.attachView(o), new Kr([o.rootNodes], o) } _createFromString(n) { const r = this._document.createTextNode(`${n}`); return new Kr([[r]]) } _createFromComponent(n, r, s, o, a) { const c = Ph(s, { environmentInjector: r, elementInjector: Jt.create({ providers: [{ provide: VC, useValue: o }], parent: n }) }), u = c.location.nativeElement; return a.scrollable && u.classList.add("component-host-scrollable"), this._applicationRef.attachView(c.hostView), new Kr([[u]], c.hostView, c) } _setAriaHidden(n) { const r = n.parentElement; r && n !== this._document.body && (Array.from(r.children).forEach(s => { s !== n && "SCRIPT" !== s.nodeName && (this._ariaHiddenValues.set(s, s.getAttribute("aria-hidden")), s.setAttribute("aria-hidden", "true")) }), this._setAriaHidden(r)) } _revertAriaHidden() { this._ariaHiddenValues.forEach((n, r) => { n ? r.setAttribute("aria-hidden", n) : r.removeAttribute("aria-hidden") }), this._ariaHiddenValues.clear() } _registerModalRef(n) { const r = () => { const s = this._modalRefs.indexOf(n); s > -1 && (this._modalRefs.splice(s, 1), this._activeInstances.emit(this._modalRefs)) }; this._modalRefs.push(n), this._activeInstances.emit(this._modalRefs), n.result.then(r, r) } _registerWindowCmpt(n) { this._windowCmpts.push(n), this._activeWindowCmptHasChanged.next(), n.onDestroy(() => { const r = this._windowCmpts.indexOf(n); r > -1 && (this._windowCmpts.splice(r, 1), this._activeWindowCmptHasChanged.next()) }) } } return (e = t).\u0275fac = function (n) { return new (n || e)(L(kr), L(Jt), L(zn), L(Kt), L(LH), L(mf), L(Se)) }, e.\u0275prov = G({ token: e, factory: e.\u0275fac, providedIn: "root" }), t })(), VH = (() => { var e; class t { constructor(n) { this._ngbConfig = n, this.backdrop = !0, this.fullscreen = !1, this.keyboard = !0 } get animation() { return void 0 === this._animation ? this._ngbConfig.animation : this._animation } set animation(n) { this._animation = n } } return (e = t).\u0275fac = function (n) { return new (n || e)(L(Ua)) }, e.\u0275prov = G({ token: e, factory: e.\u0275fac, providedIn: "root" }), t })(), HC = (() => { var e; class t { constructor(n, r, s) { this._injector = n, this._modalStack = r, this._config = s } open(n, r = {}) { const s = { ...this._config, animation: this._config.animation, ...r }; return this._modalStack.open(this._injector, n, s) } get activeInstances() { return this._modalStack.activeInstances } dismissAll(n) { this._modalStack.dismissAll(n) } hasOpenModals() { return this._modalStack.hasOpenModals() } } return (e = t).\u0275fac = function (n) { return new (n || e)(L(Jt), L(BH), L(VH)) }, e.\u0275prov = G({ token: e, factory: e.\u0275fac, providedIn: "root" }), t })(), UC = (() => { var e; class t { } return (e = t).\u0275fac = function (n) { return new (n || e) }, e.\u0275mod = Pe({ type: e }), e.\u0275inj = Ae({ providers: [HC] }), t })(), GC = (() => { var e; class t { } return (e = t).\u0275fac = function (n) { return new (n || e) }, e.\u0275mod = Pe({ type: e }), e.\u0275inj = Ae({}), t })(), KC = (() => { var e; class t { } return (e = t).\u0275fac = function (n) { return new (n || e) }, e.\u0275mod = Pe({ type: e }), e.\u0275inj = Ae({}), t })(), eE = (() => { var e; class t { } return (e = t).\u0275fac = function (n) { return new (n || e) }, e.\u0275mod = Pe({ type: e }), e.\u0275inj = Ae({}), t })(), tE = (() => { var e; class t { } return (e = t).\u0275fac = function (n) { return new (n || e) }, e.\u0275mod = Pe({ type: e }), e.\u0275inj = Ae({}), t })(), nE = (() => { var e; class t { } return (e = t).\u0275fac = function (n) { return new (n || e) }, e.\u0275mod = Pe({ type: e }), e.\u0275inj = Ae({}), t })(), iE = (() => { var e; class t { } return (e = t).\u0275fac = function (n) { return new (n || e) }, e.\u0275mod = Pe({ type: e }), e.\u0275inj = Ae({}), t })(), rE = (() => { var e; class t { } return (e = t).\u0275fac = function (n) { return new (n || e) }, e.\u0275mod = Pe({ type: e }), e.\u0275inj = Ae({}), t })(), sE = (() => { var e; class t { } return (e = t).\u0275fac = function (n) { return new (n || e) }, e.\u0275mod = Pe({ type: e }), e.\u0275inj = Ae({}), t })(), oE = (() => { var e; class t { } return (e = t).\u0275fac = function (n) { return new (n || e) }, e.\u0275mod = Pe({ type: e }), e.\u0275inj = Ae({}), t })(); new W("live announcer delay", { providedIn: "root", factory: function iU() { return 100 } }); let aE = (() => { var e; class t { } return (e = t).\u0275fac = function (n) { return new (n || e) }, e.\u0275mod = Pe({ type: e }), e.\u0275inj = Ae({}), t })(), lE = (() => { var e; class t { } return (e = t).\u0275fac = function (n) { return new (n || e) }, e.\u0275mod = Pe({ type: e }), e.\u0275inj = Ae({}), t })(); const sU = [dC, fC, gC, Yp, kC, BC, UC, GC, lE, KC, eE, tE, nE, iE, rE, sE, oE, aE]; let oU = (() => { var e; class t { } return (e = t).\u0275fac = function (n) { return new (n || e) }, e.\u0275mod = Pe({ type: e }), e.\u0275inj = Ae({ imports: [sU, dC, fC, gC, Yp, kC, BC, UC, GC, lE, KC, eE, tE, nE, iE, rE, sE, oE, aE] }), t })(); const aU = ["ddbut"]; function lU(e, t) { if (1 & e && (j(0, "button", 8), Be(1, "i", null, 9), qe(3), U()), 2 & e) { const i = t.$implicit; Pn("id", i.element.id), R(3), jt(i.label) } } let cU = (() => { var e; class t { constructor(n, r, s, o, a, l) { this.attributeService = n, this.cd = r, this.frontendService = s, this.elementLookupService = a, this.callbackHelperService = l, this.element = null, this.parentLayout = "", this.buttonLabel = "", this.dropDownMenuItems = [] } ngAfterViewInit() { null != this.element && (this.elementLookupService.addElementObject(this.element.id, this, this.element), this.element.children.forEach(n => { let r = this.attributeService.findGetAttributeValue("label", n.attributes, ""), s = new uU(r, n); this.elementLookupService.addElementObject(n.id, s, n), this.dropDownMenuItems.push(s), this.cd.detectChanges(); let o = document.getElementById(n.id); if (null != o) { s.setHtmlElement(o), s.setAttributes(n.attributes), this.callbackHelperService.setCallbacks(o, n.when); let a = o.children.item(0); null != a && this.attributeService.addClasses(a, n.attributes, ["fa"], [], "icon") } }), this.cd.detectChanges(), this.setAttributes(this.element.attributes)) } setAttributes(n) { let r = this.attributeService.findAttribute("selected", n); null != r && (this.buttonLabel = r.value); let s = this.ddbut.nativeElement; this.attributeService.addAttributes(s, n), this.attributeService.textAttributes(s, n), this.attributeService.setAttributesDirectly(s, n), this.attributeService.addClasses(s, n, ["btn"], ["btn-outline-dark"]), s.style.border_color = this.attributeService.findGetAttributeValue("border_color", n, "black"), this.cd.detectChanges() } onClick(n) { this.frontendService.operationPost(n.when[0]) } } return (e = t).\u0275fac = function (n) { return new (n || e)(v(Tn), v(gt), v(Bn), v(Kt), v(Xt), v(Fi)) }, e.\u0275cmp = et({ type: e, selectors: [["app-dropdown-menu"]], viewQuery: function (n, r) { if (1 & n && at(aU, 7), 2 & n) { let s; se(s = oe()) && (r.ddbut = s.first) } }, inputs: { element: "element", parentLayout: "parentLayout" }, decls: 9, vars: 3, consts: [[2, "display", "table", "min-height", "100%", "min-width", "100%"], [2, "display", "table-row", "min-width", "100%"], [2, "display", "table-cell", "vertical-align", "middle", "text-align", "center"], ["ngbDropdown", "", 1, "d-inline-block"], ["type", "button", "ngbDropdownToggle", "", "ata-toggle", "dropdown", "aria-haspopup", "true", "aria-expanded", "false", 3, "id"], ["ddbut", ""], ["ngbDropdownMenu", ""], ["ngbDropdownItem", "", 3, "id", 4, "ngFor", "ngForOf"], ["ngbDropdownItem", "", 3, "id"], ["icon", ""]], template: function (n, r) { 1 & n && (j(0, "div", 0)(1, "div", 1)(2, "div", 2)(3, "div", 3)(4, "button", 4, 5), qe(6), U(), j(7, "div", 6), B(8, lU, 4, 2, "button", 7), U()()()()()), 2 & n && (R(4), Pn("id", null == r.element ? null : r.element.id), R(2), Ri(" ", r.buttonLabel, " "), R(2), x("ngForOf", r.dropDownMenuItems)) }, dependencies: [kn, za, LC, rg, ig] }), t })(); class uU { constructor(t, i) { this.htmlElement = null, this.label = t, this.element = i } setHtmlElement(t) { this.htmlElement = t } setAttributes(t) { if (null != this.htmlElement) { let i = $t.injector.get(Tn); i.addAttributes(this.htmlElement, t), i.textAttributes(this.htmlElement, t), i.setAttributesDirectly(this.htmlElement, t), i.addClasses(this.htmlElement, t, ["dropdown-item"], []) } } } const dU = ["label"], fU = ["middleDiv"], hU = ["outerDiv"]; let pU = (() => { var e; class t { constructor(n, r, s, o) { this.cd = n, this.callbackService = r, this.attributeService = s, this.elementLookupService = o, this.element = null, this.parentLayout = "", this.elementLabel = "" } ngAfterViewInit() { null != this.element && (this.elementLookupService.addElementObject(this.element.id, this, this.element), this.callbackService.setCallbacks(this.label.nativeElement, this.element.when), this.setAttributes(this.element.attributes), this.cd.detectChanges()) } setAttributes(n) { let r = this.attributeService.findAttribute("label", n); null != r && (this.elementLabel = r.value); let s = this.label.nativeElement, o = this.middleDiv.nativeElement, a = this.outerDiv.nativeElement; this.attributeService.addAttributes(s, n), this.attributeService.textAttributes(s, n), this.attributeService.setAttributesDirectly(s, n), this.attributeService.addClasses(s, n, [], []), this.setOuterDivStyles(a), this.setMiddleDivStyle(o), this.setParagraphStyle(s), this.cd.detectChanges() } setOuterDivStyles(n) { n.style.display = "table", n.style.minHeight = "100%", n.style.minWidth = "100%", n.style.overflow = "hidden" } setMiddleDivStyle(n) { n.style.minWidth = "100%", n.style.display = "table-row" } setParagraphStyle(n) { n.style.display = "table-cell", n.style.verticalAlign = "middle", n.style.textAlign = "center" } } return (e = t).\u0275fac = function (n) { return new (n || e)(v(gt), v(Fi), v(Tn), v(Xt)) }, e.\u0275cmp = et({ type: e, selectors: [["app-label"]], viewQuery: function (n, r) { if (1 & n && (at(dU, 7), at(fU, 7), at(hU, 7)), 2 & n) { let s; se(s = oe()) && (r.label = s.first), se(s = oe()) && (r.middleDiv = s.first), se(s = oe()) && (r.outerDiv = s.first) } }, inputs: { element: "element", parentLayout: "parentLayout" }, decls: 6, vars: 1, consts: [["outerDiv", ""], ["middleDiv", ""], [3, "innerHTML"], ["label", ""]], template: function (n, r) { 1 & n && (j(0, "div", null, 0)(2, "div", null, 1), Be(4, "p", 2, 3), U()()), 2 & n && (R(4), x("innerHTML", r.elementLabel, Lm)) } }), t })(); const gU = ["theButton"]; let _U = (() => { var e; class t { constructor(n, r, s, o) { this.cd = n, this.callbackService = r, this.attributeService = s, this.elementLookupService = o, this.element = null, this.parentLayout = "", this.buttonLabel = "", this.disabledAttribute = !1 } ngAfterViewInit() { null != this.element && (this.elementLookupService.addElementObject(this.element.id, this, this.element), this.setAttributes(this.element.attributes), this.callbackService.setCallbacks(this.theButton.nativeElement, this.element.when), this.cd.detectChanges()) } setAttributes(n) { this.buttonLabel = this.attributeService.findGetAttributeValue("label", n, ""); let r = this.theButton.nativeElement; this.attributeService.setAttributesDirectly(r, n), this.attributeService.addAttributes(r, n), this.attributeService.textAttributes(r, n), this.attributeService.addClasses(r, n, ["btn"], ["btn-info"]), this.attributeService.addGeneralAttributes(r, n), null != this.element && this.attributeService.setAbsoulteRelativePositions(this.parentLayout, r, this.element); let s = r.children.item(0); this.attributeService.addClasses(s, n, ["fa"], [], "icon"); let o = this.attributeService.findGetAttributeValue("disabled", n, "false"); "false" == o ? this.disabledAttribute = !1 : "true" == o ? this.disabledAttribute = !0 : (console.log("NOT SUPPORTED VALUE FOR DISABLED (assuming not disabled): "), console.log(o), this.disabledAttribute = !1), this.cd.detectChanges() } } return (e = t).\u0275fac = function (n) { return new (n || e)(v(gt), v(Fi), v(Tn), v(Xt)) }, e.\u0275cmp = et({ type: e, selectors: [["app-button"]], viewQuery: function (n, r) { if (1 & n && at(gU, 5), 2 & n) { let s; se(s = oe()) && (r.theButton = s.first) } }, inputs: { element: "element", parentLayout: "parentLayout" }, decls: 5, vars: 2, consts: [["type", "button"], ["theButton", ""], ["icon", ""]], template: function (n, r) { 1 & n && (j(0, "button", 0, 1), Be(2, "i", null, 2), qe(4), U()), 2 & n && (Te("disabled", !!r.disabledAttribute || null), R(4), jt(r.buttonLabel)) } }), t })(); var mU = Ve(7); const vU = ["theImage"], yU = ["svgContainer"]; function bU(e, t) { if (1 & e && (j(0, "div"), Be(1, "img", 1, 2), U()), 2 & e) { const i = z(); R(1), x("src", i.imageSource, Jd) } } function DU(e, t) { 1 & e && Be(0, "div", null, 3) } let wU = (() => { var e; class t { constructor(n, r, s, o) { this.cd = n, this.callbackService = r, this.attributeService = s, this.elementLookupService = o, this.element = null, this.parentLayout = "", this.imageSource = "", this.imageType = "" } ngAfterViewInit() { if (null != this.element) { this.elementLookupService.addElementObject(this.element.id, this, this.element); let n = this.attributeService.findAttribute("image", this.element.attributes), r = this.attributeService.findAttribute("image_type", this.element.attributes); null != n && null != r && r.value.startsWith("clingraph") ? this.svgImageHandler(this.element, n, r) : this.defaultImageHandler(this.element, n), this.cd.detectChanges() } } setAttributes(n) { console.log("TODO?") } svgImageHandler(n, r, s) { const a = /\(([^,]+),\s*([^)]+)\)/; this.imageType = "svg", this.cd.detectChanges(); let l = mU.lW.from(r.value, "base64").toString("binary"); this.svgContainer.nativeElement.innerHTML = l, this.cd.detectChanges(); let c = this.svgContainer.nativeElement.querySelectorAll(".node, .edge"), u = []; n.children.forEach(g => { let _ = this.attributeService.findAttribute("clingraph_id", g.attributes); if (null != _) { let y = _.value; if ("svg_edge" == g.type) { const b = y.match(a); if (b) { y = b[1].replaceAll('"', "") + "--" + b[2].replaceAll('"', ""); let D = b[1].replaceAll('"', "") + "->" + b[2].replaceAll('"', ""); u.push({ key: D, value: g }) } else console.error("Invalid edge format expected a tuple (X,Y) but got ", y) } u.push({ key: y, value: g }) } }); let h = this.generateSvgNodeUiNodeAssociationList(c, u); this.addEventListeners(h), this.cd.detectChanges() } generateSvgNodeUiNodeAssociationList(n, r) { let s = []; return n.forEach(o => { let a = null; r.forEach(l => { if (o.id == l.key) a = l.value; else for (const c of Array.from(o.children)) "title" == c.tagName && c.innerHTML == l.key && (a = l.value) }), null != a ? (this.elementLookupService.addElementTagHTML(a.id, o, a), s.push({ svg: o, ui: a })) : console.log("Warning: Could not find for the following svgElement a corresponding clingraph node or edge!") }), s } addEventListeners(n) { n.forEach(r => { this.callbackService.setCallbacks(r.svg, r.ui.when) }) } defaultImageHandler(n, r) { this.imageType = "normal", this.cd.detectChanges(); let s = this.theImage.nativeElement; this.attributeService.addAttributes(s, n.attributes), this.attributeService.textAttributes(s, n.attributes), this.attributeService.setAttributesDirectly(s, n.attributes), this.callbackService.setCallbacks(s, n.when); let o = this.attributeService.findAttribute("image_path", n.attributes); null != r ? this.imageSource = "data:image/png;base64," + r.value : null != o && (this.imageSource = o.value) } } return (e = t).\u0275fac = function (n) { return new (n || e)(v(gt), v(Fi), v(Tn), v(Xt)) }, e.\u0275cmp = et({ type: e, selectors: [["app-canvas"]], viewQuery: function (n, r) { if (1 & n && (at(vU, 5), at(yU, 5)), 2 & n) { let s; se(s = oe()) && (r.theImage = s.first), se(s = oe()) && (r.svgContainer = s.first) } }, inputs: { element: "element", parentLayout: "parentLayout" }, decls: 2, vars: 2, consts: [[4, "ngIf"], [3, "src"], ["theImage", ""], ["svgContainer", ""]], template: function (n, r) { 1 & n && (B(0, bU, 3, 1, "div", 0), B(1, DU, 2, 0, "div", 0)), 2 & n && (x("ngIf", "normal" == r.imageType), R(1), x("ngIf", "svg" == r.imageType)) }, dependencies: [Ln] }), t })(), CU = (() => { var e; class t { constructor() { } toUserInputASP(n, r, s, o, a) { return `user_input(${n},${r},${s},${o},${a})` } } return (e = t).\u0275fac = function (n) { return new (n || e) }, e.\u0275prov = G({ token: e, factory: e.\u0275fac, providedIn: "root" }), t })(); const EU = ["svgContainer"]; function SU(e, t) { if (1 & e && Be(0, "textarea", 13), 2 & e) { const i = z().$implicit, n = z(); Pn("id", i.name + "_" + n.currID), x("formControlName", i.name) } } function TU(e, t) { if (1 & e) { const i = Dn(); j(0, "input", 14), ce("click", function (r) { return on(i), an(z(2).checkClick(r)) }), U() } if (2 & e) { const i = z().$implicit, n = z(); Pn("id", i.name + "_checkbox_" + n.currID), x("formControlName", i.name) } } function MU(e, t) { if (1 & e && Be(0, "input", 15), 2 & e) { const i = z().$implicit, n = z(); Pn("id", i.name + "_" + n.currID), x("type", i.type)("formControlName", i.name) } } function IU(e, t) { if (1 & e && (j(0, "option", 17), qe(1), U()), 2 & e) { const i = t.$implicit; Pn("value", i), R(1), jt(i) } } function NU(e, t) { if (1 & e && (j(0, "select", 13), B(1, IU, 2, 2, "option", 16), U()), 2 & e) { const i = z().$implicit, n = z(); Pn("id", i.name + "_" + n.currID), x("formControlName", i.name), R(1), x("ngForOf", n.retrieveSelectOptions(i)) } } function AU(e, t) { if (1 & e && (j(0, "div")(1, "label"), qe(2), U(), Be(3, "br"), B(4, SU, 1, 2, "textarea", 10), B(5, TU, 1, 2, "input", 11), B(6, MU, 1, 3, "input", 12), B(7, NU, 2, 3, "select", 10), U()), 2 & e) { const i = t.$implicit; R(2), jt(i.name), R(2), x("ngIf", "textarea" == i.type), R(1), x("ngIf", "checkbox" == i.type), R(1), x("ngIf", "textarea" != i.type && "checkbox" != i.type && "select" != i.type), R(1), x("ngIf", "select" == i.type) } } function OU(e, t) { if (1 & e && (j(0, "h2", 18), qe(1), U()), 2 & e) { const i = z(); R(1), jt(i.errStr) } } function xU(e, t) { 1 & e && (j(0, "h2"), qe(1, "No graph was created from your request."), U()) } let RU = (() => { var e; class t { constructor(n, r, s, o, a) { this.attributeService = n, this.frontendService = r, this.fb = s, this.cd = o, this.aspService = a, this.element = null, this.optionsForm = new Hr({}), this.svgString = "", this.type = "", this.nodeOptionsList = [], this.currID = "", this.optionsList = [], this.errStr = "" } ngAfterViewInit() { if (null != this.element) { let n = this.attributeService.findAttribute("clingraph_interactive", this.element.attributes); if (null != n) { let r = n; this.svgString = r.data, this.svgContainer.nativeElement.innerHTML = this.svgString, this.nodeOptionsList = r.option_data, console.log("NodeOptions after init:", this.nodeOptionsList), console.log("form after init: ", this.optionsForm), this.cd.detectChanges() } } } retrieveSelectOptions(n) { return "options" in n ? n.options : [] } handleNodeClick(n) { let r = n.target, s = r.parentNode; if (null !== s && "g" == s.nodeName) { let o = s.getElementsByTagName("title")[0]; if (null !== o) { const a = o.textContent; null !== a && "" !== a && (s.id.startsWith("node") ? (this.type = "node", this.updateOptions(a, "node")) : r.id.startsWith("edge") && (this.type = "edge", this.updateOptions(a, "edge"))) } } } checkClick(n) { console.log("clicked box"); let r = n.target; console.log(r.getAttribute("value")), console.log(r.getAttribute("checked")), console.log("form: ", this.optionsForm) } updateOptions(n, r) { this.optionsList.forEach(o => { o.state = this.optionsForm.value[o.name] }), this.currID = n; let s = this.nodeOptionsList.filter(o => o.id == n && o.compType == r); if (1 != s.length) console.log(`Something went wrong: There is more than one or no node/edge with id ${n} in the options list!`), this.errStr = `Something went wrong: There is more than one or no node/edge with id ${n} in the options list!`; else { this.optionsList = s.map(a => a.options).flat(); let o = new Hr({}); this.optionsList.forEach(a => { o.addControl(a.name, new jr("checkbox" == a.type ? "true" == a.state || 1 == a.state : a.state)) }), this.optionsForm = o, console.log("form after update: ", this.optionsForm), console.log(this.nodeOptionsList) } } submitForm() { this.errStr = ""; let n = [], r = this.optionsForm.value; console.log("Form: ", r), this.optionsList.forEach(a => { a.state = r[a.name] }), this.nodeOptionsList.forEach(a => { a.options.forEach(l => { n.push(this.aspService.toUserInputASP(a.compType, a.id, l.type, l.name, l.state)) }) }); let o = { function: `graphUpdate(${n.join(",")})` }; console.log(o), this.frontendService.uncheckedPost(o) } } return (e = t).\u0275fac = function (n) { return new (n || e)(v(Tn), v(Bn), v(ZL), v(gt), v(CU)) }, e.\u0275cmp = et({ type: e, selectors: [["app-main-page"]], viewQuery: function (n, r) { if (1 & n && at(EU, 5), 2 & n) { let s; se(s = oe()) && (r.svgContainer = s.first) } }, inputs: { element: "element" }, decls: 13, vars: 4, consts: [[1, "row"], [1, "col", "left", 2, "flex-grow", "1"], [3, "formGroup", "ngSubmit"], [4, "ngFor", "ngForOf"], ["type", "submit", "value", "Submit"], [1, "col", "right", 2, "overflow", "scroll", "flex-grow", "10"], ["style", "color: red;", 4, "ngIf"], [3, "click"], ["svgContainer", ""], [4, "ngIf"], [3, "id", "formControlName", 4, "ngIf"], ["type", "checkbox", 3, "id", "formControlName", "click", 4, "ngIf"], [3, "id", "type", "formControlName", 4, "ngIf"], [3, "id", "formControlName"], ["type", "checkbox", 3, "id", "formControlName", "click"], [3, "id", "type", "formControlName"], [3, "value", 4, "ngFor", "ngForOf"], [3, "value"], [2, "color", "red"]], template: function (n, r) { 1 & n && (j(0, "div", 0)(1, "div", 1)(2, "label"), qe(3, "OPTIONS"), U(), Be(4, "br"), j(5, "form", 2), ce("ngSubmit", function () { return r.submitForm() }), B(6, AU, 8, 5, "div", 3), Be(7, "input", 4), U()(), j(8, "div", 5), B(9, OU, 2, 1, "h2", 6), j(10, "div", 7, 8), ce("click", function (o) { return r.handleNodeClick(o) }), U(), B(12, xU, 2, 0, "h2", 9), U()()), 2 & n && (R(5), x("formGroup", r.optionsForm), R(1), x("ngForOf", r.optionsList), R(3), x("ngIf", r.errStr.length > 0), R(3), x("ngIf", r.svgString.length <= 0)) }, dependencies: [kn, Ln, dw, yw, Dw, Qc, pp, cu, JD, QD, lu, Ap], styles: ['*[_ngcontent-%COMP%]{box-sizing:border-box}.col[_ngcontent-%COMP%]{float:left;padding:10px;height:300px}.left[_ngcontent-%COMP%]{width:25%}.right[_ngcontent-%COMP%]{width:75%}.row[_ngcontent-%COMP%]:after{content:"";display:table;clear:both}@media screen and (max-width: 600px){.col[_ngcontent-%COMP%]{width:100%}}'] }), t })(); const PU = ["theTextfield"]; let FU = (() => { var e; class t { constructor(n, r, s, o) { this.cd = n, this.callbackService = r, this.attributeService = s, this.elementLookupService = o, this.element = null, this.parentLayout = "", this.placeholder = "", this.disabledAttribute = !1, this.inputType = "text" } ngAfterViewInit() { null != this.element && (this.elementLookupService.addElementObject(this.element.id, this, this.element), this.setAttributes(this.element.attributes), this.callbackService.setCallbacks(this.theTextfield.nativeElement, this.element.when), this.cd.detectChanges()) } setAttributes(n) { this.placeholder = this.attributeService.findGetAttributeValue("placeholder", n, ""), this.inputType = this.attributeService.findGetAttributeValue("input_type", n, "text"); let r = this.theTextfield.nativeElement; this.attributeService.setAttributesDirectly(r, n), this.attributeService.addAttributes(r, n), this.attributeService.textAttributes(r, n), this.attributeService.addGeneralAttributes(r, n), this.attributeService.addClasses(r, n, [], []), null != this.element && this.attributeService.setAbsoulteRelativePositions(this.parentLayout, r, this.element); let s = this.attributeService.findGetAttributeValue("disabled", n, "false"); "false" == s ? this.disabledAttribute = !1 : "true" == s ? this.disabledAttribute = !0 : (console.log("NOT SUPPORTED VALUE FOR DISABLED (assuming not disabled): "), console.log(s), this.disabledAttribute = !1), this.cd.detectChanges() } } return (e = t).\u0275fac = function (n) { return new (n || e)(v(gt), v(Fi), v(Tn), v(Xt)) }, e.\u0275cmp = et({ type: e, selectors: [["app-textfield"]], viewQuery: function (n, r) { if (1 & n && at(PU, 5), 2 & n) { let s; se(s = oe()) && (r.theTextfield = s.first) } }, inputs: { element: "element", parentLayout: "parentLayout" }, decls: 3, vars: 3, consts: [[1, "input-group"], ["aria-describedby", "basic-addon1", 1, "form-control", 3, "placeholder", "type"], ["theTextfield", ""]], template: function (n, r) { 1 & n && (j(0, "div", 0), Be(1, "input", 1, 2), U()), 2 & n && (R(1), Pn("type", r.inputType), x("placeholder", r.placeholder), Te("disabled", !!r.disabledAttribute || null)) } }), t })(); const kU = ["child"], LU = ["content"]; function BU(e, t) { if (1 & e) { const i = Dn(); j(0, "div", 1)(1, "h4", 2), qe(2), U(), j(3, "button", 3), ce("click", function () { return an(on(i).$implicit.dismiss("Cross click")) }), U()(), j(4, "div", 4), Be(5, "app-container", 5), U() } if (2 & e) { const i = z(); R(2), jt(i.modalTitle), R(3), x("element", i.element)("parentLayout", i.parentLayout) } } let cE = (() => { var e; class t { constructor(n, r, s, o, a, l) { this.childBearerService = n, this.cd = r, this.attributeService = s, this.elementLookupService = o, this.modalService = a, this.modalRefService = l, this.element = null, this.parentLayout = "", this.container_id = "", this.container = null, this.modalTitle = "", this.modalRef = null, this.closeResult = "" } ngAfterViewInit() { null != this.element && (this.elementLookupService.addElementObject(this.element.id, this, this.element), this.setAttributes(this.element.attributes), this.cd.detectChanges()) } setAttributes(n) { let r = this.attributeService.findAttribute("visible", n), s = this.attributeService.findAttribute("title", n), o = this.attributeService.findAttribute("size", n); if (null != s && (this.modalTitle = s.value), null != r && null != this.element) { if ("shown" != r.value && "visible" != r.value || null != this.modalRef) null != this.modalRef && ("hidden" == r.value || "collapse" == r.value) && this.modalRef.close(); else { null != o && console.log(o.value); let a = null; a = null != o ? { ariaLabelledBy: "modal-basic-title", size: o.value } : { ariaLabelledBy: "modal-basic-title" }, this.modalRef = this.modalService.open(this.content, a), this.modalRefService.registerModal(this.element.id, this.modalRef), this.modalRef.result.then(l => { if (this.closeResult = `Closed with: ${l}`, null != this.element) for (let c = 0; c < this.element.attributes.length; c++) { let u = this.element.attributes[c]; ("shown" == u.key || "visible" == u.key) && (u.value = "hidden") } this.modalRef = null }, l => { if (this.closeResult = `Dismissed ${this.getDismissReason(l)}`, null != this.element) for (let c = 0; c < this.element.attributes.length; c++) { let u = this.element.attributes[c]; ("shown" == u.key || "visible" == u.key) && (u.value = "hidden") } null != this.element && this.modalRefService.removeModalByKey(this.element.id), this.modalRef = null }) } this.cd.detectChanges() } } getDismissReason(n) { return n === Wa.ESC ? "by pressing ESC" : n === Wa.BACKDROP_CLICK ? "by clicking on a backdrop" : `with: ${n}` } } return (e = t).\u0275fac = function (n) { return new (n || e)(v(Su), v(gt), v(Tn), v(Xt), v(HC), v(lD)) }, e.\u0275cmp = et({ type: e, selectors: [["app-modal"]], viewQuery: function (n, r) { if (1 & n && (at(kU, 5, Cn), at(LU, 5, nt)), 2 & n) { let s; se(s = oe()) && (r.child = s.first), se(s = oe()) && (r.content = s.first) } }, inputs: { element: "element", parentLayout: "parentLayout" }, decls: 2, vars: 0, consts: [["content", ""], [1, "modal-header"], ["id", "modal-basic-title", 1, "modal-title"], ["type", "button", "aria-label", "Close", 1, "btn-close", 3, "click"], [1, "modal-body"], [3, "element", "parentLayout"]], template: function (n, r) { 1 & n && B(0, BU, 6, 3, "ng-template", null, 0, En) } }), t })(), VU = (() => { var e; class t { constructor() { } componentCreation(n, r) { let s = [{ key: "container", value: cD }, { key: "dropdown_menu", value: cU }, { key: "label", value: pU }, { key: "button", value: _U }, { key: "canvas", value: wU }, { key: "clingraph_interactive", value: RU }, { key: "textfield", value: FU }, { key: "modal", value: cE }], o = null, a = s.findIndex(l => l.key == r); return a >= 0 && (o = n.createComponent(s[a].value)), null == o && "menu_bar" != r && "context_menu" != r && "message" != r && console.log("Could not associate component key with an component: " + r), o } } return (e = t).\u0275fac = function (n) { return new (n || e) }, e.\u0275prov = G({ token: e, factory: e.\u0275fac, providedIn: "root" }), t })(), Su = (() => { var e; class t { constructor(n, r, s) { this.componentService = n, this.elementLookupService = r, this.attributeService = s } bearChild(n, r, s) { let o = this.componentService.componentCreation(n, r.type); if (null != o) { o.setInput("element", r), o.setInput("parentLayout", s); let a = o.location.nativeElement; a.id = r.id, this.elementLookupService.addElementTagHTML(r.id, a, r), this.setAllTagAttributes(a, r, s) } return o } setAllTagAttributes(n, r, s) { "button" != r.type && this.attributeService.setAbsoulteRelativePositions(s, n, r), this.setChildTagAttributes(n, r) } setChildTagAttributes(n, r) { this.attributeService.setAttributesDirectly(n, r.attributes), this.attributeService.addGeneralAttributes(n, r.attributes), this.attributeService.addAttributes(n, r.attributes), "container" == r.type && (this.attributeService.setChildLayout(n, r.attributes), this.attributeService.setVisibility(n, r.attributes), this.attributeService.addClasses(n, r.attributes, [], ["p-2"])) } } return (e = t).\u0275fac = function (n) { return new (n || e)(L(VU), L(Xt), L(Tn)) }, e.\u0275prov = G({ token: e, factory: e.\u0275fac, providedIn: "root" }), t })(); function HU(e, t) { if (1 & e) { const i = Dn(); j(0, "ngb-alert", 1), ce("closed", function () { return on(i), an(z().messageClosed()) }), j(1, "strong"), qe(2), U(), qe(3), U() } if (2 & e) { const i = z(); x("type", i.attrType)("dismissible", !0), R(2), jt(i.attrTitle), R(1), Ri(" ", i.attrMessage, "\n") } } let UU = (() => { var e; class t { constructor(n, r, s, o) { this.cd = n, this.callbackService = r, this.attributeService = s, this.elementLookupService = o, this.element = null, this.attrType = "", this.attrMessage = "", this.attrTitle = "", this.visible = "shown" } ngAfterViewInit() { null != this.element && (this.elementLookupService.addElementObject(this.element.id, this, this.element), this.setAttributes(this.element.attributes), this.cd.detectChanges()) } setAttributes(n) { let r = this.attributeService.findGetAttributeValue("type", n, "warning"), s = this.attributeService.findGetAttributeValue("title", n, ""), o = this.attributeService.findGetAttributeValue("message", n, ""); this.visible = this.attributeService.findGetAttributeValue("visible", n, "shown"), "error" == r && (r = "danger"), this.attrType = r, this.attrTitle = s, this.attrMessage = o, this.cd.detectChanges() } messageClosed() { this.visible = "hidden", this.cd.detectChanges() } } return (e = t).\u0275fac = function (n) { return new (n || e)(v(gt), v(Fi), v(Tn), v(Xt)) }, e.\u0275cmp = et({ type: e, selectors: [["app-message"]], inputs: { element: "element" }, decls: 1, vars: 1, consts: [[3, "type", "dismissible", "closed", 4, "ngIf"], [3, "type", "dismissible", "closed"]], template: function (n, r) { 1 & n && B(0, HU, 4, 4, "ngb-alert", 0), 2 & n && x("ngIf", "shown" == r.visible) }, dependencies: [Ln, j3] }), t })(); function jU(e, t) { if (1 & e && (j(0, "li", 2)(1, "a"), Be(2, "i", 3), qe(3), U()()), 2 & e) { const i = t.$implicit; x("id", i.id), R(3), jt(i.text) } } let $U = (() => { var e; class t { constructor(n, r, s) { this.cd = n, this.attributeService = r, this.callbackService = s, this.element = null, this.menuId = "", this.buttonList = [] } ngAfterViewInit() { null != this.element && (this.menuId = "menu-" + this.element.id, this.element.children.forEach(n => { let r = n.id, s = this.attributeService.findGetAttributeValue("label", n.attributes, ""); this.buttonList.push({ id: r, text: s, attributes: n.attributes }) }), this.cd.detectChanges(), this.element.children.forEach(n => { let r = document.getElementById(n.id); null != r && this.callbackService.setCallbacks(r, n.when) }), this.cd.detectChanges(), this.buttonList.forEach(n => { let r = document.getElementById(n.id); if (null != r) { this.attributeService.addClasses(r, n.attributes, ["list-group-item", "list-group-item-action"], []); let s = r.children.item(0); if (null != s) { let o = s.children.item(0); null != o && this.attributeService.addClasses(o, n.attributes, ["fa"], [], "icon") } } })) } } return (e = t).\u0275fac = function (n) { return new (n || e)(v(gt), v(Tn), v(Fi)) }, e.\u0275cmp = et({ type: e, selectors: [["app-context-menu"]], inputs: { element: "element" }, decls: 2, vars: 1, consts: [["id", "menuId", 1, "list-group"], [3, "id", 4, "ngFor", "ngForOf"], [3, "id"], ["aria-hidden", "true", 1, "fa"]], template: function (n, r) { 1 & n && (j(0, "ul", 0), B(1, jU, 4, 2, "li", 1), U()), 2 & n && (R(1), x("ngForOf", r.buttonList)) }, dependencies: [kn], styles: [".menu[_ngcontent-%COMP%]{display:flex;flex-direction:column;background-color:#fff;border-radius:10px;box-shadow:0 10px 20px #4040400d;padding:10px 0;list-style-type:none}.menu[_ngcontent-%COMP%] > li[_ngcontent-%COMP%] > a[_ngcontent-%COMP%]{font:inherit;border:0;padding:10px 30px 10px 15px;width:100%;display:flex;align-items:center;position:relative;text-decoration:unset;color:#000;font-weight:500}.menu[_ngcontent-%COMP%] > li[_ngcontent-%COMP%] > a[_ngcontent-%COMP%]:hover{background:#f1f3f7;color:#4b00ff}.menu[_ngcontent-%COMP%] > li[_ngcontent-%COMP%] > a[_ngcontent-%COMP%] > i[_ngcontent-%COMP%]{padding-right:10px}.menu[_ngcontent-%COMP%] > li.trash[_ngcontent-%COMP%] > a[_ngcontent-%COMP%]:hover{color:red}"] }), t })(); const GU = ["parent"], zU = ["child"]; function WU(e, t) { } function qU(e, t) { 1 & e && (j(0, "div", 5, 6), B(2, WU, 0, 0, "ng-template", null, 7, En), U()), 2 & e && Pn("id", z().window_id) } function YU(e, t) { 1 & e && Be(0, "app-message", 10), 2 & e && x("element", t.$implicit) } function ZU(e, t) { if (1 & e && (j(0, "div", 8), B(1, YU, 1, 1, "app-message", 9), U()), 2 & e) { const i = z(); R(1), x("ngForOf", i.messageList) } } function JU(e, t) { if (1 & e && Be(0, "app-context-menu", 11), 2 & e) { const i = t.$implicit; x("id", i.id)("element", i) } } let QU = (() => { var e; class t { constructor(n, r, s, o, a, l, c) { this.childBearerService = n, this.attributeService = r, this.cd = s, this.frontendService = o, this.elementLookupService = a, this.contextMenuService = l, this.callbackService = c, this.element = null, this.children = [], this.window_id = "", this.window = null, this.menuBar = null, this.messageList = [], this.contextMenuList = [] } ngAfterViewInit() { this.frontendService.messageLists.subscribe({ next: n => { this.messageList = n, this.cd.detectChanges() } }), this.frontendService.frontendJson.subscribe({ next: n => { this.children.forEach(l => { this.child.clear() }), this.children = [], this.cleanValues(n), this.frontendService.detectCreateMenuBar(n); let r = [], s = []; this.frontendService.getAllMessagesContextMenus(n, r, s), this.frontendService.messageLists.next(r), this.frontendService.contextMenus.subscribe(l => { l.forEach(c => { this.contextMenuService.registerContextMenu(c.id, c) }), this.contextMenuList = l }), this.frontendService.contextMenus.next(s); let o = n.children[0]; this.window_id = o.id, this.element = o, this.window = o, this.cd.detectChanges(); let a = this.attributeService.findGetAttributeValue("child_layout", o.attributes, "flex"); this.elementLookupService.addElementAll(this.window_id, this, this.parent.nativeElement, o), o.children.forEach(l => { let c = this.childBearerService.bearChild(this.child, l, a); null != c && this.children.push(c) }), this.setAttributes(o.attributes), this.doCallbacks(o.when), this.cd.detectChanges() }, error: n => console.log(n) }), this.frontendService.initialGet() } setAttributes(n) { let r = this.parent.nativeElement; this.attributeService.setChildLayout(r, n), this.attributeService.addAttributes(r, n), this.attributeService.addClasses(r, n, [], []), this.cd.detectChanges() } doCallbacks(n) { this.callbackService.setCallbacks(this.parent.nativeElement, n) } cleanValues(n) { for (let r = 0; r < n.attributes.length; r++) { let s = n.attributes[r].value; s = this.stringSanitizer(s), n.attributes[r].value = s; let o = n.attributes[r].key; o = this.stringSanitizer(o), n.attributes[r].key = o, "image" != o && (s = s.replace("\\n", "
")) } for (let r = 0; r < n.when.length; r++) { void 0 !== n.when[r].event && (n.when[r].actionType = n.when[r].event), void 0 !== n.when[r].action && (n.when[r].interactionType = n.when[r].action); let s = n.when[r].operation; s = this.stringSanitizer(s), n.when[r].operation = s; let o = n.when[r].actionType; o = this.stringSanitizer(o), n.when[r].actionType = o; let a = n.when[r].interactionType; a = this.stringSanitizer(a), n.when[r].interactionType = a } n.children.forEach(r => { this.cleanValues(r) }) } stringSanitizer(n) { return null == n || (n.length > 0 && '"' == n[0] && (n = n.slice(1)), n.length > 0 && '"' == n[n.length - 1] && (n = n.slice(0, -1))), n } } return (e = t).\u0275fac = function (n) { return new (n || e)(v(Su), v(Tn), v(gt), v(Bn), v(Xt), v(Ma), v(Fi)) }, e.\u0275cmp = et({ type: e, selectors: [["app-new-main"]], viewQuery: function (n, r) { if (1 & n && (at(GU, 5), at(zU, 5, Cn)), 2 & n) { let s; se(s = oe()) && (r.parent = s.first), se(s = oe()) && (r.child = s.first) } }, decls: 5, vars: 3, consts: [["style", "margin-top: 5px; margin-bottom: 10px;margin-right: 10px;margin-left: 15px;", 3, "id", 4, "ngIf"], ["id", "loader", 1, "myspinner", "clearfix", "p-3"], ["role", "status", 1, "spinner-border", "text-black", "float-end"], ["style", "position: fixed; bottom:0;", 4, "ngIf"], ["style", "display: none; position: absolute;", 3, "id", "element", 4, "ngFor", "ngForOf"], [2, "margin-top", "5px", "margin-bottom", "10px", "margin-right", "10px", "margin-left", "15px", 3, "id"], ["parent", ""], ["child", ""], [2, "position", "fixed", "bottom", "0"], [3, "element", 4, "ngFor", "ngForOf"], [3, "element"], [2, "display", "none", "position", "absolute", 3, "id", "element"]], template: function (n, r) { 1 & n && (B(0, qU, 4, 1, "div", 0), j(1, "div", 1), Be(2, "div", 2), U(), B(3, ZU, 2, 1, "div", 3), B(4, JU, 1, 2, "app-context-menu", 4)), 2 & n && (x("ngIf", null != r.window), R(3), x("ngIf", null != r.window), R(1), x("ngForOf", r.contextMenuList)) }, dependencies: [kn, Ln, UU, $U] }), t })(); const KU = ["titleIcon"]; function XU(e, t) { if (1 & e && (j(0, "button", 4), Be(1, "i", null, 5), qe(3), U()), 2 & e) { const i = t.$implicit; Pn("id", i.id), R(3), Ri(" ", i.title, "") } } let ej = (() => { var e; class t { constructor(n, r, s, o, a, l) { this.cd = n, this.displayFrontend = r, this.callbackService = s, this.attributeService = o, this.elementLookupService = a, this.callBackHelperService = l, this.element = null, this.isCollapsed = !0, this.title = "", this.menuBarButtons = [] } ngAfterViewInit() { null != this.element && (this.elementLookupService.addElementObject(this.element.id, this, this.element), this.element.children.forEach(n => { let r = this.attributeService.findGetAttributeValue("label", n.attributes, ""), s = new tj(n.id, r, n); this.elementLookupService.addElementObject(n.id, s, n), this.menuBarButtons.push(s) }), this.cd.detectChanges(), this.menuBarButtons.forEach(n => { let r = document.getElementById(n.id); if (null != r) { n.setHtmlElement(r), n.setAttributes(n.element.attributes), this.attributeService.addClasses(r, n.element.attributes, ["btn-sm", "mx-1"], ["btn-outline-dark", "border-0"]), this.callBackHelperService.setCallbacks(r, n.element.when); let s = r.children.item(0); null != s && this.attributeService.addClasses(s, n.element.attributes, ["fa"], [], "icon") } }), this.setAttributes(this.element.attributes), this.cd.detectChanges()) } setAttributes(n) { let r = this.attributeService.findAttribute("title", n); null != r && (this.title = r.value), this.attributeService.addClasses(this.titleIcon.nativeElement, n, ["fa"], [], "icon"), this.cd.detectChanges() } operationExecutor(n) { null != n && this.displayFrontend.operationPost(n) } } return (e = t).\u0275fac = function (n) { return new (n || e)(v(gt), v(Bn), v(Fi), v(Tn), v(Xt), v(Fi)) }, e.\u0275cmp = et({ type: e, selectors: [["app-menu-bar"]], viewQuery: function (n, r) { if (1 & n && at(KU, 5), 2 & n) { let s; se(s = oe()) && (r.titleIcon = s.first) } }, inputs: { element: "element" }, decls: 7, vars: 2, consts: [[1, "navbar", "navbar-expand", "bg-light", "justify-content-between"], [1, "navbar-brand", "mx-3", "text-dark"], ["titleIcon", ""], ["type", "button", "class", "btn", 3, "id", 4, "ngFor", "ngForOf"], ["type", "button", 1, "btn", 3, "id"], ["icon", ""]], template: function (n, r) { 1 & n && (j(0, "nav", 0)(1, "a", 1), Be(2, "i", null, 2), qe(4), U(), j(5, "div"), B(6, XU, 4, 2, "button", 3), U()()), 2 & n && (R(4), Ri(" ", r.title, " "), R(2), x("ngForOf", r.menuBarButtons)) }, dependencies: [kn] }), t })(); class tj { constructor(t, i, n) { this.id = "", this.title = "", this.htmlElement = null, this.id = t, this.title = i, this.element = n } setHtmlElement(t) { this.htmlElement = t } setAttributes(t) { let i = t.find(n => "label" == n.key); this.title = null != i ? i.value : "" } } const nj = ["contentWrapper"]; function ij(e, t) { 1 & e && Be(0, "app-menu-bar", 3), 2 & e && x("element", z().menuBar) } let rj = (() => { var e; class t { constructor(n, r, s) { this.frontendService = n, this.cd = r, this.elementLookupService = s, this.title = "Clinguin", this.menuBar = null, this.messageList = [] } ngAfterViewInit() { this.frontendService.menuBar.subscribe({ next: n => { this.menuBar = null, this.cd.detectChanges(), this.menuBar = n, this.cd.detectChanges() } }), this.contentWrapper.nativeElement.addEventListener("click", function () { $t.injector.get(Xt).elementLookup.forEach(r => { "menu_bar_section" == r.element.type && null != r.object && "collapsed" in r.object && 0 == r.object.collapsed && (r.object.collapsed = !0) }) }) } } return (e = t).\u0275fac = function (n) { return new (n || e)(v(Bn), v(gt), v(Xt)) }, e.\u0275cmp = et({ type: e, selectors: [["app-root"]], viewQuery: function (n, r) { if (1 & n && at(nj, 5), 2 & n) { let s; se(s = oe()) && (r.contentWrapper = s.first) } }, decls: 4, vars: 1, consts: [[3, "element", 4, "ngIf"], [1, "content-wrapper"], ["contentWrapper", ""], [3, "element"]], template: function (n, r) { 1 & n && (B(0, ij, 1, 1, "app-menu-bar", 0), j(1, "div", 1, 2), Be(3, "app-new-main"), U()), 2 & n && x("ngIf", null != r.menuBar) }, dependencies: [Ln, QU, ej], styles: ["div.content-wrapper[_ngcontent-%COMP%]{padding-top:1%}"] }), t })(); function sj(e) { return () => e.load() } let oj = (() => { var e; class t { constructor(n) { this.injector = n, $t.injector = n } } return (e = t).\u0275fac = function (n) { return new (n || e)(L(Jt)) }, e.\u0275mod = Pe({ type: e, bootstrap: [rj] }), e.\u0275inj = Ae({ providers: [{ provide: D1, useFactory: sj, deps: [aD], multi: !0 }], imports: [Hk, QL, JL, yb, v2, oU, Yp] }), t })(); (function zg(e, t, i) { const n = e.\u0275cmp; n.directiveDefs = al(t, !1), n.pipeDefs = al(i, !0) })(cE, [cD], []), Bk().bootstrapModule(oj).catch(e => console.error(e)) }, 919: (_i, qt) => { "use strict"; qt.byteLength = function He(Z) { var le = ye(Z), Qe = le[1]; return 3 * (le[0] + Qe) / 4 - Qe }, qt.toByteArray = function ut(Z) { var le, Ct, be = ye(Z), Qe = be[0], Ke = be[1], xe = new ct(function M(Z, le, be) { return 3 * (le + be) / 4 - be }(0, Qe, Ke)), It = 0, en = Ke > 0 ? Qe - 4 : Qe; for (Ct = 0; Ct < en; Ct += 4)le = $[Z.charCodeAt(Ct)] << 18 | $[Z.charCodeAt(Ct + 1)] << 12 | $[Z.charCodeAt(Ct + 2)] << 6 | $[Z.charCodeAt(Ct + 3)], xe[It++] = le >> 16 & 255, xe[It++] = le >> 8 & 255, xe[It++] = 255 & le; return 2 === Ke && (le = $[Z.charCodeAt(Ct)] << 2 | $[Z.charCodeAt(Ct + 1)] >> 4, xe[It++] = 255 & le), 1 === Ke && (le = $[Z.charCodeAt(Ct)] << 10 | $[Z.charCodeAt(Ct + 1)] << 4 | $[Z.charCodeAt(Ct + 2)] >> 2, xe[It++] = le >> 8 & 255, xe[It++] = 255 & le), xe }, qt.fromByteArray = function wt(Z) { for (var le, be = Z.length, Qe = be % 3, Ke = [], It = 0, en = be - Qe; It < en; It += 16383)Ke.push(dt(Z, It, It + 16383 > en ? en : It + 16383)); return 1 === Qe ? Ke.push(Ve[(le = Z[be - 1]) >> 2] + Ve[le << 4 & 63] + "==") : 2 === Qe && Ke.push(Ve[(le = (Z[be - 2] << 8) + Z[be - 1]) >> 10] + Ve[le >> 4 & 63] + Ve[le << 2 & 63] + "="), Ke.join("") }; for (var Ve = [], $ = [], ct = typeof Uint8Array < "u" ? Uint8Array : Array, Je = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", ke = 0; ke < 64; ++ke)Ve[ke] = Je[ke], $[Je.charCodeAt(ke)] = ke; function ye(Z) { var le = Z.length; if (le % 4 > 0) throw new Error("Invalid string. Length must be a multiple of 4"); var be = Z.indexOf("="); return -1 === be && (be = le), [be, be === le ? 0 : 4 - be % 4] } function Ue(Z) { return Ve[Z >> 18 & 63] + Ve[Z >> 12 & 63] + Ve[Z >> 6 & 63] + Ve[63 & Z] } function dt(Z, le, be) { for (var Ke = [], xe = le; xe < be; xe += 3)Ke.push(Ue((Z[xe] << 16 & 16711680) + (Z[xe + 1] << 8 & 65280) + (255 & Z[xe + 2]))); return Ke.join("") } $["-".charCodeAt(0)] = 62, $["_".charCodeAt(0)] = 63 }, 7: (_i, qt, Ve) => { "use strict"; var ct = Ve(919), Je = Ve(601), ke = "function" == typeof Symbol && "function" == typeof Symbol.for ? Symbol.for("nodejs.util.inspect.custom") : null; qt.lW = M, qt.h2 = 50; var de = 2147483647; function He(p) { if (p > de) throw new RangeError('The value "' + p + '" is invalid for option "size"'); var d = new Uint8Array(p); return Object.setPrototypeOf(d, M.prototype), d } function M(p, d, f) { if ("number" == typeof p) { if ("string" == typeof d) throw new TypeError('The "string" argument must be of type string. Received type number'); return wt(p) } return ut(p, d, f) } function ut(p, d, f) { if ("string" == typeof p) return function Z(p, d) { if (("string" != typeof d || "" === d) && (d = "utf8"), !M.isEncoding(d)) throw new TypeError("Unknown encoding: " + d); var f = 0 | en(p, d), m = He(f), w = m.write(p, d); return w !== f && (m = m.slice(0, w)), m }(p, d); if (ArrayBuffer.isView(p)) return function be(p) { if (tn(p, Uint8Array)) { var d = new Uint8Array(p); return Qe(d.buffer, d.byteOffset, d.byteLength) } return le(p) }(p); if (null == p) throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type " + typeof p); if (tn(p, ArrayBuffer) || p && tn(p.buffer, ArrayBuffer) || typeof SharedArrayBuffer < "u" && (tn(p, SharedArrayBuffer) || p && tn(p.buffer, SharedArrayBuffer))) return Qe(p, d, f); if ("number" == typeof p) throw new TypeError('The "value" argument must not be of type number. Received type number'); var m = p.valueOf && p.valueOf(); if (null != m && m !== p) return M.from(m, d, f); var w = function Ke(p) { if (M.isBuffer(p)) { var d = 0 | xe(p.length), f = He(d); return 0 === f.length || p.copy(f, 0, 0, d), f } return void 0 !== p.length ? "number" != typeof p.length || S(p.length) ? He(0) : le(p) : "Buffer" === p.type && Array.isArray(p.data) ? le(p.data) : void 0 }(p); if (w) return w; if (typeof Symbol < "u" && null != Symbol.toPrimitive && "function" == typeof p[Symbol.toPrimitive]) return M.from(p[Symbol.toPrimitive]("string"), d, f); throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type " + typeof p) } function Ue(p) { if ("number" != typeof p) throw new TypeError('"size" argument must be of type number'); if (p < 0) throw new RangeError('The value "' + p + '" is invalid for option "size"') } function wt(p) { return Ue(p), He(p < 0 ? 0 : 0 | xe(p)) } function le(p) { for (var d = p.length < 0 ? 0 : 0 | xe(p.length), f = He(d), m = 0; m < d; m += 1)f[m] = 255 & p[m]; return f } function Qe(p, d, f) { if (d < 0 || p.byteLength < d) throw new RangeError('"offset" is outside of buffer bounds'); if (p.byteLength < d + (f || 0)) throw new RangeError('"length" is outside of buffer bounds'); var m; return m = void 0 === d && void 0 === f ? new Uint8Array(p) : void 0 === f ? new Uint8Array(p, d) : new Uint8Array(p, d, f), Object.setPrototypeOf(m, M.prototype), m } function xe(p) { if (p >= de) throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x" + de.toString(16) + " bytes"); return 0 | p } function en(p, d) { if (M.isBuffer(p)) return p.length; if (ArrayBuffer.isView(p) || tn(p, ArrayBuffer)) return p.byteLength; if ("string" != typeof p) throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type ' + typeof p); var f = p.length, m = arguments.length > 2 && !0 === arguments[2]; if (!m && 0 === f) return 0; for (var w = !1; ;)switch (d) { case "ascii": case "latin1": case "binary": return f; case "utf8": case "utf-8": return Zi(p).length; case "ucs2": case "ucs-2": case "utf16le": case "utf-16le": return 2 * f; case "hex": return f >>> 1; case "base64": return Ji(p).length; default: if (w) return m ? -1 : Zi(p).length; d = ("" + d).toLowerCase(), w = !0 } } function Ct(p, d, f) { var m = !1; if ((void 0 === d || d < 0) && (d = 0), d > this.length || ((void 0 === f || f > this.length) && (f = this.length), f <= 0) || (f >>>= 0) <= (d >>>= 0)) return ""; for (p || (p = "utf8"); ;)switch (p) { case "hex": return bo(this, d, f); case "utf8": case "utf-8": return yo(this, d, f); case "ascii": return ss(this, d, f); case "latin1": case "binary": return os(this, d, f); case "base64": return yi(this, d, f); case "ucs2": case "ucs-2": case "utf16le": case "utf-16le": return as(this, d, f); default: if (m) throw new TypeError("Unknown encoding: " + p); p = (p + "").toLowerCase(), m = !0 } } function Et(p, d, f) { var m = p[d]; p[d] = p[f], p[f] = m } function mr(p, d, f, m, w) { if (0 === p.length) return -1; if ("string" == typeof f ? (m = f, f = 0) : f > 2147483647 ? f = 2147483647 : f < -2147483648 && (f = -2147483648), S(f = +f) && (f = w ? 0 : p.length - 1), f < 0 && (f = p.length + f), f >= p.length) { if (w) return -1; f = p.length - 1 } else if (f < 0) { if (!w) return -1; f = 0 } if ("string" == typeof d && (d = M.from(d, m)), M.isBuffer(d)) return 0 === d.length ? -1 : mi(p, d, f, m, w); if ("number" == typeof d) return d &= 255, "function" == typeof Uint8Array.prototype.indexOf ? w ? Uint8Array.prototype.indexOf.call(p, d, f) : Uint8Array.prototype.lastIndexOf.call(p, d, f) : mi(p, [d], f, m, w); throw new TypeError("val must be string, number or Buffer") } function mi(p, d, f, m, w) { var Ce, I = 1, N = p.length, q = d.length; if (void 0 !== m && ("ucs2" === (m = String(m).toLowerCase()) || "ucs-2" === m || "utf16le" === m || "utf-16le" === m)) { if (p.length < 2 || d.length < 2) return -1; I = 2, N /= 2, q /= 2, f /= 2 } function he(bi, st) { return 1 === I ? bi[st] : bi.readUInt16BE(st * I) } if (w) { var rt = -1; for (Ce = f; Ce < N; Ce++)if (he(p, Ce) === he(d, -1 === rt ? 0 : Ce - rt)) { if (-1 === rt && (rt = Ce), Ce - rt + 1 === q) return rt * I } else -1 !== rt && (Ce -= Ce - rt), rt = -1 } else for (f + q > N && (f = N - q), Ce = f; Ce >= 0; Ce--) { for (var Le = !0, Xe = 0; Xe < q; Xe++)if (he(p, Ce + Xe) !== he(d, Xe)) { Le = !1; break } if (Le) return Ce } return -1 } function vi(p, d, f, m) { f = Number(f) || 0; var w = p.length - f; m ? (m = Number(m)) > w && (m = w) : m = w; var I = d.length; m > I / 2 && (m = I / 2); for (var N = 0; N < m; ++N) { var q = parseInt(d.substr(2 * N, 2), 16); if (S(q)) return N; p[f + N] = q } return N } function vo(p, d, f, m) { return Qi(Zi(d, p.length - f), p, f, m) } function vr(p, d, f, m) { return Qi(function Ja(p) { for (var d = [], f = 0; f < p.length; ++f)d.push(255 & p.charCodeAt(f)); return d }(d), p, f, m) } function rs(p, d, f, m) { return Qi(Ji(d), p, f, m) } function yr(p, d, f, m) { return Qi(function Dr(p, d) { for (var f, m, I = [], N = 0; N < p.length && !((d -= 2) < 0); ++N)m = (f = p.charCodeAt(N)) >> 8, I.push(f % 256), I.push(m); return I }(d, p.length - f), p, f, m) } function yi(p, d, f) { return ct.fromByteArray(0 === d && f === p.length ? p : p.slice(d, f)) } function yo(p, d, f) { f = Math.min(p.length, f); for (var m = [], w = d; w < f;) { var he, Ce, rt, Le, I = p[w], N = null, q = I > 239 ? 4 : I > 223 ? 3 : I > 191 ? 2 : 1; if (w + q <= f) switch (q) { case 1: I < 128 && (N = I); break; case 2: 128 == (192 & (he = p[w + 1])) && (Le = (31 & I) << 6 | 63 & he) > 127 && (N = Le); break; case 3: Ce = p[w + 2], 128 == (192 & (he = p[w + 1])) && 128 == (192 & Ce) && (Le = (15 & I) << 12 | (63 & he) << 6 | 63 & Ce) > 2047 && (Le < 55296 || Le > 57343) && (N = Le); break; case 4: Ce = p[w + 2], rt = p[w + 3], 128 == (192 & (he = p[w + 1])) && 128 == (192 & Ce) && 128 == (192 & rt) && (Le = (15 & I) << 18 | (63 & he) << 12 | (63 & Ce) << 6 | 63 & rt) > 65535 && Le < 1114112 && (N = Le) }null === N ? (N = 65533, q = 1) : N > 65535 && (m.push((N -= 65536) >>> 10 & 1023 | 55296), N = 56320 | 1023 & N), m.push(N), w += q } return function ze(p) { var d = p.length; if (d <= br) return String.fromCharCode.apply(String, p); for (var f = "", m = 0; m < d;)f += String.fromCharCode.apply(String, p.slice(m, m += br)); return f }(m) } !(M.TYPED_ARRAY_SUPPORT = function ye() { try { var p = new Uint8Array(1), d = { foo: function () { return 42 } }; return Object.setPrototypeOf(d, Uint8Array.prototype), Object.setPrototypeOf(p, d), 42 === p.foo() } catch { return !1 } }()) && typeof console < "u" && "function" == typeof console.error && console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support."), Object.defineProperty(M.prototype, "parent", { enumerable: !0, get: function () { if (M.isBuffer(this)) return this.buffer } }), Object.defineProperty(M.prototype, "offset", { enumerable: !0, get: function () { if (M.isBuffer(this)) return this.byteOffset } }), M.poolSize = 8192, M.from = function (p, d, f) { return ut(p, d, f) }, Object.setPrototypeOf(M.prototype, Uint8Array.prototype), Object.setPrototypeOf(M, Uint8Array), M.alloc = function (p, d, f) { return function dt(p, d, f) { return Ue(p), p <= 0 ? He(p) : void 0 !== d ? "string" == typeof f ? He(p).fill(d, f) : He(p).fill(d) : He(p) }(p, d, f) }, M.allocUnsafe = function (p) { return wt(p) }, M.allocUnsafeSlow = function (p) { return wt(p) }, M.isBuffer = function (d) { return null != d && !0 === d._isBuffer && d !== M.prototype }, M.compare = function (d, f) { if (tn(d, Uint8Array) && (d = M.from(d, d.offset, d.byteLength)), tn(f, Uint8Array) && (f = M.from(f, f.offset, f.byteLength)), !M.isBuffer(d) || !M.isBuffer(f)) throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array'); if (d === f) return 0; for (var m = d.length, w = f.length, I = 0, N = Math.min(m, w); I < N; ++I)if (d[I] !== f[I]) { m = d[I], w = f[I]; break } return m < w ? -1 : w < m ? 1 : 0 }, M.isEncoding = function (d) { switch (String(d).toLowerCase()) { case "hex": case "utf8": case "utf-8": case "ascii": case "latin1": case "binary": case "base64": case "ucs2": case "ucs-2": case "utf16le": case "utf-16le": return !0; default: return !1 } }, M.concat = function (d, f) { if (!Array.isArray(d)) throw new TypeError('"list" argument must be an Array of Buffers'); if (0 === d.length) return M.alloc(0); var m; if (void 0 === f) for (f = 0, m = 0; m < d.length; ++m)f += d[m].length; var w = M.allocUnsafe(f), I = 0; for (m = 0; m < d.length; ++m) { var N = d[m]; if (tn(N, Uint8Array)) I + N.length > w.length ? M.from(N).copy(w, I) : Uint8Array.prototype.set.call(w, N, I); else { if (!M.isBuffer(N)) throw new TypeError('"list" argument must be an Array of Buffers'); N.copy(w, I) } I += N.length } return w }, M.byteLength = en, M.prototype._isBuffer = !0, M.prototype.swap16 = function () { var d = this.length; if (d % 2 != 0) throw new RangeError("Buffer size must be a multiple of 16-bits"); for (var f = 0; f < d; f += 2)Et(this, f, f + 1); return this }, M.prototype.swap32 = function () { var d = this.length; if (d % 4 != 0) throw new RangeError("Buffer size must be a multiple of 32-bits"); for (var f = 0; f < d; f += 4)Et(this, f, f + 3), Et(this, f + 1, f + 2); return this }, M.prototype.swap64 = function () { var d = this.length; if (d % 8 != 0) throw new RangeError("Buffer size must be a multiple of 64-bits"); for (var f = 0; f < d; f += 8)Et(this, f, f + 7), Et(this, f + 1, f + 6), Et(this, f + 2, f + 5), Et(this, f + 3, f + 4); return this }, M.prototype.toLocaleString = M.prototype.toString = function () { var d = this.length; return 0 === d ? "" : 0 === arguments.length ? yo(this, 0, d) : Ct.apply(this, arguments) }, M.prototype.equals = function (d) { if (!M.isBuffer(d)) throw new TypeError("Argument must be a Buffer"); return this === d || 0 === M.compare(this, d) }, M.prototype.inspect = function () { var d = "", f = qt.h2; return d = this.toString("hex", 0, f).replace(/(.{2})/g, "$1 ").trim(), this.length > f && (d += " ... "), "" }, ke && (M.prototype[ke] = M.prototype.inspect), M.prototype.compare = function (d, f, m, w, I) { if (tn(d, Uint8Array) && (d = M.from(d, d.offset, d.byteLength)), !M.isBuffer(d)) throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type ' + typeof d); if (void 0 === f && (f = 0), void 0 === m && (m = d ? d.length : 0), void 0 === w && (w = 0), void 0 === I && (I = this.length), f < 0 || m > d.length || w < 0 || I > this.length) throw new RangeError("out of range index"); if (w >= I && f >= m) return 0; if (w >= I) return -1; if (f >= m) return 1; if (this === d) return 0; for (var N = (I >>>= 0) - (w >>>= 0), q = (m >>>= 0) - (f >>>= 0), he = Math.min(N, q), Ce = this.slice(w, I), rt = d.slice(f, m), Le = 0; Le < he; ++Le)if (Ce[Le] !== rt[Le]) { N = Ce[Le], q = rt[Le]; break } return N < q ? -1 : q < N ? 1 : 0 }, M.prototype.includes = function (d, f, m) { return -1 !== this.indexOf(d, f, m) }, M.prototype.indexOf = function (d, f, m) { return mr(this, d, f, m, !0) }, M.prototype.lastIndexOf = function (d, f, m) { return mr(this, d, f, m, !1) }, M.prototype.write = function (d, f, m, w) { if (void 0 === f) w = "utf8", m = this.length, f = 0; else if (void 0 === m && "string" == typeof f) w = f, m = this.length, f = 0; else { if (!isFinite(f)) throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported"); f >>>= 0, isFinite(m) ? (m >>>= 0, void 0 === w && (w = "utf8")) : (w = m, m = void 0) } var I = this.length - f; if ((void 0 === m || m > I) && (m = I), d.length > 0 && (m < 0 || f < 0) || f > this.length) throw new RangeError("Attempt to write outside buffer bounds"); w || (w = "utf8"); for (var N = !1; ;)switch (w) { case "hex": return vi(this, d, f, m); case "utf8": case "utf-8": return vo(this, d, f, m); case "ascii": case "latin1": case "binary": return vr(this, d, f, m); case "base64": return rs(this, d, f, m); case "ucs2": case "ucs-2": case "utf16le": case "utf-16le": return yr(this, d, f, m); default: if (N) throw new TypeError("Unknown encoding: " + w); w = ("" + w).toLowerCase(), N = !0 } }, M.prototype.toJSON = function () { return { type: "Buffer", data: Array.prototype.slice.call(this._arr || this, 0) } }; var br = 4096; function ss(p, d, f) { var m = ""; f = Math.min(p.length, f); for (var w = d; w < f; ++w)m += String.fromCharCode(127 & p[w]); return m } function os(p, d, f) { var m = ""; f = Math.min(p.length, f); for (var w = d; w < f; ++w)m += String.fromCharCode(p[w]); return m } function bo(p, d, f) { var m = p.length; (!d || d < 0) && (d = 0), (!f || f < 0 || f > m) && (f = m); for (var w = "", I = d; I < f; ++I)w += E[p[I]]; return w } function as(p, d, f) { for (var m = p.slice(d, f), w = "", I = 0; I < m.length - 1; I += 2)w += String.fromCharCode(m[I] + 256 * m[I + 1]); return w } function ee(p, d, f) { if (p % 1 != 0 || p < 0) throw new RangeError("offset is not uint"); if (p + d > f) throw new RangeError("Trying to access beyond buffer length") } function Rt(p, d, f, m, w, I) { if (!M.isBuffer(p)) throw new TypeError('"buffer" argument must be a Buffer instance'); if (d > w || d < I) throw new RangeError('"value" argument is out of bounds'); if (f + m > p.length) throw new RangeError("Index out of range") } function ls(p, d, f, m, w, I) { if (f + m > p.length) throw new RangeError("Index out of range"); if (f < 0) throw new RangeError("Index out of range") } function mt(p, d, f, m, w) { return d = +d, f >>>= 0, w || ls(p, 0, f, 4), Je.write(p, d, f, m, 23, 4), f + 4 } function ft(p, d, f, m, w) { return d = +d, f >>>= 0, w || ls(p, 0, f, 8), Je.write(p, d, f, m, 52, 8), f + 8 } M.prototype.slice = function (d, f) { var m = this.length; (d = ~~d) < 0 ? (d += m) < 0 && (d = 0) : d > m && (d = m), (f = void 0 === f ? m : ~~f) < 0 ? (f += m) < 0 && (f = 0) : f > m && (f = m), f < d && (f = d); var w = this.subarray(d, f); return Object.setPrototypeOf(w, M.prototype), w }, M.prototype.readUintLE = M.prototype.readUIntLE = function (d, f, m) { d >>>= 0, f >>>= 0, m || ee(d, f, this.length); for (var w = this[d], I = 1, N = 0; ++N < f && (I *= 256);)w += this[d + N] * I; return w }, M.prototype.readUintBE = M.prototype.readUIntBE = function (d, f, m) { d >>>= 0, f >>>= 0, m || ee(d, f, this.length); for (var w = this[d + --f], I = 1; f > 0 && (I *= 256);)w += this[d + --f] * I; return w }, M.prototype.readUint8 = M.prototype.readUInt8 = function (d, f) { return d >>>= 0, f || ee(d, 1, this.length), this[d] }, M.prototype.readUint16LE = M.prototype.readUInt16LE = function (d, f) { return d >>>= 0, f || ee(d, 2, this.length), this[d] | this[d + 1] << 8 }, M.prototype.readUint16BE = M.prototype.readUInt16BE = function (d, f) { return d >>>= 0, f || ee(d, 2, this.length), this[d] << 8 | this[d + 1] }, M.prototype.readUint32LE = M.prototype.readUInt32LE = function (d, f) { return d >>>= 0, f || ee(d, 4, this.length), (this[d] | this[d + 1] << 8 | this[d + 2] << 16) + 16777216 * this[d + 3] }, M.prototype.readUint32BE = M.prototype.readUInt32BE = function (d, f) { return d >>>= 0, f || ee(d, 4, this.length), 16777216 * this[d] + (this[d + 1] << 16 | this[d + 2] << 8 | this[d + 3]) }, M.prototype.readIntLE = function (d, f, m) { d >>>= 0, f >>>= 0, m || ee(d, f, this.length); for (var w = this[d], I = 1, N = 0; ++N < f && (I *= 256);)w += this[d + N] * I; return w >= (I *= 128) && (w -= Math.pow(2, 8 * f)), w }, M.prototype.readIntBE = function (d, f, m) { d >>>= 0, f >>>= 0, m || ee(d, f, this.length); for (var w = f, I = 1, N = this[d + --w]; w > 0 && (I *= 256);)N += this[d + --w] * I; return N >= (I *= 128) && (N -= Math.pow(2, 8 * f)), N }, M.prototype.readInt8 = function (d, f) { return d >>>= 0, f || ee(d, 1, this.length), 128 & this[d] ? -1 * (255 - this[d] + 1) : this[d] }, M.prototype.readInt16LE = function (d, f) { d >>>= 0, f || ee(d, 2, this.length); var m = this[d] | this[d + 1] << 8; return 32768 & m ? 4294901760 | m : m }, M.prototype.readInt16BE = function (d, f) { d >>>= 0, f || ee(d, 2, this.length); var m = this[d + 1] | this[d] << 8; return 32768 & m ? 4294901760 | m : m }, M.prototype.readInt32LE = function (d, f) { return d >>>= 0, f || ee(d, 4, this.length), this[d] | this[d + 1] << 8 | this[d + 2] << 16 | this[d + 3] << 24 }, M.prototype.readInt32BE = function (d, f) { return d >>>= 0, f || ee(d, 4, this.length), this[d] << 24 | this[d + 1] << 16 | this[d + 2] << 8 | this[d + 3] }, M.prototype.readFloatLE = function (d, f) { return d >>>= 0, f || ee(d, 4, this.length), Je.read(this, d, !0, 23, 4) }, M.prototype.readFloatBE = function (d, f) { return d >>>= 0, f || ee(d, 4, this.length), Je.read(this, d, !1, 23, 4) }, M.prototype.readDoubleLE = function (d, f) { return d >>>= 0, f || ee(d, 8, this.length), Je.read(this, d, !0, 52, 8) }, M.prototype.readDoubleBE = function (d, f) { return d >>>= 0, f || ee(d, 8, this.length), Je.read(this, d, !1, 52, 8) }, M.prototype.writeUintLE = M.prototype.writeUIntLE = function (d, f, m, w) { d = +d, f >>>= 0, m >>>= 0, w || Rt(this, d, f, m, Math.pow(2, 8 * m) - 1, 0); var N = 1, q = 0; for (this[f] = 255 & d; ++q < m && (N *= 256);)this[f + q] = d / N & 255; return f + m }, M.prototype.writeUintBE = M.prototype.writeUIntBE = function (d, f, m, w) { d = +d, f >>>= 0, m >>>= 0, w || Rt(this, d, f, m, Math.pow(2, 8 * m) - 1, 0); var N = m - 1, q = 1; for (this[f + N] = 255 & d; --N >= 0 && (q *= 256);)this[f + N] = d / q & 255; return f + m }, M.prototype.writeUint8 = M.prototype.writeUInt8 = function (d, f, m) { return d = +d, f >>>= 0, m || Rt(this, d, f, 1, 255, 0), this[f] = 255 & d, f + 1 }, M.prototype.writeUint16LE = M.prototype.writeUInt16LE = function (d, f, m) { return d = +d, f >>>= 0, m || Rt(this, d, f, 2, 65535, 0), this[f] = 255 & d, this[f + 1] = d >>> 8, f + 2 }, M.prototype.writeUint16BE = M.prototype.writeUInt16BE = function (d, f, m) { return d = +d, f >>>= 0, m || Rt(this, d, f, 2, 65535, 0), this[f] = d >>> 8, this[f + 1] = 255 & d, f + 2 }, M.prototype.writeUint32LE = M.prototype.writeUInt32LE = function (d, f, m) { return d = +d, f >>>= 0, m || Rt(this, d, f, 4, 4294967295, 0), this[f + 3] = d >>> 24, this[f + 2] = d >>> 16, this[f + 1] = d >>> 8, this[f] = 255 & d, f + 4 }, M.prototype.writeUint32BE = M.prototype.writeUInt32BE = function (d, f, m) { return d = +d, f >>>= 0, m || Rt(this, d, f, 4, 4294967295, 0), this[f] = d >>> 24, this[f + 1] = d >>> 16, this[f + 2] = d >>> 8, this[f + 3] = 255 & d, f + 4 }, M.prototype.writeIntLE = function (d, f, m, w) { if (d = +d, f >>>= 0, !w) { var I = Math.pow(2, 8 * m - 1); Rt(this, d, f, m, I - 1, -I) } var N = 0, q = 1, he = 0; for (this[f] = 255 & d; ++N < m && (q *= 256);)d < 0 && 0 === he && 0 !== this[f + N - 1] && (he = 1), this[f + N] = (d / q >> 0) - he & 255; return f + m }, M.prototype.writeIntBE = function (d, f, m, w) { if (d = +d, f >>>= 0, !w) { var I = Math.pow(2, 8 * m - 1); Rt(this, d, f, m, I - 1, -I) } var N = m - 1, q = 1, he = 0; for (this[f + N] = 255 & d; --N >= 0 && (q *= 256);)d < 0 && 0 === he && 0 !== this[f + N + 1] && (he = 1), this[f + N] = (d / q >> 0) - he & 255; return f + m }, M.prototype.writeInt8 = function (d, f, m) { return d = +d, f >>>= 0, m || Rt(this, d, f, 1, 127, -128), d < 0 && (d = 255 + d + 1), this[f] = 255 & d, f + 1 }, M.prototype.writeInt16LE = function (d, f, m) { return d = +d, f >>>= 0, m || Rt(this, d, f, 2, 32767, -32768), this[f] = 255 & d, this[f + 1] = d >>> 8, f + 2 }, M.prototype.writeInt16BE = function (d, f, m) { return d = +d, f >>>= 0, m || Rt(this, d, f, 2, 32767, -32768), this[f] = d >>> 8, this[f + 1] = 255 & d, f + 2 }, M.prototype.writeInt32LE = function (d, f, m) { return d = +d, f >>>= 0, m || Rt(this, d, f, 4, 2147483647, -2147483648), this[f] = 255 & d, this[f + 1] = d >>> 8, this[f + 2] = d >>> 16, this[f + 3] = d >>> 24, f + 4 }, M.prototype.writeInt32BE = function (d, f, m) { return d = +d, f >>>= 0, m || Rt(this, d, f, 4, 2147483647, -2147483648), d < 0 && (d = 4294967295 + d + 1), this[f] = d >>> 24, this[f + 1] = d >>> 16, this[f + 2] = d >>> 8, this[f + 3] = 255 & d, f + 4 }, M.prototype.writeFloatLE = function (d, f, m) { return mt(this, d, f, !0, m) }, M.prototype.writeFloatBE = function (d, f, m) { return mt(this, d, f, !1, m) }, M.prototype.writeDoubleLE = function (d, f, m) { return ft(this, d, f, !0, m) }, M.prototype.writeDoubleBE = function (d, f, m) { return ft(this, d, f, !1, m) }, M.prototype.copy = function (d, f, m, w) { if (!M.isBuffer(d)) throw new TypeError("argument should be a Buffer"); if (m || (m = 0), !w && 0 !== w && (w = this.length), f >= d.length && (f = d.length), f || (f = 0), w > 0 && w < m && (w = m), w === m || 0 === d.length || 0 === this.length) return 0; if (f < 0) throw new RangeError("targetStart out of bounds"); if (m < 0 || m >= this.length) throw new RangeError("Index out of range"); if (w < 0) throw new RangeError("sourceEnd out of bounds"); w > this.length && (w = this.length), d.length - f < w - m && (w = d.length - f + m); var I = w - m; return this === d && "function" == typeof Uint8Array.prototype.copyWithin ? this.copyWithin(f, m, w) : Uint8Array.prototype.set.call(d, this.subarray(m, w), f), I }, M.prototype.fill = function (d, f, m, w) { if ("string" == typeof d) { if ("string" == typeof f ? (w = f, f = 0, m = this.length) : "string" == typeof m && (w = m, m = this.length), void 0 !== w && "string" != typeof w) throw new TypeError("encoding must be a string"); if ("string" == typeof w && !M.isEncoding(w)) throw new TypeError("Unknown encoding: " + w); if (1 === d.length) { var I = d.charCodeAt(0); ("utf8" === w && I < 128 || "latin1" === w) && (d = I) } } else "number" == typeof d ? d &= 255 : "boolean" == typeof d && (d = Number(d)); if (f < 0 || this.length < f || this.length < m) throw new RangeError("Out of range index"); if (m <= f) return this; var N; if (f >>>= 0, m = void 0 === m ? this.length : m >>> 0, d || (d = 0), "number" == typeof d) for (N = f; N < m; ++N)this[N] = d; else { var q = M.isBuffer(d) ? d : M.from(d, w), he = q.length; if (0 === he) throw new TypeError('The value "' + d + '" is invalid for argument "value"'); for (N = 0; N < m - f; ++N)this[N + f] = q[N % he] } return this }; var cs = /[^+/0-9A-Za-z-_]/g; function Zi(p, d) { d = d || 1 / 0; for (var f, m = p.length, w = null, I = [], N = 0; N < m; ++N) { if ((f = p.charCodeAt(N)) > 55295 && f < 57344) { if (!w) { if (f > 56319) { (d -= 3) > -1 && I.push(239, 191, 189); continue } if (N + 1 === m) { (d -= 3) > -1 && I.push(239, 191, 189); continue } w = f; continue } if (f < 56320) { (d -= 3) > -1 && I.push(239, 191, 189), w = f; continue } f = 65536 + (w - 55296 << 10 | f - 56320) } else w && (d -= 3) > -1 && I.push(239, 191, 189); if (w = null, f < 128) { if ((d -= 1) < 0) break; I.push(f) } else if (f < 2048) { if ((d -= 2) < 0) break; I.push(f >> 6 | 192, 63 & f | 128) } else if (f < 65536) { if ((d -= 3) < 0) break; I.push(f >> 12 | 224, f >> 6 & 63 | 128, 63 & f | 128) } else { if (!(f < 1114112)) throw new Error("Invalid code point"); if ((d -= 4) < 0) break; I.push(f >> 18 | 240, f >> 12 & 63 | 128, f >> 6 & 63 | 128, 63 & f | 128) } } return I } function Ji(p) { return ct.toByteArray(function Pt(p) { if ((p = (p = p.split("=")[0]).trim().replace(cs, "")).length < 2) return ""; for (; p.length % 4 != 0;)p += "="; return p }(p)) } function Qi(p, d, f, m) { for (var w = 0; w < m && !(w + f >= d.length || w >= p.length); ++w)d[w + f] = p[w]; return w } function tn(p, d) { return p instanceof d || null != p && null != p.constructor && null != p.constructor.name && p.constructor.name === d.name } function S(p) { return p != p } var E = function () { for (var p = "0123456789abcdef", d = new Array(256), f = 0; f < 16; ++f)for (var m = 16 * f, w = 0; w < 16; ++w)d[m + w] = p[f] + p[w]; return d }() }, 601: (_i, qt) => { qt.read = function (Ve, $, ct, Je, ke) { var de, ye, He = 8 * ke - Je - 1, M = (1 << He) - 1, ut = M >> 1, Ue = -7, dt = ct ? ke - 1 : 0, wt = ct ? -1 : 1, Z = Ve[$ + dt]; for (dt += wt, de = Z & (1 << -Ue) - 1, Z >>= -Ue, Ue += He; Ue > 0; de = 256 * de + Ve[$ + dt], dt += wt, Ue -= 8); for (ye = de & (1 << -Ue) - 1, de >>= -Ue, Ue += Je; Ue > 0; ye = 256 * ye + Ve[$ + dt], dt += wt, Ue -= 8); if (0 === de) de = 1 - ut; else { if (de === M) return ye ? NaN : 1 / 0 * (Z ? -1 : 1); ye += Math.pow(2, Je), de -= ut } return (Z ? -1 : 1) * ye * Math.pow(2, de - Je) }, qt.write = function (Ve, $, ct, Je, ke, de) { var ye, He, M, ut = 8 * de - ke - 1, Ue = (1 << ut) - 1, dt = Ue >> 1, wt = 23 === ke ? Math.pow(2, -24) - Math.pow(2, -77) : 0, Z = Je ? 0 : de - 1, le = Je ? 1 : -1, be = $ < 0 || 0 === $ && 1 / $ < 0 ? 1 : 0; for ($ = Math.abs($), isNaN($) || $ === 1 / 0 ? (He = isNaN($) ? 1 : 0, ye = Ue) : (ye = Math.floor(Math.log($) / Math.LN2), $ * (M = Math.pow(2, -ye)) < 1 && (ye--, M *= 2), ($ += ye + dt >= 1 ? wt / M : wt * Math.pow(2, 1 - dt)) * M >= 2 && (ye++, M /= 2), ye + dt >= Ue ? (He = 0, ye = Ue) : ye + dt >= 1 ? (He = ($ * M - 1) * Math.pow(2, ke), ye += dt) : (He = $ * Math.pow(2, dt - 1) * Math.pow(2, ke), ye = 0)); ke >= 8; Ve[ct + Z] = 255 & He, Z += le, He /= 256, ke -= 8); for (ye = ye << ke | He, ut += ke; ut > 0; Ve[ct + Z] = 255 & ye, Z += le, ye /= 256, ut -= 8); Ve[ct + Z - le] |= 128 * be } }, 614: () => { "use strict"; const _i = ":"; const Ji = function (S, ...E) { if (Ji.translate) { const d = Ji.translate(S, E); S = d[0], E = d[1] } let p = tn(S[0], S.raw[0]); for (let d = 1; d < S.length; d++)p += E[d - 1] + tn(S[d], S.raw[d]); return p }, Qi = ":"; function tn(S, E) { return E.charAt(0) === Qi ? S.substring(function as(S, E) { for (let p = 1, d = 1; p < S.length; p++, d++)if ("\\" === E[d]) d++; else if (S[p] === _i) return p; throw new Error(`Unterminated $localize metadata block in "${E}".`) }(S, E) + 1) : S } globalThis.$localize = Ji } }, _i => { var qt = $ => _i(_i.s = $); qt(614), qt(362) }]); \ No newline at end of file diff --git a/clinguin/client/presentation/frontends/angular_frontend/clinguin_angular_frontend/styles.60758c8c825da6c0.css b/clinguin/client/presentation/frontends/angular_frontend/clinguin_angular_frontend/styles.873dc2da1e53dafd.css similarity index 99% rename from clinguin/client/presentation/frontends/angular_frontend/clinguin_angular_frontend/styles.60758c8c825da6c0.css rename to clinguin/client/presentation/frontends/angular_frontend/clinguin_angular_frontend/styles.873dc2da1e53dafd.css index 37ec3a42..adde38ce 100644 --- a/clinguin/client/presentation/frontends/angular_frontend/clinguin_angular_frontend/styles.60758c8c825da6c0.css +++ b/clinguin/client/presentation/frontends/angular_frontend/clinguin_angular_frontend/styles.873dc2da1e53dafd.css @@ -2,4 +2,4 @@ * Bootstrap v5.3.1 (https://getbootstrap.com/) * Copyright 2011-2023 The Bootstrap Authors * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) - */:root,[data-bs-theme=light]{--bs-blue: #0d6efd;--bs-indigo: #6610f2;--bs-purple: #6f42c1;--bs-pink: #d63384;--bs-red: #dc3545;--bs-orange: #fd7e14;--bs-yellow: #ffc107;--bs-green: #198754;--bs-teal: #20c997;--bs-cyan: #0dcaf0;--bs-black: #000;--bs-white: #fff;--bs-gray: #6c757d;--bs-gray-dark: #343a40;--bs-gray-100: #f8f9fa;--bs-gray-200: #e9ecef;--bs-gray-300: #dee2e6;--bs-gray-400: #ced4da;--bs-gray-500: #adb5bd;--bs-gray-600: #6c757d;--bs-gray-700: #495057;--bs-gray-800: #343a40;--bs-gray-900: #212529;--bs-primary: #0052CC;--bs-secondary: #6554C0;--bs-success: #36B37E;--bs-info: #B3BAC5;--bs-warning: #FFAB00;--bs-danger: #FF5630;--bs-light: #F4F5F7;--bs-dark: #212529;--bs-primary-rgb: 0, 82, 204;--bs-secondary-rgb: 101, 84, 192;--bs-success-rgb: 54, 179, 126;--bs-info-rgb: 179, 186, 197;--bs-warning-rgb: 255, 171, 0;--bs-danger-rgb: 255, 86, 48;--bs-light-rgb: 244, 245, 247;--bs-dark-rgb: 33, 37, 41;--bs-primary-text-emphasis: #002152;--bs-secondary-text-emphasis: #28224d;--bs-success-text-emphasis: #164832;--bs-info-text-emphasis: #484a4f;--bs-warning-text-emphasis: #664400;--bs-danger-text-emphasis: #662213;--bs-light-text-emphasis: #495057;--bs-dark-text-emphasis: #495057;--bs-primary-bg-subtle: #ccdcf5;--bs-secondary-bg-subtle: #e0ddf2;--bs-success-bg-subtle: #d7f0e5;--bs-info-bg-subtle: #f0f1f3;--bs-warning-bg-subtle: #ffeecc;--bs-danger-bg-subtle: #ffddd6;--bs-light-bg-subtle: #fcfcfd;--bs-dark-bg-subtle: #ced4da;--bs-primary-border-subtle: #99baeb;--bs-secondary-border-subtle: #c1bbe6;--bs-success-border-subtle: #afe1cb;--bs-info-border-subtle: #e1e3e8;--bs-warning-border-subtle: #ffdd99;--bs-danger-border-subtle: #ffbbac;--bs-light-border-subtle: #e9ecef;--bs-dark-border-subtle: #adb5bd;--bs-white-rgb: 255, 255, 255;--bs-black-rgb: 0, 0, 0;--bs-font-sans-serif: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, .15), rgba(255, 255, 255, 0));--bs-body-font-family: var(--bs-font-sans-serif);--bs-body-font-size: 1rem;--bs-body-font-weight: 400;--bs-body-line-height: 1.5;--bs-body-color: #212529;--bs-body-color-rgb: 33, 37, 41;--bs-body-bg: #fff;--bs-body-bg-rgb: 255, 255, 255;--bs-emphasis-color: #000;--bs-emphasis-color-rgb: 0, 0, 0;--bs-secondary-color: rgba(33, 37, 41, .75);--bs-secondary-color-rgb: 33, 37, 41;--bs-secondary-bg: #e9ecef;--bs-secondary-bg-rgb: 233, 236, 239;--bs-tertiary-color: rgba(33, 37, 41, .5);--bs-tertiary-color-rgb: 33, 37, 41;--bs-tertiary-bg: #f8f9fa;--bs-tertiary-bg-rgb: 248, 249, 250;--bs-heading-color: inherit;--bs-link-color: #0052CC;--bs-link-color-rgb: 0, 82, 204;--bs-link-decoration: underline;--bs-link-hover-color: #0042a3;--bs-link-hover-color-rgb: 0, 66, 163;--bs-code-color: #d63384;--bs-highlight-bg: #fff3cd;--bs-border-width: 1px;--bs-border-style: solid;--bs-border-color: #dee2e6;--bs-border-color-translucent: rgba(0, 0, 0, .175);--bs-border-radius: .375rem;--bs-border-radius-sm: .25rem;--bs-border-radius-lg: .5rem;--bs-border-radius-xl: 1rem;--bs-border-radius-xxl: 2rem;--bs-border-radius-2xl: var(--bs-border-radius-xxl);--bs-border-radius-pill: 50rem;--bs-box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .15);--bs-box-shadow-sm: 0 .125rem .25rem rgba(0, 0, 0, .075);--bs-box-shadow-lg: 0 1rem 3rem rgba(0, 0, 0, .175);--bs-box-shadow-inset: inset 0 1px 2px rgba(0, 0, 0, .075);--bs-focus-ring-width: .25rem;--bs-focus-ring-opacity: .25;--bs-focus-ring-color: rgba(0, 82, 204, .25);--bs-form-valid-color: #36B37E;--bs-form-valid-border-color: #36B37E;--bs-form-invalid-color: #FF5630;--bs-form-invalid-border-color: #FF5630}[data-bs-theme=dark]{color-scheme:dark;--bs-body-color: #dee2e6;--bs-body-color-rgb: 222, 226, 230;--bs-body-bg: #212529;--bs-body-bg-rgb: 33, 37, 41;--bs-emphasis-color: #fff;--bs-emphasis-color-rgb: 255, 255, 255;--bs-secondary-color: rgba(222, 226, 230, .75);--bs-secondary-color-rgb: 222, 226, 230;--bs-secondary-bg: #343a40;--bs-secondary-bg-rgb: 52, 58, 64;--bs-tertiary-color: rgba(222, 226, 230, .5);--bs-tertiary-color-rgb: 222, 226, 230;--bs-tertiary-bg: #2b3035;--bs-tertiary-bg-rgb: 43, 48, 53;--bs-primary-text-emphasis: #6697e0;--bs-secondary-text-emphasis: #a398d9;--bs-success-text-emphasis: #86d1b2;--bs-info-text-emphasis: #d1d6dc;--bs-warning-text-emphasis: #ffcd66;--bs-danger-text-emphasis: #ff9a83;--bs-light-text-emphasis: #f8f9fa;--bs-dark-text-emphasis: #dee2e6;--bs-primary-bg-subtle: #001029;--bs-secondary-bg-subtle: #141126;--bs-success-bg-subtle: #0b2419;--bs-info-bg-subtle: #242527;--bs-warning-bg-subtle: #332200;--bs-danger-bg-subtle: #33110a;--bs-light-bg-subtle: #343a40;--bs-dark-bg-subtle: #1a1d20;--bs-primary-border-subtle: #00317a;--bs-secondary-border-subtle: #3d3273;--bs-success-border-subtle: #206b4c;--bs-info-border-subtle: #6b7076;--bs-warning-border-subtle: #996700;--bs-danger-border-subtle: #99341d;--bs-light-border-subtle: #495057;--bs-dark-border-subtle: #343a40;--bs-heading-color: inherit;--bs-link-color: #6697e0;--bs-link-hover-color: #85ace6;--bs-link-color-rgb: 102, 151, 224;--bs-link-hover-color-rgb: 133, 172, 230;--bs-code-color: #e685b5;--bs-border-color: #495057;--bs-border-color-translucent: rgba(255, 255, 255, .15);--bs-form-valid-color: #75b798;--bs-form-valid-border-color: #75b798;--bs-form-invalid-color: #ea868f;--bs-form-invalid-border-color: #ea868f}*,*:before,*:after{box-sizing:border-box}@media (prefers-reduced-motion: no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:var(--bs-body-font-family);font-size:var(--bs-body-font-size);font-weight:var(--bs-body-font-weight);line-height:var(--bs-body-line-height);color:var(--bs-body-color);text-align:var(--bs-body-text-align);background-color:var(--bs-body-bg);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}hr{margin:1rem 0;color:inherit;border:0;border-top:var(--bs-border-width) solid;opacity:.25}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2;color:var(--bs-heading-color)}h1,.h1{font-size:calc(1.375rem + 1.5vw)}@media (min-width: 1200px){h1,.h1{font-size:2.5rem}}h2,.h2{font-size:calc(1.325rem + .9vw)}@media (min-width: 1200px){h2,.h2{font-size:2rem}}h3,.h3{font-size:calc(1.3rem + .6vw)}@media (min-width: 1200px){h3,.h3{font-size:1.75rem}}h4,.h4{font-size:calc(1.275rem + .3vw)}@media (min-width: 1200px){h4,.h4{font-size:1.5rem}}h5,.h5{font-size:1.25rem}h6,.h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}ol,ul,dl{margin-top:0;margin-bottom:1rem}ol ol,ul ul,ol ul,ul ol{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small,.small{font-size:.875em}mark,.mark{padding:.1875em;background-color:var(--bs-highlight-bg)}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:rgba(var(--bs-link-color-rgb),var(--bs-link-opacity, 1));text-decoration:underline}a:hover{--bs-link-color-rgb: var(--bs-link-hover-color-rgb)}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}pre,code,kbd,samp{font-family:var(--bs-font-monospace);font-size:1em}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:.875em}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:.875em;color:var(--bs-code-color);word-wrap:break-word}a>code{color:inherit}kbd{padding:.1875rem .375rem;font-size:.875em;color:var(--bs-body-bg);background-color:var(--bs-body-color);border-radius:.25rem}kbd kbd{padding:0;font-size:1em}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:var(--bs-secondary-color);text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}thead,tbody,tfoot,tr,td,th{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}input,button,select,optgroup,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]:not([type=date]):not([type=datetime-local]):not([type=month]):not([type=week]):not([type=time])::-webkit-calendar-picker-indicator{display:none!important}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button:not(:disabled),[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:calc(1.275rem + .3vw);line-height:inherit}@media (min-width: 1200px){legend{font-size:1.5rem}}legend+*{clear:left}::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-text,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none!important}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:calc(1.625rem + 4.5vw);font-weight:300;line-height:1.2}@media (min-width: 1200px){.display-1{font-size:5rem}}.display-2{font-size:calc(1.575rem + 3.9vw);font-weight:300;line-height:1.2}@media (min-width: 1200px){.display-2{font-size:4.5rem}}.display-3{font-size:calc(1.525rem + 3.3vw);font-weight:300;line-height:1.2}@media (min-width: 1200px){.display-3{font-size:4rem}}.display-4{font-size:calc(1.475rem + 2.7vw);font-weight:300;line-height:1.2}@media (min-width: 1200px){.display-4{font-size:3.5rem}}.display-5{font-size:calc(1.425rem + 2.1vw);font-weight:300;line-height:1.2}@media (min-width: 1200px){.display-5{font-size:3rem}}.display-6{font-size:calc(1.375rem + 1.5vw);font-weight:300;line-height:1.2}@media (min-width: 1200px){.display-6{font-size:2.5rem}}.list-unstyled,.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:.875em;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote>:last-child{margin-bottom:0}.blockquote-footer{margin-top:-1rem;margin-bottom:1rem;font-size:.875em;color:#6c757d}.blockquote-footer:before{content:"\2014\a0"}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:var(--bs-body-bg);border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:.875em;color:var(--bs-secondary-color)}.container,.container-fluid,.container-sm,.container-md,.container-lg,.container-xl,.container-xxl{--bs-gutter-x: 1.5rem;--bs-gutter-y: 0;width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-right:auto;margin-left:auto}@media (min-width: 576px){.container,.container-sm{max-width:540px}}@media (min-width: 768px){.container,.container-sm,.container-md{max-width:720px}}@media (min-width: 992px){.container,.container-sm,.container-md,.container-lg{max-width:960px}}@media (min-width: 1200px){.container,.container-sm,.container-md,.container-lg,.container-xl{max-width:1140px}}@media (min-width: 1400px){.container,.container-sm,.container-md,.container-lg,.container-xl,.container-xxl{max-width:1320px}}:root{--bs-breakpoint-xs: 0;--bs-breakpoint-sm: 576px;--bs-breakpoint-md: 768px;--bs-breakpoint-lg: 992px;--bs-breakpoint-xl: 1200px;--bs-breakpoint-xxl: 1400px}.row{--bs-gutter-x: 1.5rem;--bs-gutter-y: 0;display:flex;flex-wrap:wrap;margin-top:calc(-1 * var(--bs-gutter-y));margin-right:calc(-.5 * var(--bs-gutter-x));margin-left:calc(-.5 * var(--bs-gutter-x))}.row>*{flex-shrink:0;width:100%;max-width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-top:var(--bs-gutter-y)}.col{flex:1 0 0%}.row-cols-auto>*{flex:0 0 auto;width:auto}.row-cols-1>*{flex:0 0 auto;width:100%}.row-cols-2>*{flex:0 0 auto;width:50%}.row-cols-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-4>*{flex:0 0 auto;width:25%}.row-cols-5>*{flex:0 0 auto;width:20%}.row-cols-6>*{flex:0 0 auto;width:16.6666666667%}.col-auto{flex:0 0 auto;width:auto}.col-1{flex:0 0 auto;width:8.33333333%}.col-2{flex:0 0 auto;width:16.66666667%}.col-3{flex:0 0 auto;width:25%}.col-4{flex:0 0 auto;width:33.33333333%}.col-5{flex:0 0 auto;width:41.66666667%}.col-6{flex:0 0 auto;width:50%}.col-7{flex:0 0 auto;width:58.33333333%}.col-8{flex:0 0 auto;width:66.66666667%}.col-9{flex:0 0 auto;width:75%}.col-10{flex:0 0 auto;width:83.33333333%}.col-11{flex:0 0 auto;width:91.66666667%}.col-12{flex:0 0 auto;width:100%}.offset-1{margin-left:8.33333333%}.offset-2{margin-left:16.66666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333333%}.offset-5{margin-left:41.66666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333333%}.offset-8{margin-left:66.66666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333333%}.offset-11{margin-left:91.66666667%}.g-0,.gx-0{--bs-gutter-x: 0}.g-0,.gy-0{--bs-gutter-y: 0}.g-1,.gx-1{--bs-gutter-x: .25rem}.g-1,.gy-1{--bs-gutter-y: .25rem}.g-2,.gx-2{--bs-gutter-x: .5rem}.g-2,.gy-2{--bs-gutter-y: .5rem}.g-3,.gx-3{--bs-gutter-x: 1rem}.g-3,.gy-3{--bs-gutter-y: 1rem}.g-4,.gx-4{--bs-gutter-x: 1.5rem}.g-4,.gy-4{--bs-gutter-y: 1.5rem}.g-5,.gx-5{--bs-gutter-x: 3rem}.g-5,.gy-5{--bs-gutter-y: 3rem}@media (min-width: 576px){.col-sm{flex:1 0 0%}.row-cols-sm-auto>*{flex:0 0 auto;width:auto}.row-cols-sm-1>*{flex:0 0 auto;width:100%}.row-cols-sm-2>*{flex:0 0 auto;width:50%}.row-cols-sm-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-sm-4>*{flex:0 0 auto;width:25%}.row-cols-sm-5>*{flex:0 0 auto;width:20%}.row-cols-sm-6>*{flex:0 0 auto;width:16.6666666667%}.col-sm-auto{flex:0 0 auto;width:auto}.col-sm-1{flex:0 0 auto;width:8.33333333%}.col-sm-2{flex:0 0 auto;width:16.66666667%}.col-sm-3{flex:0 0 auto;width:25%}.col-sm-4{flex:0 0 auto;width:33.33333333%}.col-sm-5{flex:0 0 auto;width:41.66666667%}.col-sm-6{flex:0 0 auto;width:50%}.col-sm-7{flex:0 0 auto;width:58.33333333%}.col-sm-8{flex:0 0 auto;width:66.66666667%}.col-sm-9{flex:0 0 auto;width:75%}.col-sm-10{flex:0 0 auto;width:83.33333333%}.col-sm-11{flex:0 0 auto;width:91.66666667%}.col-sm-12{flex:0 0 auto;width:100%}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333333%}.offset-sm-2{margin-left:16.66666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333333%}.offset-sm-5{margin-left:41.66666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333333%}.offset-sm-8{margin-left:66.66666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333333%}.offset-sm-11{margin-left:91.66666667%}.g-sm-0,.gx-sm-0{--bs-gutter-x: 0}.g-sm-0,.gy-sm-0{--bs-gutter-y: 0}.g-sm-1,.gx-sm-1{--bs-gutter-x: .25rem}.g-sm-1,.gy-sm-1{--bs-gutter-y: .25rem}.g-sm-2,.gx-sm-2{--bs-gutter-x: .5rem}.g-sm-2,.gy-sm-2{--bs-gutter-y: .5rem}.g-sm-3,.gx-sm-3{--bs-gutter-x: 1rem}.g-sm-3,.gy-sm-3{--bs-gutter-y: 1rem}.g-sm-4,.gx-sm-4{--bs-gutter-x: 1.5rem}.g-sm-4,.gy-sm-4{--bs-gutter-y: 1.5rem}.g-sm-5,.gx-sm-5{--bs-gutter-x: 3rem}.g-sm-5,.gy-sm-5{--bs-gutter-y: 3rem}}@media (min-width: 768px){.col-md{flex:1 0 0%}.row-cols-md-auto>*{flex:0 0 auto;width:auto}.row-cols-md-1>*{flex:0 0 auto;width:100%}.row-cols-md-2>*{flex:0 0 auto;width:50%}.row-cols-md-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-md-4>*{flex:0 0 auto;width:25%}.row-cols-md-5>*{flex:0 0 auto;width:20%}.row-cols-md-6>*{flex:0 0 auto;width:16.6666666667%}.col-md-auto{flex:0 0 auto;width:auto}.col-md-1{flex:0 0 auto;width:8.33333333%}.col-md-2{flex:0 0 auto;width:16.66666667%}.col-md-3{flex:0 0 auto;width:25%}.col-md-4{flex:0 0 auto;width:33.33333333%}.col-md-5{flex:0 0 auto;width:41.66666667%}.col-md-6{flex:0 0 auto;width:50%}.col-md-7{flex:0 0 auto;width:58.33333333%}.col-md-8{flex:0 0 auto;width:66.66666667%}.col-md-9{flex:0 0 auto;width:75%}.col-md-10{flex:0 0 auto;width:83.33333333%}.col-md-11{flex:0 0 auto;width:91.66666667%}.col-md-12{flex:0 0 auto;width:100%}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333333%}.offset-md-2{margin-left:16.66666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333333%}.offset-md-5{margin-left:41.66666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333333%}.offset-md-8{margin-left:66.66666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333333%}.offset-md-11{margin-left:91.66666667%}.g-md-0,.gx-md-0{--bs-gutter-x: 0}.g-md-0,.gy-md-0{--bs-gutter-y: 0}.g-md-1,.gx-md-1{--bs-gutter-x: .25rem}.g-md-1,.gy-md-1{--bs-gutter-y: .25rem}.g-md-2,.gx-md-2{--bs-gutter-x: .5rem}.g-md-2,.gy-md-2{--bs-gutter-y: .5rem}.g-md-3,.gx-md-3{--bs-gutter-x: 1rem}.g-md-3,.gy-md-3{--bs-gutter-y: 1rem}.g-md-4,.gx-md-4{--bs-gutter-x: 1.5rem}.g-md-4,.gy-md-4{--bs-gutter-y: 1.5rem}.g-md-5,.gx-md-5{--bs-gutter-x: 3rem}.g-md-5,.gy-md-5{--bs-gutter-y: 3rem}}@media (min-width: 992px){.col-lg{flex:1 0 0%}.row-cols-lg-auto>*{flex:0 0 auto;width:auto}.row-cols-lg-1>*{flex:0 0 auto;width:100%}.row-cols-lg-2>*{flex:0 0 auto;width:50%}.row-cols-lg-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-lg-4>*{flex:0 0 auto;width:25%}.row-cols-lg-5>*{flex:0 0 auto;width:20%}.row-cols-lg-6>*{flex:0 0 auto;width:16.6666666667%}.col-lg-auto{flex:0 0 auto;width:auto}.col-lg-1{flex:0 0 auto;width:8.33333333%}.col-lg-2{flex:0 0 auto;width:16.66666667%}.col-lg-3{flex:0 0 auto;width:25%}.col-lg-4{flex:0 0 auto;width:33.33333333%}.col-lg-5{flex:0 0 auto;width:41.66666667%}.col-lg-6{flex:0 0 auto;width:50%}.col-lg-7{flex:0 0 auto;width:58.33333333%}.col-lg-8{flex:0 0 auto;width:66.66666667%}.col-lg-9{flex:0 0 auto;width:75%}.col-lg-10{flex:0 0 auto;width:83.33333333%}.col-lg-11{flex:0 0 auto;width:91.66666667%}.col-lg-12{flex:0 0 auto;width:100%}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333333%}.offset-lg-2{margin-left:16.66666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333333%}.offset-lg-5{margin-left:41.66666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333333%}.offset-lg-8{margin-left:66.66666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333333%}.offset-lg-11{margin-left:91.66666667%}.g-lg-0,.gx-lg-0{--bs-gutter-x: 0}.g-lg-0,.gy-lg-0{--bs-gutter-y: 0}.g-lg-1,.gx-lg-1{--bs-gutter-x: .25rem}.g-lg-1,.gy-lg-1{--bs-gutter-y: .25rem}.g-lg-2,.gx-lg-2{--bs-gutter-x: .5rem}.g-lg-2,.gy-lg-2{--bs-gutter-y: .5rem}.g-lg-3,.gx-lg-3{--bs-gutter-x: 1rem}.g-lg-3,.gy-lg-3{--bs-gutter-y: 1rem}.g-lg-4,.gx-lg-4{--bs-gutter-x: 1.5rem}.g-lg-4,.gy-lg-4{--bs-gutter-y: 1.5rem}.g-lg-5,.gx-lg-5{--bs-gutter-x: 3rem}.g-lg-5,.gy-lg-5{--bs-gutter-y: 3rem}}@media (min-width: 1200px){.col-xl{flex:1 0 0%}.row-cols-xl-auto>*{flex:0 0 auto;width:auto}.row-cols-xl-1>*{flex:0 0 auto;width:100%}.row-cols-xl-2>*{flex:0 0 auto;width:50%}.row-cols-xl-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-xl-4>*{flex:0 0 auto;width:25%}.row-cols-xl-5>*{flex:0 0 auto;width:20%}.row-cols-xl-6>*{flex:0 0 auto;width:16.6666666667%}.col-xl-auto{flex:0 0 auto;width:auto}.col-xl-1{flex:0 0 auto;width:8.33333333%}.col-xl-2{flex:0 0 auto;width:16.66666667%}.col-xl-3{flex:0 0 auto;width:25%}.col-xl-4{flex:0 0 auto;width:33.33333333%}.col-xl-5{flex:0 0 auto;width:41.66666667%}.col-xl-6{flex:0 0 auto;width:50%}.col-xl-7{flex:0 0 auto;width:58.33333333%}.col-xl-8{flex:0 0 auto;width:66.66666667%}.col-xl-9{flex:0 0 auto;width:75%}.col-xl-10{flex:0 0 auto;width:83.33333333%}.col-xl-11{flex:0 0 auto;width:91.66666667%}.col-xl-12{flex:0 0 auto;width:100%}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333333%}.offset-xl-2{margin-left:16.66666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333333%}.offset-xl-5{margin-left:41.66666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333333%}.offset-xl-8{margin-left:66.66666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333333%}.offset-xl-11{margin-left:91.66666667%}.g-xl-0,.gx-xl-0{--bs-gutter-x: 0}.g-xl-0,.gy-xl-0{--bs-gutter-y: 0}.g-xl-1,.gx-xl-1{--bs-gutter-x: .25rem}.g-xl-1,.gy-xl-1{--bs-gutter-y: .25rem}.g-xl-2,.gx-xl-2{--bs-gutter-x: .5rem}.g-xl-2,.gy-xl-2{--bs-gutter-y: .5rem}.g-xl-3,.gx-xl-3{--bs-gutter-x: 1rem}.g-xl-3,.gy-xl-3{--bs-gutter-y: 1rem}.g-xl-4,.gx-xl-4{--bs-gutter-x: 1.5rem}.g-xl-4,.gy-xl-4{--bs-gutter-y: 1.5rem}.g-xl-5,.gx-xl-5{--bs-gutter-x: 3rem}.g-xl-5,.gy-xl-5{--bs-gutter-y: 3rem}}@media (min-width: 1400px){.col-xxl{flex:1 0 0%}.row-cols-xxl-auto>*{flex:0 0 auto;width:auto}.row-cols-xxl-1>*{flex:0 0 auto;width:100%}.row-cols-xxl-2>*{flex:0 0 auto;width:50%}.row-cols-xxl-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-xxl-4>*{flex:0 0 auto;width:25%}.row-cols-xxl-5>*{flex:0 0 auto;width:20%}.row-cols-xxl-6>*{flex:0 0 auto;width:16.6666666667%}.col-xxl-auto{flex:0 0 auto;width:auto}.col-xxl-1{flex:0 0 auto;width:8.33333333%}.col-xxl-2{flex:0 0 auto;width:16.66666667%}.col-xxl-3{flex:0 0 auto;width:25%}.col-xxl-4{flex:0 0 auto;width:33.33333333%}.col-xxl-5{flex:0 0 auto;width:41.66666667%}.col-xxl-6{flex:0 0 auto;width:50%}.col-xxl-7{flex:0 0 auto;width:58.33333333%}.col-xxl-8{flex:0 0 auto;width:66.66666667%}.col-xxl-9{flex:0 0 auto;width:75%}.col-xxl-10{flex:0 0 auto;width:83.33333333%}.col-xxl-11{flex:0 0 auto;width:91.66666667%}.col-xxl-12{flex:0 0 auto;width:100%}.offset-xxl-0{margin-left:0}.offset-xxl-1{margin-left:8.33333333%}.offset-xxl-2{margin-left:16.66666667%}.offset-xxl-3{margin-left:25%}.offset-xxl-4{margin-left:33.33333333%}.offset-xxl-5{margin-left:41.66666667%}.offset-xxl-6{margin-left:50%}.offset-xxl-7{margin-left:58.33333333%}.offset-xxl-8{margin-left:66.66666667%}.offset-xxl-9{margin-left:75%}.offset-xxl-10{margin-left:83.33333333%}.offset-xxl-11{margin-left:91.66666667%}.g-xxl-0,.gx-xxl-0{--bs-gutter-x: 0}.g-xxl-0,.gy-xxl-0{--bs-gutter-y: 0}.g-xxl-1,.gx-xxl-1{--bs-gutter-x: .25rem}.g-xxl-1,.gy-xxl-1{--bs-gutter-y: .25rem}.g-xxl-2,.gx-xxl-2{--bs-gutter-x: .5rem}.g-xxl-2,.gy-xxl-2{--bs-gutter-y: .5rem}.g-xxl-3,.gx-xxl-3{--bs-gutter-x: 1rem}.g-xxl-3,.gy-xxl-3{--bs-gutter-y: 1rem}.g-xxl-4,.gx-xxl-4{--bs-gutter-x: 1.5rem}.g-xxl-4,.gy-xxl-4{--bs-gutter-y: 1.5rem}.g-xxl-5,.gx-xxl-5{--bs-gutter-x: 3rem}.g-xxl-5,.gy-xxl-5{--bs-gutter-y: 3rem}}.table{--bs-table-color-type: initial;--bs-table-bg-type: initial;--bs-table-color-state: initial;--bs-table-bg-state: initial;--bs-table-color: var(--bs-body-color);--bs-table-bg: var(--bs-body-bg);--bs-table-border-color: var(--bs-border-color);--bs-table-accent-bg: transparent;--bs-table-striped-color: var(--bs-body-color);--bs-table-striped-bg: rgba(0, 0, 0, .05);--bs-table-active-color: var(--bs-body-color);--bs-table-active-bg: rgba(0, 0, 0, .1);--bs-table-hover-color: var(--bs-body-color);--bs-table-hover-bg: rgba(0, 0, 0, .075);width:100%;margin-bottom:1rem;vertical-align:top;border-color:var(--bs-table-border-color)}.table>:not(caption)>*>*{padding:.5rem;color:var(--bs-table-color-state, var(--bs-table-color-type, var(--bs-table-color)));background-color:var(--bs-table-bg);border-bottom-width:var(--bs-border-width);box-shadow:inset 0 0 0 9999px var(--bs-table-bg-state, var(--bs-table-bg-type, var(--bs-table-accent-bg)))}.table>tbody{vertical-align:inherit}.table>thead{vertical-align:bottom}.table-group-divider{border-top:calc(var(--bs-border-width) * 2) solid currentcolor}.caption-top{caption-side:top}.table-sm>:not(caption)>*>*{padding:.25rem}.table-bordered>:not(caption)>*{border-width:var(--bs-border-width) 0}.table-bordered>:not(caption)>*>*{border-width:0 var(--bs-border-width)}.table-borderless>:not(caption)>*>*{border-bottom-width:0}.table-borderless>:not(:first-child){border-top-width:0}.table-striped>tbody>tr:nth-of-type(odd)>*{--bs-table-color-type: var(--bs-table-striped-color);--bs-table-bg-type: var(--bs-table-striped-bg)}.table-striped-columns>:not(caption)>tr>:nth-child(2n){--bs-table-color-type: var(--bs-table-striped-color);--bs-table-bg-type: var(--bs-table-striped-bg)}.table-active{--bs-table-color-state: var(--bs-table-active-color);--bs-table-bg-state: var(--bs-table-active-bg)}.table-hover>tbody>tr:hover>*{--bs-table-color-state: var(--bs-table-hover-color);--bs-table-bg-state: var(--bs-table-hover-bg)}.table-primary{--bs-table-color: #000;--bs-table-bg: #ccdcf5;--bs-table-border-color: #b8c6dd;--bs-table-striped-bg: #c2d1e9;--bs-table-striped-color: #000;--bs-table-active-bg: #b8c6dd;--bs-table-active-color: #000;--bs-table-hover-bg: #bdcce3;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-secondary{--bs-table-color: #000;--bs-table-bg: #e0ddf2;--bs-table-border-color: #cac7da;--bs-table-striped-bg: #d5d2e6;--bs-table-striped-color: #000;--bs-table-active-bg: #cac7da;--bs-table-active-color: #000;--bs-table-hover-bg: #cfcce0;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-success{--bs-table-color: #000;--bs-table-bg: #d7f0e5;--bs-table-border-color: #c2d8ce;--bs-table-striped-bg: #cce4da;--bs-table-striped-color: #000;--bs-table-active-bg: #c2d8ce;--bs-table-active-color: #000;--bs-table-hover-bg: #c7ded4;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-info{--bs-table-color: #000;--bs-table-bg: #f0f1f3;--bs-table-border-color: #d8d9db;--bs-table-striped-bg: #e4e5e7;--bs-table-striped-color: #000;--bs-table-active-bg: #d8d9db;--bs-table-active-color: #000;--bs-table-hover-bg: #dedfe1;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-warning{--bs-table-color: #000;--bs-table-bg: #ffeecc;--bs-table-border-color: #e6d6b8;--bs-table-striped-bg: #f2e2c2;--bs-table-striped-color: #000;--bs-table-active-bg: #e6d6b8;--bs-table-active-color: #000;--bs-table-hover-bg: #ecdcbd;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-danger{--bs-table-color: #000;--bs-table-bg: #ffddd6;--bs-table-border-color: #e6c7c1;--bs-table-striped-bg: #f2d2cb;--bs-table-striped-color: #000;--bs-table-active-bg: #e6c7c1;--bs-table-active-color: #000;--bs-table-hover-bg: #ecccc6;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-light{--bs-table-color: #000;--bs-table-bg: #F4F5F7;--bs-table-border-color: #dcddde;--bs-table-striped-bg: #e8e9eb;--bs-table-striped-color: #000;--bs-table-active-bg: #dcddde;--bs-table-active-color: #000;--bs-table-hover-bg: #e2e3e4;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-dark{--bs-table-color: #fff;--bs-table-bg: #212529;--bs-table-border-color: #373b3e;--bs-table-striped-bg: #2c3034;--bs-table-striped-color: #fff;--bs-table-active-bg: #373b3e;--bs-table-active-color: #fff;--bs-table-hover-bg: #323539;--bs-table-hover-color: #fff;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}@media (max-width: 575.98px){.table-responsive-sm{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width: 767.98px){.table-responsive-md{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width: 991.98px){.table-responsive-lg{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width: 1199.98px){.table-responsive-xl{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width: 1399.98px){.table-responsive-xxl{overflow-x:auto;-webkit-overflow-scrolling:touch}}.form-label{margin-bottom:.5rem}.col-form-label{padding-top:calc(.375rem + var(--bs-border-width));padding-bottom:calc(.375rem + var(--bs-border-width));margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + var(--bs-border-width));padding-bottom:calc(.5rem + var(--bs-border-width));font-size:1.25rem}.col-form-label-sm{padding-top:calc(.25rem + var(--bs-border-width));padding-bottom:calc(.25rem + var(--bs-border-width));font-size:.875rem}.form-text{margin-top:.25rem;font-size:.875em;color:var(--bs-secondary-color)}.form-control{display:block;width:100%;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);-webkit-appearance:none;appearance:none;background-color:var(--bs-body-bg);background-clip:padding-box;border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-control{transition:none}}.form-control[type=file]{overflow:hidden}.form-control[type=file]:not(:disabled):not([readonly]){cursor:pointer}.form-control:focus{color:var(--bs-body-color);background-color:var(--bs-body-bg);border-color:#80a9e6;outline:0;box-shadow:0 0 0 .25rem #0052cc40}.form-control::-webkit-date-and-time-value{min-width:85px;height:1.5em;margin:0}.form-control::-webkit-datetime-edit{display:block;padding:0}.form-control::placeholder{color:var(--bs-secondary-color);opacity:1}.form-control:disabled{background-color:var(--bs-secondary-bg);opacity:1}.form-control::file-selector-button{padding:.375rem .75rem;margin:-.375rem -.75rem;margin-inline-end:.75rem;color:var(--bs-body-color);background-color:var(--bs-tertiary-bg);pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:var(--bs-border-width);border-radius:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-control::file-selector-button{transition:none}}.form-control:hover:not(:disabled):not([readonly])::file-selector-button{background-color:var(--bs-secondary-bg)}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;line-height:1.5;color:var(--bs-body-color);background-color:transparent;border:solid transparent;border-width:var(--bs-border-width) 0}.form-control-plaintext:focus{outline:0}.form-control-plaintext.form-control-sm,.form-control-plaintext.form-control-lg{padding-right:0;padding-left:0}.form-control-sm{min-height:calc(1.5em + .5rem + calc(var(--bs-border-width) * 2));padding:.25rem .5rem;font-size:.875rem;border-radius:var(--bs-border-radius-sm)}.form-control-sm::file-selector-button{padding:.25rem .5rem;margin:-.25rem -.5rem;margin-inline-end:.5rem}.form-control-lg{min-height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2));padding:.5rem 1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}.form-control-lg::file-selector-button{padding:.5rem 1rem;margin:-.5rem -1rem;margin-inline-end:1rem}textarea.form-control{min-height:calc(1.5em + .75rem + calc(var(--bs-border-width) * 2))}textarea.form-control-sm{min-height:calc(1.5em + .5rem + calc(var(--bs-border-width) * 2))}textarea.form-control-lg{min-height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2))}.form-control-color{width:3rem;height:calc(1.5em + .75rem + calc(var(--bs-border-width) * 2));padding:.375rem}.form-control-color:not(:disabled):not([readonly]){cursor:pointer}.form-control-color::-moz-color-swatch{border:0!important;border-radius:var(--bs-border-radius)}.form-control-color::-webkit-color-swatch{border:0!important;border-radius:var(--bs-border-radius)}.form-control-color.form-control-sm{height:calc(1.5em + .5rem + calc(var(--bs-border-width) * 2))}.form-control-color.form-control-lg{height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2))}.form-select{--bs-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");display:block;width:100%;padding:.375rem 2.25rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);-webkit-appearance:none;appearance:none;background-color:var(--bs-body-bg);background-image:var(--bs-form-select-bg-img),var(--bs-form-select-bg-icon, none);background-repeat:no-repeat;background-position:right .75rem center;background-size:16px 12px;border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-select{transition:none}}.form-select:focus{border-color:#80a9e6;outline:0;box-shadow:0 0 0 .25rem #0052cc40}.form-select[multiple],.form-select[size]:not([size="1"]){padding-right:.75rem;background-image:none}.form-select:disabled{background-color:var(--bs-secondary-bg)}.form-select:-moz-focusring{color:transparent;text-shadow:0 0 0 var(--bs-body-color)}.form-select-sm{padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem;border-radius:var(--bs-border-radius-sm)}.form-select-lg{padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}[data-bs-theme=dark] .form-select{--bs-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23dee2e6' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e")}.form-check{display:block;min-height:1.5rem;padding-left:1.5em;margin-bottom:.125rem}.form-check .form-check-input{float:left;margin-left:-1.5em}.form-check-reverse{padding-right:1.5em;padding-left:0;text-align:right}.form-check-reverse .form-check-input{float:right;margin-right:-1.5em;margin-left:0}.form-check-input{--bs-form-check-bg: var(--bs-body-bg);width:1em;height:1em;margin-top:.25em;vertical-align:top;-webkit-appearance:none;appearance:none;background-color:var(--bs-form-check-bg);background-image:var(--bs-form-check-bg-image);background-repeat:no-repeat;background-position:center;background-size:contain;border:var(--bs-border-width) solid var(--bs-border-color);-webkit-print-color-adjust:exact;print-color-adjust:exact}.form-check-input[type=checkbox]{border-radius:.25em}.form-check-input[type=radio]{border-radius:50%}.form-check-input:active{filter:brightness(90%)}.form-check-input:focus{border-color:#80a9e6;outline:0;box-shadow:0 0 0 .25rem #0052cc40}.form-check-input:checked{background-color:#0052cc;border-color:#0052cc}.form-check-input:checked[type=checkbox]{--bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e")}.form-check-input:checked[type=radio]{--bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e")}.form-check-input[type=checkbox]:indeterminate{background-color:#0052cc;border-color:#0052cc;--bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e")}.form-check-input:disabled{pointer-events:none;filter:none;opacity:.5}.form-check-input[disabled]~.form-check-label,.form-check-input:disabled~.form-check-label{cursor:default;opacity:.5}.form-switch{padding-left:2.5em}.form-switch .form-check-input{--bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e");width:2em;margin-left:-2.5em;background-image:var(--bs-form-switch-bg);background-position:left center;border-radius:2em;transition:background-position .15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-switch .form-check-input{transition:none}}.form-switch .form-check-input:focus{--bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2380a9e6'/%3e%3c/svg%3e")}.form-switch .form-check-input:checked{background-position:right center;--bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}.form-switch.form-check-reverse{padding-right:2.5em;padding-left:0}.form-switch.form-check-reverse .form-check-input{margin-right:-2.5em;margin-left:0}.form-check-inline{display:inline-block;margin-right:1rem}.btn-check{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.btn-check[disabled]+.btn,.btn-check:disabled+.btn{pointer-events:none;filter:none;opacity:.65}[data-bs-theme=dark] .form-switch .form-check-input:not(:checked):not(:focus){--bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%28255, 255, 255, 0.25%29'/%3e%3c/svg%3e")}.form-range{width:100%;height:1.5rem;padding:0;-webkit-appearance:none;appearance:none;background-color:transparent}.form-range:focus{outline:0}.form-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem #0052cc40}.form-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem #0052cc40}.form-range::-moz-focus-outer{border:0}.form-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;-webkit-appearance:none;appearance:none;background-color:#0052cc;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.form-range::-webkit-slider-thumb:active{background-color:#b3cbf0}.form-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:var(--bs-tertiary-bg);border-color:transparent;border-radius:1rem}.form-range::-moz-range-thumb{width:1rem;height:1rem;-webkit-appearance:none;appearance:none;background-color:#0052cc;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-range::-moz-range-thumb{-moz-transition:none;transition:none}}.form-range::-moz-range-thumb:active{background-color:#b3cbf0}.form-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:var(--bs-tertiary-bg);border-color:transparent;border-radius:1rem}.form-range:disabled{pointer-events:none}.form-range:disabled::-webkit-slider-thumb{background-color:var(--bs-secondary-color)}.form-range:disabled::-moz-range-thumb{background-color:var(--bs-secondary-color)}.form-floating{position:relative}.form-floating>.form-control,.form-floating>.form-control-plaintext,.form-floating>.form-select{height:calc(3.5rem + calc(var(--bs-border-width) * 2));min-height:calc(3.5rem + calc(var(--bs-border-width) * 2));line-height:1.25}.form-floating>label{position:absolute;top:0;left:0;z-index:2;height:100%;padding:1rem .75rem;overflow:hidden;text-align:start;text-overflow:ellipsis;white-space:nowrap;pointer-events:none;border:var(--bs-border-width) solid transparent;transform-origin:0 0;transition:opacity .1s ease-in-out,transform .1s ease-in-out}@media (prefers-reduced-motion: reduce){.form-floating>label{transition:none}}.form-floating>.form-control,.form-floating>.form-control-plaintext{padding:1rem .75rem}.form-floating>.form-control::placeholder,.form-floating>.form-control-plaintext::placeholder{color:transparent}.form-floating>.form-control:focus,.form-floating>.form-control:not(:placeholder-shown),.form-floating>.form-control-plaintext:focus,.form-floating>.form-control-plaintext:not(:placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:-webkit-autofill,.form-floating>.form-control-plaintext:-webkit-autofill{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-select{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label,.form-floating>.form-control-plaintext~label,.form-floating>.form-select~label{color:rgba(var(--bs-body-color-rgb),.65);transform:scale(.85) translateY(-.5rem) translate(.15rem)}.form-floating>.form-control:focus~label:after,.form-floating>.form-control:not(:placeholder-shown)~label:after,.form-floating>.form-control-plaintext~label:after,.form-floating>.form-select~label:after{position:absolute;inset:1rem .375rem;z-index:-1;height:1.5em;content:"";background-color:var(--bs-body-bg);border-radius:var(--bs-border-radius)}.form-floating>.form-control:-webkit-autofill~label{color:rgba(var(--bs-body-color-rgb),.65);transform:scale(.85) translateY(-.5rem) translate(.15rem)}.form-floating>.form-control-plaintext~label{border-width:var(--bs-border-width) 0}.form-floating>:disabled~label,.form-floating>.form-control:disabled~label{color:#6c757d}.form-floating>:disabled~label:after,.form-floating>.form-control:disabled~label:after{background-color:var(--bs-secondary-bg)}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.form-control,.input-group>.form-select,.input-group>.form-floating{position:relative;flex:1 1 auto;width:1%;min-width:0}.input-group>.form-control:focus,.input-group>.form-select:focus,.input-group>.form-floating:focus-within{z-index:5}.input-group .btn{position:relative;z-index:2}.input-group .btn:focus{z-index:5}.input-group-text{display:flex;align-items:center;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);text-align:center;white-space:nowrap;background-color:var(--bs-tertiary-bg);border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius)}.input-group-lg>.form-control,.input-group-lg>.form-select,.input-group-lg>.input-group-text,.input-group-lg>.btn{padding:.5rem 1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}.input-group-sm>.form-control,.input-group-sm>.form-select,.input-group-sm>.input-group-text,.input-group-sm>.btn{padding:.25rem .5rem;font-size:.875rem;border-radius:var(--bs-border-radius-sm)}.input-group-lg>.form-select,.input-group-sm>.form-select{padding-right:3rem}.input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),.input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n+3),.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-control,.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-select{border-top-right-radius:0;border-bottom-right-radius:0}.input-group.has-validation>:nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),.input-group.has-validation>.dropdown-toggle:nth-last-child(n+4),.input-group.has-validation>.form-floating:nth-last-child(n+3)>.form-control,.input-group.has-validation>.form-floating:nth-last-child(n+3)>.form-select{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){margin-left:calc(var(--bs-border-width) * -1);border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.form-floating:not(:first-child)>.form-control,.input-group>.form-floating:not(:first-child)>.form-select{border-top-left-radius:0;border-bottom-left-radius:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:var(--bs-form-valid-color)}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:var(--bs-success);border-radius:var(--bs-border-radius)}.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip,.is-valid~.valid-feedback,.is-valid~.valid-tooltip{display:block}.was-validated .form-control:valid,.form-control.is-valid{border-color:var(--bs-form-valid-border-color);padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2336B37E' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.was-validated .form-control:valid:focus,.form-control.is-valid:focus{border-color:var(--bs-form-valid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-success-rgb),.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.was-validated .form-select:valid,.form-select.is-valid{border-color:var(--bs-form-valid-border-color)}.was-validated .form-select:valid:not([multiple]):not([size]),.was-validated .form-select:valid:not([multiple])[size="1"],.form-select.is-valid:not([multiple]):not([size]),.form-select.is-valid:not([multiple])[size="1"]{--bs-form-select-bg-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2336B37E' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");padding-right:4.125rem;background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.was-validated .form-select:valid:focus,.form-select.is-valid:focus{border-color:var(--bs-form-valid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-success-rgb),.25)}.was-validated .form-control-color:valid,.form-control-color.is-valid{width:calc(3.75rem + 1.5em)}.was-validated .form-check-input:valid,.form-check-input.is-valid{border-color:var(--bs-form-valid-border-color)}.was-validated .form-check-input:valid:checked,.form-check-input.is-valid:checked{background-color:var(--bs-form-valid-color)}.was-validated .form-check-input:valid:focus,.form-check-input.is-valid:focus{box-shadow:0 0 0 .25rem rgba(var(--bs-success-rgb),.25)}.was-validated .form-check-input:valid~.form-check-label,.form-check-input.is-valid~.form-check-label{color:var(--bs-form-valid-color)}.form-check-inline .form-check-input~.valid-feedback{margin-left:.5em}.was-validated .input-group>.form-control:not(:focus):valid,.input-group>.form-control:not(:focus).is-valid,.was-validated .input-group>.form-select:not(:focus):valid,.input-group>.form-select:not(:focus).is-valid,.was-validated .input-group>.form-floating:not(:focus-within):valid,.input-group>.form-floating:not(:focus-within).is-valid{z-index:3}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:var(--bs-form-invalid-color)}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:var(--bs-danger);border-radius:var(--bs-border-radius)}.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip,.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip{display:block}.was-validated .form-control:invalid,.form-control.is-invalid{border-color:var(--bs-form-invalid-border-color);padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23FF5630'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23FF5630' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.was-validated .form-control:invalid:focus,.form-control.is-invalid:focus{border-color:var(--bs-form-invalid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-danger-rgb),.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.was-validated .form-select:invalid,.form-select.is-invalid{border-color:var(--bs-form-invalid-border-color)}.was-validated .form-select:invalid:not([multiple]):not([size]),.was-validated .form-select:invalid:not([multiple])[size="1"],.form-select.is-invalid:not([multiple]):not([size]),.form-select.is-invalid:not([multiple])[size="1"]{--bs-form-select-bg-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23FF5630'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23FF5630' stroke='none'/%3e%3c/svg%3e");padding-right:4.125rem;background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.was-validated .form-select:invalid:focus,.form-select.is-invalid:focus{border-color:var(--bs-form-invalid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-danger-rgb),.25)}.was-validated .form-control-color:invalid,.form-control-color.is-invalid{width:calc(3.75rem + 1.5em)}.was-validated .form-check-input:invalid,.form-check-input.is-invalid{border-color:var(--bs-form-invalid-border-color)}.was-validated .form-check-input:invalid:checked,.form-check-input.is-invalid:checked{background-color:var(--bs-form-invalid-color)}.was-validated .form-check-input:invalid:focus,.form-check-input.is-invalid:focus{box-shadow:0 0 0 .25rem rgba(var(--bs-danger-rgb),.25)}.was-validated .form-check-input:invalid~.form-check-label,.form-check-input.is-invalid~.form-check-label{color:var(--bs-form-invalid-color)}.form-check-inline .form-check-input~.invalid-feedback{margin-left:.5em}.was-validated .input-group>.form-control:not(:focus):invalid,.input-group>.form-control:not(:focus).is-invalid,.was-validated .input-group>.form-select:not(:focus):invalid,.input-group>.form-select:not(:focus).is-invalid,.was-validated .input-group>.form-floating:not(:focus-within):invalid,.input-group>.form-floating:not(:focus-within).is-invalid{z-index:4}.btn{--bs-btn-padding-x: .75rem;--bs-btn-padding-y: .375rem;--bs-btn-font-family: ;--bs-btn-font-size: 1rem;--bs-btn-font-weight: 400;--bs-btn-line-height: 1.5;--bs-btn-color: var(--bs-body-color);--bs-btn-bg: transparent;--bs-btn-border-width: var(--bs-border-width);--bs-btn-border-color: transparent;--bs-btn-border-radius: var(--bs-border-radius);--bs-btn-hover-border-color: transparent;--bs-btn-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075);--bs-btn-disabled-opacity: .65;--bs-btn-focus-box-shadow: 0 0 0 .25rem rgba(var(--bs-btn-focus-shadow-rgb), .5);display:inline-block;padding:var(--bs-btn-padding-y) var(--bs-btn-padding-x);font-family:var(--bs-btn-font-family);font-size:var(--bs-btn-font-size);font-weight:var(--bs-btn-font-weight);line-height:var(--bs-btn-line-height);color:var(--bs-btn-color);text-align:center;text-decoration:none;vertical-align:middle;cursor:pointer;-webkit-user-select:none;user-select:none;border:var(--bs-btn-border-width) solid var(--bs-btn-border-color);border-radius:var(--bs-btn-border-radius);background-color:var(--bs-btn-bg);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion: reduce){.btn{transition:none}}.btn:hover{color:var(--bs-btn-hover-color);background-color:var(--bs-btn-hover-bg);border-color:var(--bs-btn-hover-border-color)}.btn-check+.btn:hover{color:var(--bs-btn-color);background-color:var(--bs-btn-bg);border-color:var(--bs-btn-border-color)}.btn:focus-visible{color:var(--bs-btn-hover-color);background-color:var(--bs-btn-hover-bg);border-color:var(--bs-btn-hover-border-color);outline:0;box-shadow:var(--bs-btn-focus-box-shadow)}.btn-check:focus-visible+.btn{border-color:var(--bs-btn-hover-border-color);outline:0;box-shadow:var(--bs-btn-focus-box-shadow)}.btn-check:checked+.btn,:not(.btn-check)+.btn:active,.btn:first-child:active,.btn.active,.btn.show{color:var(--bs-btn-active-color);background-color:var(--bs-btn-active-bg);border-color:var(--bs-btn-active-border-color)}.btn-check:checked+.btn:focus-visible,:not(.btn-check)+.btn:active:focus-visible,.btn:first-child:active:focus-visible,.btn.active:focus-visible,.btn.show:focus-visible{box-shadow:var(--bs-btn-focus-box-shadow)}.btn:disabled,.btn.disabled,fieldset:disabled .btn{color:var(--bs-btn-disabled-color);pointer-events:none;background-color:var(--bs-btn-disabled-bg);border-color:var(--bs-btn-disabled-border-color);opacity:var(--bs-btn-disabled-opacity)}.btn-primary{--bs-btn-color: #fff;--bs-btn-bg: #0052CC;--bs-btn-border-color: #0052CC;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #0046ad;--bs-btn-hover-border-color: #0042a3;--bs-btn-focus-shadow-rgb: 38, 108, 212;--bs-btn-active-color: #fff;--bs-btn-active-bg: #0042a3;--bs-btn-active-border-color: #003e99;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #0052CC;--bs-btn-disabled-border-color: #0052CC}.btn-secondary{--bs-btn-color: #fff;--bs-btn-bg: #6554C0;--bs-btn-border-color: #6554C0;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #5647a3;--bs-btn-hover-border-color: #51439a;--bs-btn-focus-shadow-rgb: 124, 110, 201;--bs-btn-active-color: #fff;--bs-btn-active-bg: #51439a;--bs-btn-active-border-color: #4c3f90;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #6554C0;--bs-btn-disabled-border-color: #6554C0}.btn-success{--bs-btn-color: #000;--bs-btn-bg: #36B37E;--bs-btn-border-color: #36B37E;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #54be91;--bs-btn-hover-border-color: #4abb8b;--bs-btn-focus-shadow-rgb: 46, 152, 107;--bs-btn-active-color: #000;--bs-btn-active-bg: #5ec298;--bs-btn-active-border-color: #4abb8b;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #36B37E;--bs-btn-disabled-border-color: #36B37E}.btn-info{--bs-btn-color: #000;--bs-btn-bg: #B3BAC5;--bs-btn-border-color: #B3BAC5;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #bec4ce;--bs-btn-hover-border-color: #bbc1cb;--bs-btn-focus-shadow-rgb: 152, 158, 167;--bs-btn-active-color: #000;--bs-btn-active-bg: #c2c8d1;--bs-btn-active-border-color: #bbc1cb;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #B3BAC5;--bs-btn-disabled-border-color: #B3BAC5}.btn-warning{--bs-btn-color: #000;--bs-btn-bg: #FFAB00;--bs-btn-border-color: #FFAB00;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #ffb826;--bs-btn-hover-border-color: #ffb31a;--bs-btn-focus-shadow-rgb: 217, 145, 0;--bs-btn-active-color: #000;--bs-btn-active-bg: #ffbc33;--bs-btn-active-border-color: #ffb31a;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #FFAB00;--bs-btn-disabled-border-color: #FFAB00}.btn-danger{--bs-btn-color: #000;--bs-btn-bg: #FF5630;--bs-btn-border-color: #FF5630;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #ff6f4f;--bs-btn-hover-border-color: #ff6745;--bs-btn-focus-shadow-rgb: 217, 73, 41;--bs-btn-active-color: #000;--bs-btn-active-bg: #ff7859;--bs-btn-active-border-color: #ff6745;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #FF5630;--bs-btn-disabled-border-color: #FF5630}.btn-light{--bs-btn-color: #000;--bs-btn-bg: #F4F5F7;--bs-btn-border-color: #F4F5F7;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #cfd0d2;--bs-btn-hover-border-color: #c3c4c6;--bs-btn-focus-shadow-rgb: 207, 208, 210;--bs-btn-active-color: #000;--bs-btn-active-bg: #c3c4c6;--bs-btn-active-border-color: #b7b8b9;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #F4F5F7;--bs-btn-disabled-border-color: #F4F5F7}.btn-dark{--bs-btn-color: #fff;--bs-btn-bg: #212529;--bs-btn-border-color: #212529;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #424649;--bs-btn-hover-border-color: #373b3e;--bs-btn-focus-shadow-rgb: 66, 70, 73;--bs-btn-active-color: #fff;--bs-btn-active-bg: #4d5154;--bs-btn-active-border-color: #373b3e;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #212529;--bs-btn-disabled-border-color: #212529}.btn-outline-primary{--bs-btn-color: #0052CC;--bs-btn-border-color: #0052CC;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #0052CC;--bs-btn-hover-border-color: #0052CC;--bs-btn-focus-shadow-rgb: 0, 82, 204;--bs-btn-active-color: #fff;--bs-btn-active-bg: #0052CC;--bs-btn-active-border-color: #0052CC;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #0052CC;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #0052CC;--bs-gradient: none}.btn-outline-secondary{--bs-btn-color: #6554C0;--bs-btn-border-color: #6554C0;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #6554C0;--bs-btn-hover-border-color: #6554C0;--bs-btn-focus-shadow-rgb: 101, 84, 192;--bs-btn-active-color: #fff;--bs-btn-active-bg: #6554C0;--bs-btn-active-border-color: #6554C0;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #6554C0;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #6554C0;--bs-gradient: none}.btn-outline-success{--bs-btn-color: #36B37E;--bs-btn-border-color: #36B37E;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #36B37E;--bs-btn-hover-border-color: #36B37E;--bs-btn-focus-shadow-rgb: 54, 179, 126;--bs-btn-active-color: #000;--bs-btn-active-bg: #36B37E;--bs-btn-active-border-color: #36B37E;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #36B37E;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #36B37E;--bs-gradient: none}.btn-outline-info{--bs-btn-color: #B3BAC5;--bs-btn-border-color: #B3BAC5;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #B3BAC5;--bs-btn-hover-border-color: #B3BAC5;--bs-btn-focus-shadow-rgb: 179, 186, 197;--bs-btn-active-color: #000;--bs-btn-active-bg: #B3BAC5;--bs-btn-active-border-color: #B3BAC5;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #B3BAC5;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #B3BAC5;--bs-gradient: none}.btn-outline-warning{--bs-btn-color: #FFAB00;--bs-btn-border-color: #FFAB00;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #FFAB00;--bs-btn-hover-border-color: #FFAB00;--bs-btn-focus-shadow-rgb: 255, 171, 0;--bs-btn-active-color: #000;--bs-btn-active-bg: #FFAB00;--bs-btn-active-border-color: #FFAB00;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #FFAB00;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #FFAB00;--bs-gradient: none}.btn-outline-danger{--bs-btn-color: #FF5630;--bs-btn-border-color: #FF5630;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #FF5630;--bs-btn-hover-border-color: #FF5630;--bs-btn-focus-shadow-rgb: 255, 86, 48;--bs-btn-active-color: #000;--bs-btn-active-bg: #FF5630;--bs-btn-active-border-color: #FF5630;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #FF5630;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #FF5630;--bs-gradient: none}.btn-outline-light{--bs-btn-color: #F4F5F7;--bs-btn-border-color: #F4F5F7;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #F4F5F7;--bs-btn-hover-border-color: #F4F5F7;--bs-btn-focus-shadow-rgb: 244, 245, 247;--bs-btn-active-color: #000;--bs-btn-active-bg: #F4F5F7;--bs-btn-active-border-color: #F4F5F7;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #F4F5F7;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #F4F5F7;--bs-gradient: none}.btn-outline-dark{--bs-btn-color: #212529;--bs-btn-border-color: #212529;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #212529;--bs-btn-hover-border-color: #212529;--bs-btn-focus-shadow-rgb: 33, 37, 41;--bs-btn-active-color: #fff;--bs-btn-active-bg: #212529;--bs-btn-active-border-color: #212529;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #212529;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #212529;--bs-gradient: none}.btn-link{--bs-btn-font-weight: 400;--bs-btn-color: var(--bs-link-color);--bs-btn-bg: transparent;--bs-btn-border-color: transparent;--bs-btn-hover-color: var(--bs-link-hover-color);--bs-btn-hover-border-color: transparent;--bs-btn-active-color: var(--bs-link-hover-color);--bs-btn-active-border-color: transparent;--bs-btn-disabled-color: #6c757d;--bs-btn-disabled-border-color: transparent;--bs-btn-box-shadow: 0 0 0 #000;--bs-btn-focus-shadow-rgb: 38, 108, 212;text-decoration:underline}.btn-link:focus-visible{color:var(--bs-btn-color)}.btn-link:hover{color:var(--bs-btn-hover-color)}.btn-lg,.btn-group-lg>.btn{--bs-btn-padding-y: .5rem;--bs-btn-padding-x: 1rem;--bs-btn-font-size: 1.25rem;--bs-btn-border-radius: var(--bs-border-radius-lg)}.btn-sm,.btn-group-sm>.btn{--bs-btn-padding-y: .25rem;--bs-btn-padding-x: .5rem;--bs-btn-font-size: .875rem;--bs-btn-border-radius: var(--bs-border-radius-sm)}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion: reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion: reduce){.collapsing{transition:none}}.collapsing.collapse-horizontal{width:0;height:auto;transition:width .35s ease}@media (prefers-reduced-motion: reduce){.collapsing.collapse-horizontal{transition:none}}.dropup,.dropend,.dropdown,.dropstart,.dropup-center,.dropdown-center{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty:after{margin-left:0}.dropdown-menu{--bs-dropdown-zindex: 1000;--bs-dropdown-min-width: 10rem;--bs-dropdown-padding-x: 0;--bs-dropdown-padding-y: .5rem;--bs-dropdown-spacer: .125rem;--bs-dropdown-font-size: 1rem;--bs-dropdown-color: var(--bs-body-color);--bs-dropdown-bg: var(--bs-body-bg);--bs-dropdown-border-color: var(--bs-border-color-translucent);--bs-dropdown-border-radius: var(--bs-border-radius);--bs-dropdown-border-width: var(--bs-border-width);--bs-dropdown-inner-border-radius: calc(var(--bs-border-radius) - var(--bs-border-width));--bs-dropdown-divider-bg: var(--bs-border-color-translucent);--bs-dropdown-divider-margin-y: .5rem;--bs-dropdown-box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .15);--bs-dropdown-link-color: var(--bs-body-color);--bs-dropdown-link-hover-color: var(--bs-body-color);--bs-dropdown-link-hover-bg: var(--bs-tertiary-bg);--bs-dropdown-link-active-color: #fff;--bs-dropdown-link-active-bg: #0052CC;--bs-dropdown-link-disabled-color: var(--bs-tertiary-color);--bs-dropdown-item-padding-x: 1rem;--bs-dropdown-item-padding-y: .25rem;--bs-dropdown-header-color: #6c757d;--bs-dropdown-header-padding-x: 1rem;--bs-dropdown-header-padding-y: .5rem;position:absolute;z-index:var(--bs-dropdown-zindex);display:none;min-width:var(--bs-dropdown-min-width);padding:var(--bs-dropdown-padding-y) var(--bs-dropdown-padding-x);margin:0;font-size:var(--bs-dropdown-font-size);color:var(--bs-dropdown-color);text-align:left;list-style:none;background-color:var(--bs-dropdown-bg);background-clip:padding-box;border:var(--bs-dropdown-border-width) solid var(--bs-dropdown-border-color);border-radius:var(--bs-dropdown-border-radius)}.dropdown-menu[data-bs-popper]{top:100%;left:0;margin-top:var(--bs-dropdown-spacer)}.dropdown-menu-start{--bs-position: start}.dropdown-menu-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-end{--bs-position: end}.dropdown-menu-end[data-bs-popper]{right:0;left:auto}@media (min-width: 576px){.dropdown-menu-sm-start{--bs-position: start}.dropdown-menu-sm-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-sm-end{--bs-position: end}.dropdown-menu-sm-end[data-bs-popper]{right:0;left:auto}}@media (min-width: 768px){.dropdown-menu-md-start{--bs-position: start}.dropdown-menu-md-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-md-end{--bs-position: end}.dropdown-menu-md-end[data-bs-popper]{right:0;left:auto}}@media (min-width: 992px){.dropdown-menu-lg-start{--bs-position: start}.dropdown-menu-lg-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-lg-end{--bs-position: end}.dropdown-menu-lg-end[data-bs-popper]{right:0;left:auto}}@media (min-width: 1200px){.dropdown-menu-xl-start{--bs-position: start}.dropdown-menu-xl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xl-end{--bs-position: end}.dropdown-menu-xl-end[data-bs-popper]{right:0;left:auto}}@media (min-width: 1400px){.dropdown-menu-xxl-start{--bs-position: start}.dropdown-menu-xxl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xxl-end{--bs-position: end}.dropdown-menu-xxl-end[data-bs-popper]{right:0;left:auto}}.dropup .dropdown-menu[data-bs-popper]{top:auto;bottom:100%;margin-top:0;margin-bottom:var(--bs-dropdown-spacer)}.dropup .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty:after{margin-left:0}.dropend .dropdown-menu[data-bs-popper]{top:0;right:auto;left:100%;margin-top:0;margin-left:var(--bs-dropdown-spacer)}.dropend .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropend .dropdown-toggle:empty:after{margin-left:0}.dropend .dropdown-toggle:after{vertical-align:0}.dropstart .dropdown-menu[data-bs-popper]{top:0;right:100%;left:auto;margin-top:0;margin-right:var(--bs-dropdown-spacer)}.dropstart .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropstart .dropdown-toggle:after{display:none}.dropstart .dropdown-toggle:before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropstart .dropdown-toggle:empty:after{margin-left:0}.dropstart .dropdown-toggle:before{vertical-align:0}.dropdown-divider{height:0;margin:var(--bs-dropdown-divider-margin-y) 0;overflow:hidden;border-top:1px solid var(--bs-dropdown-divider-bg);opacity:1}.dropdown-item{display:block;width:100%;padding:var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);clear:both;font-weight:400;color:var(--bs-dropdown-link-color);text-align:inherit;text-decoration:none;white-space:nowrap;background-color:transparent;border:0;border-radius:var(--bs-dropdown-item-border-radius, 0)}.dropdown-item:hover,.dropdown-item:focus{color:var(--bs-dropdown-link-hover-color);background-color:var(--bs-dropdown-link-hover-bg)}.dropdown-item.active,.dropdown-item:active{color:var(--bs-dropdown-link-active-color);text-decoration:none;background-color:var(--bs-dropdown-link-active-bg)}.dropdown-item.disabled,.dropdown-item:disabled{color:var(--bs-dropdown-link-disabled-color);pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:var(--bs-dropdown-header-padding-y) var(--bs-dropdown-header-padding-x);margin-bottom:0;font-size:.875rem;color:var(--bs-dropdown-header-color);white-space:nowrap}.dropdown-item-text{display:block;padding:var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);color:var(--bs-dropdown-link-color)}.dropdown-menu-dark{--bs-dropdown-color: #dee2e6;--bs-dropdown-bg: #343a40;--bs-dropdown-border-color: var(--bs-border-color-translucent);--bs-dropdown-box-shadow: ;--bs-dropdown-link-color: #dee2e6;--bs-dropdown-link-hover-color: #fff;--bs-dropdown-divider-bg: var(--bs-border-color-translucent);--bs-dropdown-link-hover-bg: rgba(255, 255, 255, .15);--bs-dropdown-link-active-color: #fff;--bs-dropdown-link-active-bg: #0052CC;--bs-dropdown-link-disabled-color: #adb5bd;--bs-dropdown-header-color: #adb5bd}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;flex:1 1 auto}.btn-group>.btn-check:checked+.btn,.btn-group>.btn-check:focus+.btn,.btn-group>.btn:hover,.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn-check:checked+.btn,.btn-group-vertical>.btn-check:focus+.btn,.btn-group-vertical>.btn:hover,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn.active{z-index:1}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group{border-radius:var(--bs-border-radius)}.btn-group>:not(.btn-check:first-child)+.btn,.btn-group>.btn-group:not(:first-child){margin-left:calc(var(--bs-border-width) * -1)}.btn-group>.btn:not(:last-child):not(.dropdown-toggle),.btn-group>.btn.dropdown-toggle-split:first-child,.btn-group>.btn-group:not(:last-child)>.btn{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:nth-child(n+3),.btn-group>:not(.btn-check)+.btn,.btn-group>.btn-group:not(:first-child)>.btn{border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split:after,.dropup .dropdown-toggle-split:after,.dropend .dropdown-toggle-split:after{margin-left:0}.dropstart .dropdown-toggle-split:before{margin-right:0}.btn-sm+.dropdown-toggle-split,.btn-group-sm>.btn+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-lg+.dropdown-toggle-split,.btn-group-lg>.btn+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn:not(:first-child),.btn-group-vertical>.btn-group:not(:first-child){margin-top:calc(var(--bs-border-width) * -1)}.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle),.btn-group-vertical>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn~.btn,.btn-group-vertical>.btn-group:not(:first-child)>.btn{border-top-left-radius:0;border-top-right-radius:0}.nav{--bs-nav-link-padding-x: 1rem;--bs-nav-link-padding-y: .5rem;--bs-nav-link-font-weight: ;--bs-nav-link-color: var(--bs-link-color);--bs-nav-link-hover-color: var(--bs-link-hover-color);--bs-nav-link-disabled-color: var(--bs-secondary-color);display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:var(--bs-nav-link-padding-y) var(--bs-nav-link-padding-x);font-size:var(--bs-nav-link-font-size);font-weight:var(--bs-nav-link-font-weight);color:var(--bs-nav-link-color);text-decoration:none;background:none;border:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out}@media (prefers-reduced-motion: reduce){.nav-link{transition:none}}.nav-link:hover,.nav-link:focus{color:var(--bs-nav-link-hover-color)}.nav-link:focus-visible{outline:0;box-shadow:0 0 0 .25rem #0052cc40}.nav-link.disabled,.nav-link:disabled{color:var(--bs-nav-link-disabled-color);pointer-events:none;cursor:default}.nav-tabs{--bs-nav-tabs-border-width: var(--bs-border-width);--bs-nav-tabs-border-color: var(--bs-border-color);--bs-nav-tabs-border-radius: var(--bs-border-radius);--bs-nav-tabs-link-hover-border-color: var(--bs-secondary-bg) var(--bs-secondary-bg) var(--bs-border-color);--bs-nav-tabs-link-active-color: var(--bs-emphasis-color);--bs-nav-tabs-link-active-bg: var(--bs-body-bg);--bs-nav-tabs-link-active-border-color: var(--bs-border-color) var(--bs-border-color) var(--bs-body-bg);border-bottom:var(--bs-nav-tabs-border-width) solid var(--bs-nav-tabs-border-color)}.nav-tabs .nav-link{margin-bottom:calc(-1 * var(--bs-nav-tabs-border-width));border:var(--bs-nav-tabs-border-width) solid transparent;border-top-left-radius:var(--bs-nav-tabs-border-radius);border-top-right-radius:var(--bs-nav-tabs-border-radius)}.nav-tabs .nav-link:hover,.nav-tabs .nav-link:focus{isolation:isolate;border-color:var(--bs-nav-tabs-link-hover-border-color)}.nav-tabs .nav-link.active,.nav-tabs .nav-item.show .nav-link{color:var(--bs-nav-tabs-link-active-color);background-color:var(--bs-nav-tabs-link-active-bg);border-color:var(--bs-nav-tabs-link-active-border-color)}.nav-tabs .dropdown-menu{margin-top:calc(-1 * var(--bs-nav-tabs-border-width));border-top-left-radius:0;border-top-right-radius:0}.nav-pills{--bs-nav-pills-border-radius: var(--bs-border-radius);--bs-nav-pills-link-active-color: #fff;--bs-nav-pills-link-active-bg: #0052CC}.nav-pills .nav-link{border-radius:var(--bs-nav-pills-border-radius)}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:var(--bs-nav-pills-link-active-color);background-color:var(--bs-nav-pills-link-active-bg)}.nav-underline{--bs-nav-underline-gap: 1rem;--bs-nav-underline-border-width: .125rem;--bs-nav-underline-link-active-color: var(--bs-emphasis-color);gap:var(--bs-nav-underline-gap)}.nav-underline .nav-link{padding-right:0;padding-left:0;border-bottom:var(--bs-nav-underline-border-width) solid transparent}.nav-underline .nav-link:hover,.nav-underline .nav-link:focus{border-bottom-color:currentcolor}.nav-underline .nav-link.active,.nav-underline .show>.nav-link{font-weight:700;color:var(--bs-nav-underline-link-active-color);border-bottom-color:currentcolor}.nav-fill>.nav-link,.nav-fill .nav-item{flex:1 1 auto;text-align:center}.nav-justified>.nav-link,.nav-justified .nav-item{flex-basis:0;flex-grow:1;text-align:center}.nav-fill .nav-item .nav-link,.nav-justified .nav-item .nav-link{width:100%}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{--bs-navbar-padding-x: 0;--bs-navbar-padding-y: .5rem;--bs-navbar-color: rgba(var(--bs-emphasis-color-rgb), .65);--bs-navbar-hover-color: rgba(var(--bs-emphasis-color-rgb), .8);--bs-navbar-disabled-color: rgba(var(--bs-emphasis-color-rgb), .3);--bs-navbar-active-color: rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-brand-padding-y: .3125rem;--bs-navbar-brand-margin-end: 1rem;--bs-navbar-brand-font-size: 1.25rem;--bs-navbar-brand-color: rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-brand-hover-color: rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-nav-link-padding-x: .5rem;--bs-navbar-toggler-padding-y: .25rem;--bs-navbar-toggler-padding-x: .75rem;--bs-navbar-toggler-font-size: 1.25rem;--bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%2833, 37, 41, 0.75%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");--bs-navbar-toggler-border-color: rgba(var(--bs-emphasis-color-rgb), .15);--bs-navbar-toggler-border-radius: var(--bs-border-radius);--bs-navbar-toggler-focus-width: .25rem;--bs-navbar-toggler-transition: box-shadow .15s ease-in-out;position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding:var(--bs-navbar-padding-y) var(--bs-navbar-padding-x)}.navbar>.container,.navbar>.container-fluid,.navbar>.container-sm,.navbar>.container-md,.navbar>.container-lg,.navbar>.container-xl,.navbar>.container-xxl{display:flex;flex-wrap:inherit;align-items:center;justify-content:space-between}.navbar-brand{padding-top:var(--bs-navbar-brand-padding-y);padding-bottom:var(--bs-navbar-brand-padding-y);margin-right:var(--bs-navbar-brand-margin-end);font-size:var(--bs-navbar-brand-font-size);color:var(--bs-navbar-brand-color);text-decoration:none;white-space:nowrap}.navbar-brand:hover,.navbar-brand:focus{color:var(--bs-navbar-brand-hover-color)}.navbar-nav{--bs-nav-link-padding-x: 0;--bs-nav-link-padding-y: .5rem;--bs-nav-link-font-weight: ;--bs-nav-link-color: var(--bs-navbar-color);--bs-nav-link-hover-color: var(--bs-navbar-hover-color);--bs-nav-link-disabled-color: var(--bs-navbar-disabled-color);display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link.active,.navbar-nav .nav-link.show{color:var(--bs-navbar-active-color)}.navbar-nav .dropdown-menu{position:static}.navbar-text{padding-top:.5rem;padding-bottom:.5rem;color:var(--bs-navbar-color)}.navbar-text a,.navbar-text a:hover,.navbar-text a:focus{color:var(--bs-navbar-active-color)}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler{padding:var(--bs-navbar-toggler-padding-y) var(--bs-navbar-toggler-padding-x);font-size:var(--bs-navbar-toggler-font-size);line-height:1;color:var(--bs-navbar-color);background-color:transparent;border:var(--bs-border-width) solid var(--bs-navbar-toggler-border-color);border-radius:var(--bs-navbar-toggler-border-radius);transition:var(--bs-navbar-toggler-transition)}@media (prefers-reduced-motion: reduce){.navbar-toggler{transition:none}}.navbar-toggler:hover{text-decoration:none}.navbar-toggler:focus{text-decoration:none;outline:0;box-shadow:0 0 0 var(--bs-navbar-toggler-focus-width)}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;background-image:var(--bs-navbar-toggler-icon-bg);background-repeat:no-repeat;background-position:center;background-size:100%}.navbar-nav-scroll{max-height:var(--bs-scroll-height, 75vh);overflow-y:auto}@media (min-width: 576px){.navbar-expand-sm{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}.navbar-expand-sm .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-sm .offcanvas .offcanvas-header{display:none}.navbar-expand-sm .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width: 768px){.navbar-expand-md{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}.navbar-expand-md .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-md .offcanvas .offcanvas-header{display:none}.navbar-expand-md .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width: 992px){.navbar-expand-lg{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}.navbar-expand-lg .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-lg .offcanvas .offcanvas-header{display:none}.navbar-expand-lg .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width: 1200px){.navbar-expand-xl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}.navbar-expand-xl .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-xl .offcanvas .offcanvas-header{display:none}.navbar-expand-xl .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width: 1400px){.navbar-expand-xxl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xxl .navbar-nav{flex-direction:row}.navbar-expand-xxl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xxl .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-xxl .navbar-nav-scroll{overflow:visible}.navbar-expand-xxl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xxl .navbar-toggler{display:none}.navbar-expand-xxl .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-xxl .offcanvas .offcanvas-header{display:none}.navbar-expand-xxl .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}.navbar-expand{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-expand .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand .offcanvas .offcanvas-header{display:none}.navbar-expand .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}.navbar-dark,.navbar[data-bs-theme=dark]{--bs-navbar-color: rgba(255, 255, 255, .55);--bs-navbar-hover-color: rgba(255, 255, 255, .75);--bs-navbar-disabled-color: rgba(255, 255, 255, .25);--bs-navbar-active-color: #fff;--bs-navbar-brand-color: #fff;--bs-navbar-brand-hover-color: #fff;--bs-navbar-toggler-border-color: rgba(255, 255, 255, .1);--bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}[data-bs-theme=dark] .navbar-toggler-icon{--bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.card{--bs-card-spacer-y: 1rem;--bs-card-spacer-x: 1rem;--bs-card-title-spacer-y: .5rem;--bs-card-title-color: ;--bs-card-subtitle-color: ;--bs-card-border-width: var(--bs-border-width);--bs-card-border-color: var(--bs-border-color-translucent);--bs-card-border-radius: var(--bs-border-radius);--bs-card-box-shadow: ;--bs-card-inner-border-radius: calc(var(--bs-border-radius) - (var(--bs-border-width)));--bs-card-cap-padding-y: .5rem;--bs-card-cap-padding-x: 1rem;--bs-card-cap-bg: rgba(var(--bs-body-color-rgb), .03);--bs-card-cap-color: ;--bs-card-height: ;--bs-card-color: ;--bs-card-bg: var(--bs-body-bg);--bs-card-img-overlay-padding: 1rem;--bs-card-group-margin: .75rem;position:relative;display:flex;flex-direction:column;min-width:0;height:var(--bs-card-height);color:var(--bs-body-color);word-wrap:break-word;background-color:var(--bs-card-bg);background-clip:border-box;border:var(--bs-card-border-width) solid var(--bs-card-border-color);border-radius:var(--bs-card-border-radius)}.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:var(--bs-card-inner-border-radius);border-top-right-radius:var(--bs-card-inner-border-radius)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:var(--bs-card-inner-border-radius);border-bottom-left-radius:var(--bs-card-inner-border-radius)}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{flex:1 1 auto;padding:var(--bs-card-spacer-y) var(--bs-card-spacer-x);color:var(--bs-card-color)}.card-title{margin-bottom:var(--bs-card-title-spacer-y);color:var(--bs-card-title-color)}.card-subtitle{margin-top:calc(-.5 * var(--bs-card-title-spacer-y));margin-bottom:0;color:var(--bs-card-subtitle-color)}.card-text:last-child{margin-bottom:0}.card-link+.card-link{margin-left:var(--bs-card-spacer-x)}.card-header{padding:var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);margin-bottom:0;color:var(--bs-card-cap-color);background-color:var(--bs-card-cap-bg);border-bottom:var(--bs-card-border-width) solid var(--bs-card-border-color)}.card-header:first-child{border-radius:var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius) 0 0}.card-footer{padding:var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);color:var(--bs-card-cap-color);background-color:var(--bs-card-cap-bg);border-top:var(--bs-card-border-width) solid var(--bs-card-border-color)}.card-footer:last-child{border-radius:0 0 var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius)}.card-header-tabs{margin-right:calc(-.5 * var(--bs-card-cap-padding-x));margin-bottom:calc(-1 * var(--bs-card-cap-padding-y));margin-left:calc(-.5 * var(--bs-card-cap-padding-x));border-bottom:0}.card-header-tabs .nav-link.active{background-color:var(--bs-card-bg);border-bottom-color:var(--bs-card-bg)}.card-header-pills{margin-right:calc(-.5 * var(--bs-card-cap-padding-x));margin-left:calc(-.5 * var(--bs-card-cap-padding-x))}.card-img-overlay{position:absolute;inset:0;padding:var(--bs-card-img-overlay-padding);border-radius:var(--bs-card-inner-border-radius)}.card-img,.card-img-top,.card-img-bottom{width:100%}.card-img,.card-img-top{border-top-left-radius:var(--bs-card-inner-border-radius);border-top-right-radius:var(--bs-card-inner-border-radius)}.card-img,.card-img-bottom{border-bottom-right-radius:var(--bs-card-inner-border-radius);border-bottom-left-radius:var(--bs-card-inner-border-radius)}.card-group>.card{margin-bottom:var(--bs-card-group-margin)}@media (min-width: 576px){.card-group{display:flex;flex-flow:row wrap}.card-group>.card{flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-img-top,.card-group>.card:not(:last-child) .card-header{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-img-bottom,.card-group>.card:not(:last-child) .card-footer{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-img-top,.card-group>.card:not(:first-child) .card-header{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-img-bottom,.card-group>.card:not(:first-child) .card-footer{border-bottom-left-radius:0}}.accordion{--bs-accordion-color: var(--bs-body-color);--bs-accordion-bg: var(--bs-body-bg);--bs-accordion-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out, border-radius .15s ease;--bs-accordion-border-color: var(--bs-border-color);--bs-accordion-border-width: var(--bs-border-width);--bs-accordion-border-radius: var(--bs-border-radius);--bs-accordion-inner-border-radius: calc(var(--bs-border-radius) - (var(--bs-border-width)));--bs-accordion-btn-padding-x: 1.25rem;--bs-accordion-btn-padding-y: 1rem;--bs-accordion-btn-color: var(--bs-body-color);--bs-accordion-btn-bg: var(--bs-accordion-bg);--bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23212529'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");--bs-accordion-btn-icon-width: 1.25rem;--bs-accordion-btn-icon-transform: rotate(-180deg);--bs-accordion-btn-icon-transition: transform .2s ease-in-out;--bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23002152'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");--bs-accordion-btn-focus-border-color: #80a9e6;--bs-accordion-btn-focus-box-shadow: 0 0 0 .25rem rgba(0, 82, 204, .25);--bs-accordion-body-padding-x: 1.25rem;--bs-accordion-body-padding-y: 1rem;--bs-accordion-active-color: var(--bs-primary-text-emphasis);--bs-accordion-active-bg: var(--bs-primary-bg-subtle)}.accordion-button{position:relative;display:flex;align-items:center;width:100%;padding:var(--bs-accordion-btn-padding-y) var(--bs-accordion-btn-padding-x);font-size:1rem;color:var(--bs-accordion-btn-color);text-align:left;background-color:var(--bs-accordion-btn-bg);border:0;border-radius:0;overflow-anchor:none;transition:var(--bs-accordion-transition)}@media (prefers-reduced-motion: reduce){.accordion-button{transition:none}}.accordion-button:not(.collapsed){color:var(--bs-accordion-active-color);background-color:var(--bs-accordion-active-bg);box-shadow:inset 0 calc(-1 * var(--bs-accordion-border-width)) 0 var(--bs-accordion-border-color)}.accordion-button:not(.collapsed):after{background-image:var(--bs-accordion-btn-active-icon);transform:var(--bs-accordion-btn-icon-transform)}.accordion-button:after{flex-shrink:0;width:var(--bs-accordion-btn-icon-width);height:var(--bs-accordion-btn-icon-width);margin-left:auto;content:"";background-image:var(--bs-accordion-btn-icon);background-repeat:no-repeat;background-size:var(--bs-accordion-btn-icon-width);transition:var(--bs-accordion-btn-icon-transition)}@media (prefers-reduced-motion: reduce){.accordion-button:after{transition:none}}.accordion-button:hover{z-index:2}.accordion-button:focus{z-index:3;border-color:var(--bs-accordion-btn-focus-border-color);outline:0;box-shadow:var(--bs-accordion-btn-focus-box-shadow)}.accordion-header{margin-bottom:0}.accordion-item{color:var(--bs-accordion-color);background-color:var(--bs-accordion-bg);border:var(--bs-accordion-border-width) solid var(--bs-accordion-border-color)}.accordion-item:first-of-type{border-top-left-radius:var(--bs-accordion-border-radius);border-top-right-radius:var(--bs-accordion-border-radius)}.accordion-item:first-of-type .accordion-button{border-top-left-radius:var(--bs-accordion-inner-border-radius);border-top-right-radius:var(--bs-accordion-inner-border-radius)}.accordion-item:not(:first-of-type){border-top:0}.accordion-item:last-of-type{border-bottom-right-radius:var(--bs-accordion-border-radius);border-bottom-left-radius:var(--bs-accordion-border-radius)}.accordion-item:last-of-type .accordion-button.collapsed{border-bottom-right-radius:var(--bs-accordion-inner-border-radius);border-bottom-left-radius:var(--bs-accordion-inner-border-radius)}.accordion-item:last-of-type .accordion-collapse{border-bottom-right-radius:var(--bs-accordion-border-radius);border-bottom-left-radius:var(--bs-accordion-border-radius)}.accordion-body{padding:var(--bs-accordion-body-padding-y) var(--bs-accordion-body-padding-x)}.accordion-flush .accordion-collapse{border-width:0}.accordion-flush .accordion-item{border-right:0;border-left:0;border-radius:0}.accordion-flush .accordion-item:first-child{border-top:0}.accordion-flush .accordion-item:last-child{border-bottom:0}.accordion-flush .accordion-item .accordion-button,.accordion-flush .accordion-item .accordion-button.collapsed{border-radius:0}[data-bs-theme=dark] .accordion-button:after{--bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236697e0'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");--bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236697e0'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.breadcrumb{--bs-breadcrumb-padding-x: 0;--bs-breadcrumb-padding-y: 0;--bs-breadcrumb-margin-bottom: 1rem;--bs-breadcrumb-bg: ;--bs-breadcrumb-border-radius: ;--bs-breadcrumb-divider-color: var(--bs-secondary-color);--bs-breadcrumb-item-padding-x: .5rem;--bs-breadcrumb-item-active-color: var(--bs-secondary-color);display:flex;flex-wrap:wrap;padding:var(--bs-breadcrumb-padding-y) var(--bs-breadcrumb-padding-x);margin-bottom:var(--bs-breadcrumb-margin-bottom);font-size:var(--bs-breadcrumb-font-size);list-style:none;background-color:var(--bs-breadcrumb-bg);border-radius:var(--bs-breadcrumb-border-radius)}.breadcrumb-item+.breadcrumb-item{padding-left:var(--bs-breadcrumb-item-padding-x)}.breadcrumb-item+.breadcrumb-item:before{float:left;padding-right:var(--bs-breadcrumb-item-padding-x);color:var(--bs-breadcrumb-divider-color);content:var(--bs-breadcrumb-divider, "/")}.breadcrumb-item.active{color:var(--bs-breadcrumb-item-active-color)}.pagination{--bs-pagination-padding-x: .75rem;--bs-pagination-padding-y: .375rem;--bs-pagination-font-size: 1rem;--bs-pagination-color: var(--bs-link-color);--bs-pagination-bg: var(--bs-body-bg);--bs-pagination-border-width: var(--bs-border-width);--bs-pagination-border-color: var(--bs-border-color);--bs-pagination-border-radius: var(--bs-border-radius);--bs-pagination-hover-color: var(--bs-link-hover-color);--bs-pagination-hover-bg: var(--bs-tertiary-bg);--bs-pagination-hover-border-color: var(--bs-border-color);--bs-pagination-focus-color: var(--bs-link-hover-color);--bs-pagination-focus-bg: var(--bs-secondary-bg);--bs-pagination-focus-box-shadow: 0 0 0 .25rem rgba(0, 82, 204, .25);--bs-pagination-active-color: #fff;--bs-pagination-active-bg: #0052CC;--bs-pagination-active-border-color: #0052CC;--bs-pagination-disabled-color: var(--bs-secondary-color);--bs-pagination-disabled-bg: var(--bs-secondary-bg);--bs-pagination-disabled-border-color: var(--bs-border-color);display:flex;padding-left:0;list-style:none}.page-link{position:relative;display:block;padding:var(--bs-pagination-padding-y) var(--bs-pagination-padding-x);font-size:var(--bs-pagination-font-size);color:var(--bs-pagination-color);text-decoration:none;background-color:var(--bs-pagination-bg);border:var(--bs-pagination-border-width) solid var(--bs-pagination-border-color);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion: reduce){.page-link{transition:none}}.page-link:hover{z-index:2;color:var(--bs-pagination-hover-color);background-color:var(--bs-pagination-hover-bg);border-color:var(--bs-pagination-hover-border-color)}.page-link:focus{z-index:3;color:var(--bs-pagination-focus-color);background-color:var(--bs-pagination-focus-bg);outline:0;box-shadow:var(--bs-pagination-focus-box-shadow)}.page-link.active,.active>.page-link{z-index:3;color:var(--bs-pagination-active-color);background-color:var(--bs-pagination-active-bg);border-color:var(--bs-pagination-active-border-color)}.page-link.disabled,.disabled>.page-link{color:var(--bs-pagination-disabled-color);pointer-events:none;background-color:var(--bs-pagination-disabled-bg);border-color:var(--bs-pagination-disabled-border-color)}.page-item:not(:first-child) .page-link{margin-left:calc(var(--bs-border-width) * -1)}.page-item:first-child .page-link{border-top-left-radius:var(--bs-pagination-border-radius);border-bottom-left-radius:var(--bs-pagination-border-radius)}.page-item:last-child .page-link{border-top-right-radius:var(--bs-pagination-border-radius);border-bottom-right-radius:var(--bs-pagination-border-radius)}.pagination-lg{--bs-pagination-padding-x: 1.5rem;--bs-pagination-padding-y: .75rem;--bs-pagination-font-size: 1.25rem;--bs-pagination-border-radius: var(--bs-border-radius-lg)}.pagination-sm{--bs-pagination-padding-x: .5rem;--bs-pagination-padding-y: .25rem;--bs-pagination-font-size: .875rem;--bs-pagination-border-radius: var(--bs-border-radius-sm)}.badge{--bs-badge-padding-x: .65em;--bs-badge-padding-y: .35em;--bs-badge-font-size: .75em;--bs-badge-font-weight: 700;--bs-badge-color: #fff;--bs-badge-border-radius: var(--bs-border-radius);display:inline-block;padding:var(--bs-badge-padding-y) var(--bs-badge-padding-x);font-size:var(--bs-badge-font-size);font-weight:var(--bs-badge-font-weight);line-height:1;color:var(--bs-badge-color);text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:var(--bs-badge-border-radius)}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.alert{--bs-alert-bg: transparent;--bs-alert-padding-x: 1rem;--bs-alert-padding-y: 1rem;--bs-alert-margin-bottom: 1rem;--bs-alert-color: inherit;--bs-alert-border-color: transparent;--bs-alert-border: var(--bs-border-width) solid var(--bs-alert-border-color);--bs-alert-border-radius: var(--bs-border-radius);--bs-alert-link-color: inherit;position:relative;padding:var(--bs-alert-padding-y) var(--bs-alert-padding-x);margin-bottom:var(--bs-alert-margin-bottom);color:var(--bs-alert-color);background-color:var(--bs-alert-bg);border:var(--bs-alert-border);border-radius:var(--bs-alert-border-radius)}.alert-heading{color:inherit}.alert-link{font-weight:700;color:var(--bs-alert-link-color)}.alert-dismissible{padding-right:3rem}.alert-dismissible .btn-close{position:absolute;top:0;right:0;z-index:2;padding:1.25rem 1rem}.alert-primary{--bs-alert-color: var(--bs-primary-text-emphasis);--bs-alert-bg: var(--bs-primary-bg-subtle);--bs-alert-border-color: var(--bs-primary-border-subtle);--bs-alert-link-color: var(--bs-primary-text-emphasis)}.alert-secondary{--bs-alert-color: var(--bs-secondary-text-emphasis);--bs-alert-bg: var(--bs-secondary-bg-subtle);--bs-alert-border-color: var(--bs-secondary-border-subtle);--bs-alert-link-color: var(--bs-secondary-text-emphasis)}.alert-success{--bs-alert-color: var(--bs-success-text-emphasis);--bs-alert-bg: var(--bs-success-bg-subtle);--bs-alert-border-color: var(--bs-success-border-subtle);--bs-alert-link-color: var(--bs-success-text-emphasis)}.alert-info{--bs-alert-color: var(--bs-info-text-emphasis);--bs-alert-bg: var(--bs-info-bg-subtle);--bs-alert-border-color: var(--bs-info-border-subtle);--bs-alert-link-color: var(--bs-info-text-emphasis)}.alert-warning{--bs-alert-color: var(--bs-warning-text-emphasis);--bs-alert-bg: var(--bs-warning-bg-subtle);--bs-alert-border-color: var(--bs-warning-border-subtle);--bs-alert-link-color: var(--bs-warning-text-emphasis)}.alert-danger{--bs-alert-color: var(--bs-danger-text-emphasis);--bs-alert-bg: var(--bs-danger-bg-subtle);--bs-alert-border-color: var(--bs-danger-border-subtle);--bs-alert-link-color: var(--bs-danger-text-emphasis)}.alert-light{--bs-alert-color: var(--bs-light-text-emphasis);--bs-alert-bg: var(--bs-light-bg-subtle);--bs-alert-border-color: var(--bs-light-border-subtle);--bs-alert-link-color: var(--bs-light-text-emphasis)}.alert-dark{--bs-alert-color: var(--bs-dark-text-emphasis);--bs-alert-bg: var(--bs-dark-bg-subtle);--bs-alert-border-color: var(--bs-dark-border-subtle);--bs-alert-link-color: var(--bs-dark-text-emphasis)}@keyframes progress-bar-stripes{0%{background-position-x:1rem}}.progress,.progress-stacked{--bs-progress-height: 1rem;--bs-progress-font-size: .75rem;--bs-progress-bg: var(--bs-secondary-bg);--bs-progress-border-radius: var(--bs-border-radius);--bs-progress-box-shadow: var(--bs-box-shadow-inset);--bs-progress-bar-color: #fff;--bs-progress-bar-bg: #0052CC;--bs-progress-bar-transition: width .6s ease;display:flex;height:var(--bs-progress-height);overflow:hidden;font-size:var(--bs-progress-font-size);background-color:var(--bs-progress-bg);border-radius:var(--bs-progress-border-radius)}.progress-bar{display:flex;flex-direction:column;justify-content:center;overflow:hidden;color:var(--bs-progress-bar-color);text-align:center;white-space:nowrap;background-color:var(--bs-progress-bar-bg);transition:var(--bs-progress-bar-transition)}@media (prefers-reduced-motion: reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:var(--bs-progress-height) var(--bs-progress-height)}.progress-stacked>.progress{overflow:visible}.progress-stacked>.progress>.progress-bar{width:100%}.progress-bar-animated{animation:1s linear infinite progress-bar-stripes}@media (prefers-reduced-motion: reduce){.progress-bar-animated{animation:none}}.list-group{--bs-list-group-color: var(--bs-body-color);--bs-list-group-bg: var(--bs-body-bg);--bs-list-group-border-color: var(--bs-border-color);--bs-list-group-border-width: var(--bs-border-width);--bs-list-group-border-radius: var(--bs-border-radius);--bs-list-group-item-padding-x: 1rem;--bs-list-group-item-padding-y: .5rem;--bs-list-group-action-color: var(--bs-secondary-color);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-tertiary-bg);--bs-list-group-action-active-color: var(--bs-body-color);--bs-list-group-action-active-bg: var(--bs-secondary-bg);--bs-list-group-disabled-color: var(--bs-secondary-color);--bs-list-group-disabled-bg: var(--bs-body-bg);--bs-list-group-active-color: #fff;--bs-list-group-active-bg: #0052CC;--bs-list-group-active-border-color: #0052CC;display:flex;flex-direction:column;padding-left:0;margin-bottom:0;border-radius:var(--bs-list-group-border-radius)}.list-group-numbered{list-style-type:none;counter-reset:section}.list-group-numbered>.list-group-item:before{content:counters(section,".") ". ";counter-increment:section}.list-group-item-action{width:100%;color:var(--bs-list-group-action-color);text-align:inherit}.list-group-item-action:hover,.list-group-item-action:focus{z-index:1;color:var(--bs-list-group-action-hover-color);text-decoration:none;background-color:var(--bs-list-group-action-hover-bg)}.list-group-item-action:active{color:var(--bs-list-group-action-active-color);background-color:var(--bs-list-group-action-active-bg)}.list-group-item{position:relative;display:block;padding:var(--bs-list-group-item-padding-y) var(--bs-list-group-item-padding-x);color:var(--bs-list-group-color);text-decoration:none;background-color:var(--bs-list-group-bg);border:var(--bs-list-group-border-width) solid var(--bs-list-group-border-color)}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:var(--bs-list-group-disabled-color);pointer-events:none;background-color:var(--bs-list-group-disabled-bg)}.list-group-item.active{z-index:2;color:var(--bs-list-group-active-color);background-color:var(--bs-list-group-active-bg);border-color:var(--bs-list-group-active-border-color)}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:calc(-1 * var(--bs-list-group-border-width));border-top-width:var(--bs-list-group-border-width)}.list-group-horizontal{flex-direction:row}.list-group-horizontal>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}@media (min-width: 576px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width: 768px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width: 992px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width: 1200px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width: 1400px){.list-group-horizontal-xxl{flex-direction:row}.list-group-horizontal-xxl>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-xxl>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-xxl>.list-group-item.active{margin-top:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 var(--bs-list-group-border-width)}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{--bs-list-group-color: var(--bs-primary-text-emphasis);--bs-list-group-bg: var(--bs-primary-bg-subtle);--bs-list-group-border-color: var(--bs-primary-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-primary-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-primary-border-subtle);--bs-list-group-active-color: var(--bs-primary-bg-subtle);--bs-list-group-active-bg: var(--bs-primary-text-emphasis);--bs-list-group-active-border-color: var(--bs-primary-text-emphasis)}.list-group-item-secondary{--bs-list-group-color: var(--bs-secondary-text-emphasis);--bs-list-group-bg: var(--bs-secondary-bg-subtle);--bs-list-group-border-color: var(--bs-secondary-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-secondary-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-secondary-border-subtle);--bs-list-group-active-color: var(--bs-secondary-bg-subtle);--bs-list-group-active-bg: var(--bs-secondary-text-emphasis);--bs-list-group-active-border-color: var(--bs-secondary-text-emphasis)}.list-group-item-success{--bs-list-group-color: var(--bs-success-text-emphasis);--bs-list-group-bg: var(--bs-success-bg-subtle);--bs-list-group-border-color: var(--bs-success-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-success-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-success-border-subtle);--bs-list-group-active-color: var(--bs-success-bg-subtle);--bs-list-group-active-bg: var(--bs-success-text-emphasis);--bs-list-group-active-border-color: var(--bs-success-text-emphasis)}.list-group-item-info{--bs-list-group-color: var(--bs-info-text-emphasis);--bs-list-group-bg: var(--bs-info-bg-subtle);--bs-list-group-border-color: var(--bs-info-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-info-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-info-border-subtle);--bs-list-group-active-color: var(--bs-info-bg-subtle);--bs-list-group-active-bg: var(--bs-info-text-emphasis);--bs-list-group-active-border-color: var(--bs-info-text-emphasis)}.list-group-item-warning{--bs-list-group-color: var(--bs-warning-text-emphasis);--bs-list-group-bg: var(--bs-warning-bg-subtle);--bs-list-group-border-color: var(--bs-warning-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-warning-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-warning-border-subtle);--bs-list-group-active-color: var(--bs-warning-bg-subtle);--bs-list-group-active-bg: var(--bs-warning-text-emphasis);--bs-list-group-active-border-color: var(--bs-warning-text-emphasis)}.list-group-item-danger{--bs-list-group-color: var(--bs-danger-text-emphasis);--bs-list-group-bg: var(--bs-danger-bg-subtle);--bs-list-group-border-color: var(--bs-danger-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-danger-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-danger-border-subtle);--bs-list-group-active-color: var(--bs-danger-bg-subtle);--bs-list-group-active-bg: var(--bs-danger-text-emphasis);--bs-list-group-active-border-color: var(--bs-danger-text-emphasis)}.list-group-item-light{--bs-list-group-color: var(--bs-light-text-emphasis);--bs-list-group-bg: var(--bs-light-bg-subtle);--bs-list-group-border-color: var(--bs-light-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-light-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-light-border-subtle);--bs-list-group-active-color: var(--bs-light-bg-subtle);--bs-list-group-active-bg: var(--bs-light-text-emphasis);--bs-list-group-active-border-color: var(--bs-light-text-emphasis)}.list-group-item-dark{--bs-list-group-color: var(--bs-dark-text-emphasis);--bs-list-group-bg: var(--bs-dark-bg-subtle);--bs-list-group-border-color: var(--bs-dark-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-dark-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-dark-border-subtle);--bs-list-group-active-color: var(--bs-dark-bg-subtle);--bs-list-group-active-bg: var(--bs-dark-text-emphasis);--bs-list-group-active-border-color: var(--bs-dark-text-emphasis)}.btn-close{--bs-btn-close-color: #000;--bs-btn-close-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3e%3c/svg%3e");--bs-btn-close-opacity: .5;--bs-btn-close-hover-opacity: .75;--bs-btn-close-focus-shadow: 0 0 0 .25rem rgba(0, 82, 204, .25);--bs-btn-close-focus-opacity: 1;--bs-btn-close-disabled-opacity: .25;--bs-btn-close-white-filter: invert(1) grayscale(100%) brightness(200%);box-sizing:content-box;width:1em;height:1em;padding:.25em;color:var(--bs-btn-close-color);background:transparent var(--bs-btn-close-bg) center/1em auto no-repeat;border:0;border-radius:.375rem;opacity:var(--bs-btn-close-opacity)}.btn-close:hover{color:var(--bs-btn-close-color);text-decoration:none;opacity:var(--bs-btn-close-hover-opacity)}.btn-close:focus{outline:0;box-shadow:var(--bs-btn-close-focus-shadow);opacity:var(--bs-btn-close-focus-opacity)}.btn-close:disabled,.btn-close.disabled{pointer-events:none;-webkit-user-select:none;user-select:none;opacity:var(--bs-btn-close-disabled-opacity)}.btn-close-white,[data-bs-theme=dark] .btn-close{filter:var(--bs-btn-close-white-filter)}.toast{--bs-toast-zindex: 1090;--bs-toast-padding-x: .75rem;--bs-toast-padding-y: .5rem;--bs-toast-spacing: 1.5rem;--bs-toast-max-width: 350px;--bs-toast-font-size: .875rem;--bs-toast-color: ;--bs-toast-bg: rgba(var(--bs-body-bg-rgb), .85);--bs-toast-border-width: var(--bs-border-width);--bs-toast-border-color: var(--bs-border-color-translucent);--bs-toast-border-radius: var(--bs-border-radius);--bs-toast-box-shadow: var(--bs-box-shadow);--bs-toast-header-color: var(--bs-secondary-color);--bs-toast-header-bg: rgba(var(--bs-body-bg-rgb), .85);--bs-toast-header-border-color: var(--bs-border-color-translucent);width:var(--bs-toast-max-width);max-width:100%;font-size:var(--bs-toast-font-size);color:var(--bs-toast-color);pointer-events:auto;background-color:var(--bs-toast-bg);background-clip:padding-box;border:var(--bs-toast-border-width) solid var(--bs-toast-border-color);box-shadow:var(--bs-toast-box-shadow);border-radius:var(--bs-toast-border-radius)}.toast.showing{opacity:0}.toast:not(.show){display:none}.toast-container{--bs-toast-zindex: 1090;position:absolute;z-index:var(--bs-toast-zindex);width:max-content;max-width:100%;pointer-events:none}.toast-container>:not(:last-child){margin-bottom:var(--bs-toast-spacing)}.toast-header{display:flex;align-items:center;padding:var(--bs-toast-padding-y) var(--bs-toast-padding-x);color:var(--bs-toast-header-color);background-color:var(--bs-toast-header-bg);background-clip:padding-box;border-bottom:var(--bs-toast-border-width) solid var(--bs-toast-header-border-color);border-top-left-radius:calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width));border-top-right-radius:calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width))}.toast-header .btn-close{margin-right:calc(-.5 * var(--bs-toast-padding-x));margin-left:var(--bs-toast-padding-x)}.toast-body{padding:var(--bs-toast-padding-x);word-wrap:break-word}.modal{--bs-modal-zindex: 1055;--bs-modal-width: 500px;--bs-modal-padding: 1rem;--bs-modal-margin: .5rem;--bs-modal-color: ;--bs-modal-bg: var(--bs-body-bg);--bs-modal-border-color: var(--bs-border-color-translucent);--bs-modal-border-width: var(--bs-border-width);--bs-modal-border-radius: var(--bs-border-radius-lg);--bs-modal-box-shadow: 0 .125rem .25rem rgba(0, 0, 0, .075);--bs-modal-inner-border-radius: calc(var(--bs-border-radius-lg) - (var(--bs-border-width)));--bs-modal-header-padding-x: 1rem;--bs-modal-header-padding-y: 1rem;--bs-modal-header-padding: 1rem 1rem;--bs-modal-header-border-color: var(--bs-border-color);--bs-modal-header-border-width: var(--bs-border-width);--bs-modal-title-line-height: 1.5;--bs-modal-footer-gap: .5rem;--bs-modal-footer-bg: ;--bs-modal-footer-border-color: var(--bs-border-color);--bs-modal-footer-border-width: var(--bs-border-width);position:fixed;top:0;left:0;z-index:var(--bs-modal-zindex);display:none;width:100%;height:100%;overflow-x:hidden;overflow-y:auto;outline:0}.modal-dialog{position:relative;width:auto;margin:var(--bs-modal-margin);pointer-events:none}.modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translateY(-50px)}@media (prefers-reduced-motion: reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{height:calc(100% - var(--bs-modal-margin) * 2)}.modal-dialog-scrollable .modal-content{max-height:100%;overflow:hidden}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - var(--bs-modal-margin) * 2)}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;color:var(--bs-modal-color);pointer-events:auto;background-color:var(--bs-modal-bg);background-clip:padding-box;border:var(--bs-modal-border-width) solid var(--bs-modal-border-color);border-radius:var(--bs-modal-border-radius);outline:0}.modal-backdrop{--bs-backdrop-zindex: 1050;--bs-backdrop-bg: #000;--bs-backdrop-opacity: .5;position:fixed;top:0;left:0;z-index:var(--bs-backdrop-zindex);width:100vw;height:100vh;background-color:var(--bs-backdrop-bg)}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:var(--bs-backdrop-opacity)}.modal-header{display:flex;flex-shrink:0;align-items:center;justify-content:space-between;padding:var(--bs-modal-header-padding);border-bottom:var(--bs-modal-header-border-width) solid var(--bs-modal-header-border-color);border-top-left-radius:var(--bs-modal-inner-border-radius);border-top-right-radius:var(--bs-modal-inner-border-radius)}.modal-header .btn-close{padding:calc(var(--bs-modal-header-padding-y) * .5) calc(var(--bs-modal-header-padding-x) * .5);margin:calc(-.5 * var(--bs-modal-header-padding-y)) calc(-.5 * var(--bs-modal-header-padding-x)) calc(-.5 * var(--bs-modal-header-padding-y)) auto}.modal-title{margin-bottom:0;line-height:var(--bs-modal-title-line-height)}.modal-body{position:relative;flex:1 1 auto;padding:var(--bs-modal-padding)}.modal-footer{display:flex;flex-shrink:0;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:calc(var(--bs-modal-padding) - var(--bs-modal-footer-gap) * .5);background-color:var(--bs-modal-footer-bg);border-top:var(--bs-modal-footer-border-width) solid var(--bs-modal-footer-border-color);border-bottom-right-radius:var(--bs-modal-inner-border-radius);border-bottom-left-radius:var(--bs-modal-inner-border-radius)}.modal-footer>*{margin:calc(var(--bs-modal-footer-gap) * .5)}@media (min-width: 576px){.modal{--bs-modal-margin: 1.75rem;--bs-modal-box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .15)}.modal-dialog{max-width:var(--bs-modal-width);margin-right:auto;margin-left:auto}.modal-sm{--bs-modal-width: 300px}}@media (min-width: 992px){.modal-lg,.modal-xl{--bs-modal-width: 800px}}@media (min-width: 1200px){.modal-xl{--bs-modal-width: 1140px}}.modal-fullscreen{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen .modal-header,.modal-fullscreen .modal-footer{border-radius:0}.modal-fullscreen .modal-body{overflow-y:auto}@media (max-width: 575.98px){.modal-fullscreen-sm-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-sm-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-sm-down .modal-header,.modal-fullscreen-sm-down .modal-footer{border-radius:0}.modal-fullscreen-sm-down .modal-body{overflow-y:auto}}@media (max-width: 767.98px){.modal-fullscreen-md-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-md-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-md-down .modal-header,.modal-fullscreen-md-down .modal-footer{border-radius:0}.modal-fullscreen-md-down .modal-body{overflow-y:auto}}@media (max-width: 991.98px){.modal-fullscreen-lg-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-lg-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-lg-down .modal-header,.modal-fullscreen-lg-down .modal-footer{border-radius:0}.modal-fullscreen-lg-down .modal-body{overflow-y:auto}}@media (max-width: 1199.98px){.modal-fullscreen-xl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xl-down .modal-header,.modal-fullscreen-xl-down .modal-footer{border-radius:0}.modal-fullscreen-xl-down .modal-body{overflow-y:auto}}@media (max-width: 1399.98px){.modal-fullscreen-xxl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xxl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xxl-down .modal-header,.modal-fullscreen-xxl-down .modal-footer{border-radius:0}.modal-fullscreen-xxl-down .modal-body{overflow-y:auto}}.tooltip{--bs-tooltip-zindex: 1080;--bs-tooltip-max-width: 200px;--bs-tooltip-padding-x: .5rem;--bs-tooltip-padding-y: .25rem;--bs-tooltip-margin: ;--bs-tooltip-font-size: .875rem;--bs-tooltip-color: var(--bs-body-bg);--bs-tooltip-bg: var(--bs-emphasis-color);--bs-tooltip-border-radius: var(--bs-border-radius);--bs-tooltip-opacity: .9;--bs-tooltip-arrow-width: .8rem;--bs-tooltip-arrow-height: .4rem;z-index:var(--bs-tooltip-zindex);display:block;margin:var(--bs-tooltip-margin);font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--bs-tooltip-font-size);word-wrap:break-word;opacity:0}.tooltip.show{opacity:var(--bs-tooltip-opacity)}.tooltip .tooltip-arrow{display:block;width:var(--bs-tooltip-arrow-width);height:var(--bs-tooltip-arrow-height)}.tooltip .tooltip-arrow:before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-top .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow{bottom:calc(-1 * var(--bs-tooltip-arrow-height))}.bs-tooltip-top .tooltip-arrow:before,.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow:before{top:-1px;border-width:var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * .5) 0;border-top-color:var(--bs-tooltip-bg)}.bs-tooltip-end .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow{left:calc(-1 * var(--bs-tooltip-arrow-height));width:var(--bs-tooltip-arrow-height);height:var(--bs-tooltip-arrow-width)}.bs-tooltip-end .tooltip-arrow:before,.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow:before{right:-1px;border-width:calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * .5) 0;border-right-color:var(--bs-tooltip-bg)}.bs-tooltip-bottom .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow{top:calc(-1 * var(--bs-tooltip-arrow-height))}.bs-tooltip-bottom .tooltip-arrow:before,.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow:before{bottom:-1px;border-width:0 calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height);border-bottom-color:var(--bs-tooltip-bg)}.bs-tooltip-start .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow{right:calc(-1 * var(--bs-tooltip-arrow-height));width:var(--bs-tooltip-arrow-height);height:var(--bs-tooltip-arrow-width)}.bs-tooltip-start .tooltip-arrow:before,.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow:before{left:-1px;border-width:calc(var(--bs-tooltip-arrow-width) * .5) 0 calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height);border-left-color:var(--bs-tooltip-bg)}.tooltip-inner{max-width:var(--bs-tooltip-max-width);padding:var(--bs-tooltip-padding-y) var(--bs-tooltip-padding-x);color:var(--bs-tooltip-color);text-align:center;background-color:var(--bs-tooltip-bg);border-radius:var(--bs-tooltip-border-radius)}.popover{--bs-popover-zindex: 1070;--bs-popover-max-width: 276px;--bs-popover-font-size: .875rem;--bs-popover-bg: var(--bs-body-bg);--bs-popover-border-width: var(--bs-border-width);--bs-popover-border-color: var(--bs-border-color-translucent);--bs-popover-border-radius: var(--bs-border-radius-lg);--bs-popover-inner-border-radius: calc(var(--bs-border-radius-lg) - var(--bs-border-width));--bs-popover-box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .15);--bs-popover-header-padding-x: 1rem;--bs-popover-header-padding-y: .5rem;--bs-popover-header-font-size: 1rem;--bs-popover-header-color: inherit;--bs-popover-header-bg: var(--bs-secondary-bg);--bs-popover-body-padding-x: 1rem;--bs-popover-body-padding-y: 1rem;--bs-popover-body-color: var(--bs-body-color);--bs-popover-arrow-width: 1rem;--bs-popover-arrow-height: .5rem;--bs-popover-arrow-border: var(--bs-popover-border-color);z-index:var(--bs-popover-zindex);display:block;max-width:var(--bs-popover-max-width);font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--bs-popover-font-size);word-wrap:break-word;background-color:var(--bs-popover-bg);background-clip:padding-box;border:var(--bs-popover-border-width) solid var(--bs-popover-border-color);border-radius:var(--bs-popover-border-radius)}.popover .popover-arrow{display:block;width:var(--bs-popover-arrow-width);height:var(--bs-popover-arrow-height)}.popover .popover-arrow:before,.popover .popover-arrow:after{position:absolute;display:block;content:"";border-color:transparent;border-style:solid;border-width:0}.bs-popover-top>.popover-arrow,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow{bottom:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width))}.bs-popover-top>.popover-arrow:before,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow:before,.bs-popover-top>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow:after{border-width:var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * .5) 0}.bs-popover-top>.popover-arrow:before,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow:before{bottom:0;border-top-color:var(--bs-popover-arrow-border)}.bs-popover-top>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow:after{bottom:var(--bs-popover-border-width);border-top-color:var(--bs-popover-bg)}.bs-popover-end>.popover-arrow,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow{left:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));width:var(--bs-popover-arrow-height);height:var(--bs-popover-arrow-width)}.bs-popover-end>.popover-arrow:before,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow:before,.bs-popover-end>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow:after{border-width:calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * .5) 0}.bs-popover-end>.popover-arrow:before,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow:before{left:0;border-right-color:var(--bs-popover-arrow-border)}.bs-popover-end>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow:after{left:var(--bs-popover-border-width);border-right-color:var(--bs-popover-bg)}.bs-popover-bottom>.popover-arrow,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow{top:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width))}.bs-popover-bottom>.popover-arrow:before,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:before,.bs-popover-bottom>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:after{border-width:0 calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height)}.bs-popover-bottom>.popover-arrow:before,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:before{top:0;border-bottom-color:var(--bs-popover-arrow-border)}.bs-popover-bottom>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:after{top:var(--bs-popover-border-width);border-bottom-color:var(--bs-popover-bg)}.bs-popover-bottom .popover-header:before,.bs-popover-auto[data-popper-placement^=bottom] .popover-header:before{position:absolute;top:0;left:50%;display:block;width:var(--bs-popover-arrow-width);margin-left:calc(-.5 * var(--bs-popover-arrow-width));content:"";border-bottom:var(--bs-popover-border-width) solid var(--bs-popover-header-bg)}.bs-popover-start>.popover-arrow,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow{right:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));width:var(--bs-popover-arrow-height);height:var(--bs-popover-arrow-width)}.bs-popover-start>.popover-arrow:before,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow:before,.bs-popover-start>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow:after{border-width:calc(var(--bs-popover-arrow-width) * .5) 0 calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height)}.bs-popover-start>.popover-arrow:before,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow:before{right:0;border-left-color:var(--bs-popover-arrow-border)}.bs-popover-start>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow:after{right:var(--bs-popover-border-width);border-left-color:var(--bs-popover-bg)}.popover-header{padding:var(--bs-popover-header-padding-y) var(--bs-popover-header-padding-x);margin-bottom:0;font-size:var(--bs-popover-header-font-size);color:var(--bs-popover-header-color);background-color:var(--bs-popover-header-bg);border-bottom:var(--bs-popover-border-width) solid var(--bs-popover-border-color);border-top-left-radius:var(--bs-popover-inner-border-radius);border-top-right-radius:var(--bs-popover-inner-border-radius)}.popover-header:empty{display:none}.popover-body{padding:var(--bs-popover-body-padding-y) var(--bs-popover-body-padding-x);color:var(--bs-popover-body-color)}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner:after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:transform .6s ease-in-out}@media (prefers-reduced-motion: reduce){.carousel-item{transition:none}}.carousel-item.active,.carousel-item-next,.carousel-item-prev{display:block}.carousel-item-next:not(.carousel-item-start),.active.carousel-item-end{transform:translate(100%)}.carousel-item-prev:not(.carousel-item-end),.active.carousel-item-start{transform:translate(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item.active,.carousel-fade .carousel-item-next.carousel-item-start,.carousel-fade .carousel-item-prev.carousel-item-end{z-index:1;opacity:1}.carousel-fade .active.carousel-item-start,.carousel-fade .active.carousel-item-end{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion: reduce){.carousel-fade .active.carousel-item-start,.carousel-fade .active.carousel-item-end{transition:none}}.carousel-control-prev,.carousel-control-next{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;padding:0;color:#fff;text-align:center;background:none;border:0;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion: reduce){.carousel-control-prev,.carousel-control-next{transition:none}}.carousel-control-prev:hover,.carousel-control-prev:focus,.carousel-control-next:hover,.carousel-control-next:focus{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-prev-icon,.carousel-control-next-icon{display:inline-block;width:2rem;height:2rem;background-repeat:no-repeat;background-position:50%;background-size:100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:2;display:flex;justify-content:center;padding:0;margin-right:15%;margin-bottom:1rem;margin-left:15%}.carousel-indicators [data-bs-target]{box-sizing:content-box;flex:0 1 auto;width:30px;height:3px;padding:0;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border:0;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion: reduce){.carousel-indicators [data-bs-target]{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:1.25rem;left:15%;padding-top:1.25rem;padding-bottom:1.25rem;color:#fff;text-align:center}.carousel-dark .carousel-control-prev-icon,.carousel-dark .carousel-control-next-icon{filter:invert(1) grayscale(100)}.carousel-dark .carousel-indicators [data-bs-target]{background-color:#000}.carousel-dark .carousel-caption{color:#000}[data-bs-theme=dark] .carousel .carousel-control-prev-icon,[data-bs-theme=dark] .carousel .carousel-control-next-icon,[data-bs-theme=dark].carousel .carousel-control-prev-icon,[data-bs-theme=dark].carousel .carousel-control-next-icon{filter:invert(1) grayscale(100)}[data-bs-theme=dark] .carousel .carousel-indicators [data-bs-target],[data-bs-theme=dark].carousel .carousel-indicators [data-bs-target]{background-color:#000}[data-bs-theme=dark] .carousel .carousel-caption,[data-bs-theme=dark].carousel .carousel-caption{color:#000}.spinner-grow,.spinner-border{display:inline-block;width:var(--bs-spinner-width);height:var(--bs-spinner-height);vertical-align:var(--bs-spinner-vertical-align);border-radius:50%;animation:var(--bs-spinner-animation-speed) linear infinite var(--bs-spinner-animation-name)}@keyframes spinner-border{to{transform:rotate(360deg)}}.spinner-border{--bs-spinner-width: 2rem;--bs-spinner-height: 2rem;--bs-spinner-vertical-align: -.125em;--bs-spinner-border-width: .25em;--bs-spinner-animation-speed: .75s;--bs-spinner-animation-name: spinner-border;border:var(--bs-spinner-border-width) solid currentcolor;border-right-color:transparent}.spinner-border-sm{--bs-spinner-width: 1rem;--bs-spinner-height: 1rem;--bs-spinner-border-width: .2em}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{--bs-spinner-width: 2rem;--bs-spinner-height: 2rem;--bs-spinner-vertical-align: -.125em;--bs-spinner-animation-speed: .75s;--bs-spinner-animation-name: spinner-grow;background-color:currentcolor;opacity:0}.spinner-grow-sm{--bs-spinner-width: 1rem;--bs-spinner-height: 1rem}@media (prefers-reduced-motion: reduce){.spinner-border,.spinner-grow{--bs-spinner-animation-speed: 1.5s}}.offcanvas-sm,.offcanvas-md,.offcanvas-lg,.offcanvas-xl,.offcanvas-xxl,.offcanvas{--bs-offcanvas-zindex: 1045;--bs-offcanvas-width: 400px;--bs-offcanvas-height: 30vh;--bs-offcanvas-padding-x: 1rem;--bs-offcanvas-padding-y: 1rem;--bs-offcanvas-color: var(--bs-body-color);--bs-offcanvas-bg: var(--bs-body-bg);--bs-offcanvas-border-width: var(--bs-border-width);--bs-offcanvas-border-color: var(--bs-border-color-translucent);--bs-offcanvas-box-shadow: 0 .125rem .25rem rgba(0, 0, 0, .075);--bs-offcanvas-transition: transform .3s ease-in-out;--bs-offcanvas-title-line-height: 1.5}@media (max-width: 575.98px){.offcanvas-sm{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width: 575.98px) and (prefers-reduced-motion: reduce){.offcanvas-sm{transition:none}}@media (max-width: 575.98px){.offcanvas-sm.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(-100%)}.offcanvas-sm.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(100%)}.offcanvas-sm.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-sm.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-sm.showing,.offcanvas-sm.show:not(.hiding){transform:none}.offcanvas-sm.showing,.offcanvas-sm.hiding,.offcanvas-sm.show{visibility:visible}}@media (min-width: 576px){.offcanvas-sm{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:transparent!important}.offcanvas-sm .offcanvas-header{display:none}.offcanvas-sm .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width: 767.98px){.offcanvas-md{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width: 767.98px) and (prefers-reduced-motion: reduce){.offcanvas-md{transition:none}}@media (max-width: 767.98px){.offcanvas-md.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(-100%)}.offcanvas-md.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(100%)}.offcanvas-md.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-md.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-md.showing,.offcanvas-md.show:not(.hiding){transform:none}.offcanvas-md.showing,.offcanvas-md.hiding,.offcanvas-md.show{visibility:visible}}@media (min-width: 768px){.offcanvas-md{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:transparent!important}.offcanvas-md .offcanvas-header{display:none}.offcanvas-md .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width: 991.98px){.offcanvas-lg{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width: 991.98px) and (prefers-reduced-motion: reduce){.offcanvas-lg{transition:none}}@media (max-width: 991.98px){.offcanvas-lg.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(-100%)}.offcanvas-lg.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(100%)}.offcanvas-lg.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-lg.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-lg.showing,.offcanvas-lg.show:not(.hiding){transform:none}.offcanvas-lg.showing,.offcanvas-lg.hiding,.offcanvas-lg.show{visibility:visible}}@media (min-width: 992px){.offcanvas-lg{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:transparent!important}.offcanvas-lg .offcanvas-header{display:none}.offcanvas-lg .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width: 1199.98px){.offcanvas-xl{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width: 1199.98px) and (prefers-reduced-motion: reduce){.offcanvas-xl{transition:none}}@media (max-width: 1199.98px){.offcanvas-xl.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(-100%)}.offcanvas-xl.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(100%)}.offcanvas-xl.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-xl.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-xl.showing,.offcanvas-xl.show:not(.hiding){transform:none}.offcanvas-xl.showing,.offcanvas-xl.hiding,.offcanvas-xl.show{visibility:visible}}@media (min-width: 1200px){.offcanvas-xl{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:transparent!important}.offcanvas-xl .offcanvas-header{display:none}.offcanvas-xl .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width: 1399.98px){.offcanvas-xxl{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width: 1399.98px) and (prefers-reduced-motion: reduce){.offcanvas-xxl{transition:none}}@media (max-width: 1399.98px){.offcanvas-xxl.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(-100%)}.offcanvas-xxl.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(100%)}.offcanvas-xxl.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-xxl.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-xxl.showing,.offcanvas-xxl.show:not(.hiding){transform:none}.offcanvas-xxl.showing,.offcanvas-xxl.hiding,.offcanvas-xxl.show{visibility:visible}}@media (min-width: 1400px){.offcanvas-xxl{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:transparent!important}.offcanvas-xxl .offcanvas-header{display:none}.offcanvas-xxl .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}.offcanvas{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}@media (prefers-reduced-motion: reduce){.offcanvas{transition:none}}.offcanvas.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(-100%)}.offcanvas.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(100%)}.offcanvas.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas.showing,.offcanvas.show:not(.hiding){transform:none}.offcanvas.showing,.offcanvas.hiding,.offcanvas.show{visibility:visible}.offcanvas-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.offcanvas-backdrop.fade{opacity:0}.offcanvas-backdrop.show{opacity:.5}.offcanvas-header{display:flex;align-items:center;justify-content:space-between;padding:var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x)}.offcanvas-header .btn-close{padding:calc(var(--bs-offcanvas-padding-y) * .5) calc(var(--bs-offcanvas-padding-x) * .5);margin-top:calc(-.5 * var(--bs-offcanvas-padding-y));margin-right:calc(-.5 * var(--bs-offcanvas-padding-x));margin-bottom:calc(-.5 * var(--bs-offcanvas-padding-y))}.offcanvas-title{margin-bottom:0;line-height:var(--bs-offcanvas-title-line-height)}.offcanvas-body{flex-grow:1;padding:var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x);overflow-y:auto}.placeholder{display:inline-block;min-height:1em;vertical-align:middle;cursor:wait;background-color:currentcolor;opacity:.5}.placeholder.btn:before{display:inline-block;content:""}.placeholder-xs{min-height:.6em}.placeholder-sm{min-height:.8em}.placeholder-lg{min-height:1.2em}.placeholder-glow .placeholder{animation:placeholder-glow 2s ease-in-out infinite}@keyframes placeholder-glow{50%{opacity:.2}}.placeholder-wave{-webkit-mask-image:linear-gradient(130deg,#000 55%,rgba(0,0,0,.8) 75%,#000 95%);mask-image:linear-gradient(130deg,#000 55%,rgba(0,0,0,.8) 75%,#000 95%);-webkit-mask-size:200% 100%;mask-size:200% 100%;animation:placeholder-wave 2s linear infinite}@keyframes placeholder-wave{to{-webkit-mask-position:-200% 0%;mask-position:-200% 0%}}.clearfix:after{display:block;clear:both;content:""}.text-bg-primary{color:#fff!important;background-color:RGBA(var(--bs-primary-rgb),var(--bs-bg-opacity, 1))!important}.text-bg-secondary{color:#fff!important;background-color:RGBA(var(--bs-secondary-rgb),var(--bs-bg-opacity, 1))!important}.text-bg-success{color:#000!important;background-color:RGBA(var(--bs-success-rgb),var(--bs-bg-opacity, 1))!important}.text-bg-info{color:#000!important;background-color:RGBA(var(--bs-info-rgb),var(--bs-bg-opacity, 1))!important}.text-bg-warning{color:#000!important;background-color:RGBA(var(--bs-warning-rgb),var(--bs-bg-opacity, 1))!important}.text-bg-danger{color:#000!important;background-color:RGBA(var(--bs-danger-rgb),var(--bs-bg-opacity, 1))!important}.text-bg-light{color:#000!important;background-color:RGBA(var(--bs-light-rgb),var(--bs-bg-opacity, 1))!important}.text-bg-dark{color:#fff!important;background-color:RGBA(var(--bs-dark-rgb),var(--bs-bg-opacity, 1))!important}.link-primary{color:RGBA(var(--bs-primary-rgb),var(--bs-link-opacity, 1))!important;text-decoration-color:RGBA(var(--bs-primary-rgb),var(--bs-link-underline-opacity, 1))!important}.link-primary:hover,.link-primary:focus{color:RGBA(0,66,163,var(--bs-link-opacity, 1))!important;text-decoration-color:RGBA(0,66,163,var(--bs-link-underline-opacity, 1))!important}.link-secondary{color:RGBA(var(--bs-secondary-rgb),var(--bs-link-opacity, 1))!important;text-decoration-color:RGBA(var(--bs-secondary-rgb),var(--bs-link-underline-opacity, 1))!important}.link-secondary:hover,.link-secondary:focus{color:RGBA(81,67,154,var(--bs-link-opacity, 1))!important;text-decoration-color:RGBA(81,67,154,var(--bs-link-underline-opacity, 1))!important}.link-success{color:RGBA(var(--bs-success-rgb),var(--bs-link-opacity, 1))!important;text-decoration-color:RGBA(var(--bs-success-rgb),var(--bs-link-underline-opacity, 1))!important}.link-success:hover,.link-success:focus{color:RGBA(94,194,152,var(--bs-link-opacity, 1))!important;text-decoration-color:RGBA(94,194,152,var(--bs-link-underline-opacity, 1))!important}.link-info{color:RGBA(var(--bs-info-rgb),var(--bs-link-opacity, 1))!important;text-decoration-color:RGBA(var(--bs-info-rgb),var(--bs-link-underline-opacity, 1))!important}.link-info:hover,.link-info:focus{color:RGBA(194,200,209,var(--bs-link-opacity, 1))!important;text-decoration-color:RGBA(194,200,209,var(--bs-link-underline-opacity, 1))!important}.link-warning{color:RGBA(var(--bs-warning-rgb),var(--bs-link-opacity, 1))!important;text-decoration-color:RGBA(var(--bs-warning-rgb),var(--bs-link-underline-opacity, 1))!important}.link-warning:hover,.link-warning:focus{color:RGBA(255,188,51,var(--bs-link-opacity, 1))!important;text-decoration-color:RGBA(255,188,51,var(--bs-link-underline-opacity, 1))!important}.link-danger{color:RGBA(var(--bs-danger-rgb),var(--bs-link-opacity, 1))!important;text-decoration-color:RGBA(var(--bs-danger-rgb),var(--bs-link-underline-opacity, 1))!important}.link-danger:hover,.link-danger:focus{color:RGBA(255,120,89,var(--bs-link-opacity, 1))!important;text-decoration-color:RGBA(255,120,89,var(--bs-link-underline-opacity, 1))!important}.link-light{color:RGBA(var(--bs-light-rgb),var(--bs-link-opacity, 1))!important;text-decoration-color:RGBA(var(--bs-light-rgb),var(--bs-link-underline-opacity, 1))!important}.link-light:hover,.link-light:focus{color:RGBA(246,247,249,var(--bs-link-opacity, 1))!important;text-decoration-color:RGBA(246,247,249,var(--bs-link-underline-opacity, 1))!important}.link-dark{color:RGBA(var(--bs-dark-rgb),var(--bs-link-opacity, 1))!important;text-decoration-color:RGBA(var(--bs-dark-rgb),var(--bs-link-underline-opacity, 1))!important}.link-dark:hover,.link-dark:focus{color:RGBA(26,30,33,var(--bs-link-opacity, 1))!important;text-decoration-color:RGBA(26,30,33,var(--bs-link-underline-opacity, 1))!important}.link-body-emphasis{color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-opacity, 1))!important;text-decoration-color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-underline-opacity, 1))!important}.link-body-emphasis:hover,.link-body-emphasis:focus{color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-opacity, .75))!important;text-decoration-color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-underline-opacity, .75))!important}.focus-ring:focus{outline:0;box-shadow:var(--bs-focus-ring-x, 0) var(--bs-focus-ring-y, 0) var(--bs-focus-ring-blur, 0) var(--bs-focus-ring-width) var(--bs-focus-ring-color)}.icon-link{display:inline-flex;gap:.375rem;align-items:center;text-decoration-color:rgba(var(--bs-link-color-rgb),var(--bs-link-opacity, .5));text-underline-offset:.25em;-webkit-backface-visibility:hidden;backface-visibility:hidden}.icon-link>.bi{flex-shrink:0;width:1em;height:1em;fill:currentcolor;transition:.2s ease-in-out transform}@media (prefers-reduced-motion: reduce){.icon-link>.bi{transition:none}}.icon-link-hover:hover>.bi,.icon-link-hover:focus-visible>.bi{transform:var(--bs-icon-link-transform, translate3d(.25em, 0, 0))}.ratio{position:relative;width:100%}.ratio:before{display:block;padding-top:var(--bs-aspect-ratio);content:""}.ratio>*{position:absolute;top:0;left:0;width:100%;height:100%}.ratio-1x1{--bs-aspect-ratio: 100%}.ratio-4x3{--bs-aspect-ratio: 75%}.ratio-16x9{--bs-aspect-ratio: 56.25%}.ratio-21x9{--bs-aspect-ratio: 42.8571428571%}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}.sticky-top{position:sticky;top:0;z-index:1020}.sticky-bottom{position:sticky;bottom:0;z-index:1020}@media (min-width: 576px){.sticky-sm-top{position:sticky;top:0;z-index:1020}.sticky-sm-bottom{position:sticky;bottom:0;z-index:1020}}@media (min-width: 768px){.sticky-md-top{position:sticky;top:0;z-index:1020}.sticky-md-bottom{position:sticky;bottom:0;z-index:1020}}@media (min-width: 992px){.sticky-lg-top{position:sticky;top:0;z-index:1020}.sticky-lg-bottom{position:sticky;bottom:0;z-index:1020}}@media (min-width: 1200px){.sticky-xl-top{position:sticky;top:0;z-index:1020}.sticky-xl-bottom{position:sticky;bottom:0;z-index:1020}}@media (min-width: 1400px){.sticky-xxl-top{position:sticky;top:0;z-index:1020}.sticky-xxl-bottom{position:sticky;bottom:0;z-index:1020}}.hstack{display:flex;flex-direction:row;align-items:center;align-self:stretch}.vstack{display:flex;flex:1 1 auto;flex-direction:column;align-self:stretch}.visually-hidden,.visually-hidden-focusable:not(:focus):not(:focus-within){width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.visually-hidden:not(caption),.visually-hidden-focusable:not(:focus):not(:focus-within):not(caption){position:absolute!important}.stretched-link:after{position:absolute;inset:0;z-index:1;content:""}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vr{display:inline-block;align-self:stretch;width:var(--bs-border-width);min-height:1em;background-color:currentcolor;opacity:.25}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.float-start{float:left!important}.float-end{float:right!important}.float-none{float:none!important}.object-fit-contain{object-fit:contain!important}.object-fit-cover{object-fit:cover!important}.object-fit-fill{object-fit:fill!important}.object-fit-scale{object-fit:scale-down!important}.object-fit-none{object-fit:none!important}.opacity-0{opacity:0!important}.opacity-25{opacity:.25!important}.opacity-50{opacity:.5!important}.opacity-75{opacity:.75!important}.opacity-100{opacity:1!important}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.overflow-visible{overflow:visible!important}.overflow-scroll{overflow:scroll!important}.overflow-x-auto{overflow-x:auto!important}.overflow-x-hidden{overflow-x:hidden!important}.overflow-x-visible{overflow-x:visible!important}.overflow-x-scroll{overflow-x:scroll!important}.overflow-y-auto{overflow-y:auto!important}.overflow-y-hidden{overflow-y:hidden!important}.overflow-y-visible{overflow-y:visible!important}.overflow-y-scroll{overflow-y:scroll!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-grid{display:grid!important}.d-inline-grid{display:inline-grid!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}.d-none{display:none!important}.shadow{box-shadow:0 .5rem 1rem #00000026!important}.shadow-sm{box-shadow:0 .125rem .25rem #00000013!important}.shadow-lg{box-shadow:0 1rem 3rem #0000002d!important}.shadow-none{box-shadow:none!important}.focus-ring-primary{--bs-focus-ring-color: rgba(var(--bs-primary-rgb), var(--bs-focus-ring-opacity))}.focus-ring-secondary{--bs-focus-ring-color: rgba(var(--bs-secondary-rgb), var(--bs-focus-ring-opacity))}.focus-ring-success{--bs-focus-ring-color: rgba(var(--bs-success-rgb), var(--bs-focus-ring-opacity))}.focus-ring-info{--bs-focus-ring-color: rgba(var(--bs-info-rgb), var(--bs-focus-ring-opacity))}.focus-ring-warning{--bs-focus-ring-color: rgba(var(--bs-warning-rgb), var(--bs-focus-ring-opacity))}.focus-ring-danger{--bs-focus-ring-color: rgba(var(--bs-danger-rgb), var(--bs-focus-ring-opacity))}.focus-ring-light{--bs-focus-ring-color: rgba(var(--bs-light-rgb), var(--bs-focus-ring-opacity))}.focus-ring-dark{--bs-focus-ring-color: rgba(var(--bs-dark-rgb), var(--bs-focus-ring-opacity))}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:sticky!important}.top-0{top:0!important}.top-50{top:50%!important}.top-100{top:100%!important}.bottom-0{bottom:0!important}.bottom-50{bottom:50%!important}.bottom-100{bottom:100%!important}.start-0{left:0!important}.start-50{left:50%!important}.start-100{left:100%!important}.end-0{right:0!important}.end-50{right:50%!important}.end-100{right:100%!important}.translate-middle{transform:translate(-50%,-50%)!important}.translate-middle-x{transform:translate(-50%)!important}.translate-middle-y{transform:translateY(-50%)!important}.border{border:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-0{border:0!important}.border-top{border-top:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-top-0{border-top:0!important}.border-end{border-right:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-end-0{border-right:0!important}.border-bottom{border-bottom:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-bottom-0{border-bottom:0!important}.border-start{border-left:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-start-0{border-left:0!important}.border-primary{--bs-border-opacity: 1;border-color:rgba(var(--bs-primary-rgb),var(--bs-border-opacity))!important}.border-secondary{--bs-border-opacity: 1;border-color:rgba(var(--bs-secondary-rgb),var(--bs-border-opacity))!important}.border-success{--bs-border-opacity: 1;border-color:rgba(var(--bs-success-rgb),var(--bs-border-opacity))!important}.border-info{--bs-border-opacity: 1;border-color:rgba(var(--bs-info-rgb),var(--bs-border-opacity))!important}.border-warning{--bs-border-opacity: 1;border-color:rgba(var(--bs-warning-rgb),var(--bs-border-opacity))!important}.border-danger{--bs-border-opacity: 1;border-color:rgba(var(--bs-danger-rgb),var(--bs-border-opacity))!important}.border-light{--bs-border-opacity: 1;border-color:rgba(var(--bs-light-rgb),var(--bs-border-opacity))!important}.border-dark{--bs-border-opacity: 1;border-color:rgba(var(--bs-dark-rgb),var(--bs-border-opacity))!important}.border-black{--bs-border-opacity: 1;border-color:rgba(var(--bs-black-rgb),var(--bs-border-opacity))!important}.border-white{--bs-border-opacity: 1;border-color:rgba(var(--bs-white-rgb),var(--bs-border-opacity))!important}.border-primary-subtle{border-color:var(--bs-primary-border-subtle)!important}.border-secondary-subtle{border-color:var(--bs-secondary-border-subtle)!important}.border-success-subtle{border-color:var(--bs-success-border-subtle)!important}.border-info-subtle{border-color:var(--bs-info-border-subtle)!important}.border-warning-subtle{border-color:var(--bs-warning-border-subtle)!important}.border-danger-subtle{border-color:var(--bs-danger-border-subtle)!important}.border-light-subtle{border-color:var(--bs-light-border-subtle)!important}.border-dark-subtle{border-color:var(--bs-dark-border-subtle)!important}.border-1{border-width:1px!important}.border-2{border-width:2px!important}.border-3{border-width:3px!important}.border-4{border-width:4px!important}.border-5{border-width:5px!important}.border-opacity-10{--bs-border-opacity: .1}.border-opacity-25{--bs-border-opacity: .25}.border-opacity-50{--bs-border-opacity: .5}.border-opacity-75{--bs-border-opacity: .75}.border-opacity-100{--bs-border-opacity: 1}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.mw-100{max-width:100%!important}.vw-100{width:100vw!important}.min-vw-100{min-width:100vw!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mh-100{max-height:100%!important}.vh-100{height:100vh!important}.min-vh-100{min-height:100vh!important}.flex-fill{flex:1 1 auto!important}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.justify-content-evenly{justify-content:space-evenly!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}.order-first{order:-1!important}.order-0{order:0!important}.order-1{order:1!important}.order-2{order:2!important}.order-3{order:3!important}.order-4{order:4!important}.order-5{order:5!important}.order-last{order:6!important}.m-0{margin:0!important}.m-1{margin:.25rem!important}.m-2{margin:.5rem!important}.m-3{margin:1rem!important}.m-4{margin:1.5rem!important}.m-5{margin:3rem!important}.m-auto{margin:auto!important}.mx-0{margin-right:0!important;margin-left:0!important}.mx-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-3{margin-right:1rem!important;margin-left:1rem!important}.mx-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-5{margin-right:3rem!important;margin-left:3rem!important}.mx-auto{margin-right:auto!important;margin-left:auto!important}.my-0{margin-top:0!important;margin-bottom:0!important}.my-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-0{margin-top:0!important}.mt-1{margin-top:.25rem!important}.mt-2{margin-top:.5rem!important}.mt-3{margin-top:1rem!important}.mt-4{margin-top:1.5rem!important}.mt-5{margin-top:3rem!important}.mt-auto{margin-top:auto!important}.me-0{margin-right:0!important}.me-1{margin-right:.25rem!important}.me-2{margin-right:.5rem!important}.me-3{margin-right:1rem!important}.me-4{margin-right:1.5rem!important}.me-5{margin-right:3rem!important}.me-auto{margin-right:auto!important}.mb-0{margin-bottom:0!important}.mb-1{margin-bottom:.25rem!important}.mb-2{margin-bottom:.5rem!important}.mb-3{margin-bottom:1rem!important}.mb-4{margin-bottom:1.5rem!important}.mb-5{margin-bottom:3rem!important}.mb-auto{margin-bottom:auto!important}.ms-0{margin-left:0!important}.ms-1{margin-left:.25rem!important}.ms-2{margin-left:.5rem!important}.ms-3{margin-left:1rem!important}.ms-4{margin-left:1.5rem!important}.ms-5{margin-left:3rem!important}.ms-auto{margin-left:auto!important}.p-0{padding:0!important}.p-1{padding:.25rem!important}.p-2{padding:.5rem!important}.p-3{padding:1rem!important}.p-4{padding:1.5rem!important}.p-5{padding:3rem!important}.px-0{padding-right:0!important;padding-left:0!important}.px-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-3{padding-right:1rem!important;padding-left:1rem!important}.px-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-5{padding-right:3rem!important;padding-left:3rem!important}.py-0{padding-top:0!important;padding-bottom:0!important}.py-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-0{padding-top:0!important}.pt-1{padding-top:.25rem!important}.pt-2{padding-top:.5rem!important}.pt-3{padding-top:1rem!important}.pt-4{padding-top:1.5rem!important}.pt-5{padding-top:3rem!important}.pe-0{padding-right:0!important}.pe-1{padding-right:.25rem!important}.pe-2{padding-right:.5rem!important}.pe-3{padding-right:1rem!important}.pe-4{padding-right:1.5rem!important}.pe-5{padding-right:3rem!important}.pb-0{padding-bottom:0!important}.pb-1{padding-bottom:.25rem!important}.pb-2{padding-bottom:.5rem!important}.pb-3{padding-bottom:1rem!important}.pb-4{padding-bottom:1.5rem!important}.pb-5{padding-bottom:3rem!important}.ps-0{padding-left:0!important}.ps-1{padding-left:.25rem!important}.ps-2{padding-left:.5rem!important}.ps-3{padding-left:1rem!important}.ps-4{padding-left:1.5rem!important}.ps-5{padding-left:3rem!important}.gap-0{gap:0!important}.gap-1{gap:.25rem!important}.gap-2{gap:.5rem!important}.gap-3{gap:1rem!important}.gap-4{gap:1.5rem!important}.gap-5{gap:3rem!important}.row-gap-0{row-gap:0!important}.row-gap-1{row-gap:.25rem!important}.row-gap-2{row-gap:.5rem!important}.row-gap-3{row-gap:1rem!important}.row-gap-4{row-gap:1.5rem!important}.row-gap-5{row-gap:3rem!important}.column-gap-0{column-gap:0!important}.column-gap-1{column-gap:.25rem!important}.column-gap-2{column-gap:.5rem!important}.column-gap-3{column-gap:1rem!important}.column-gap-4{column-gap:1.5rem!important}.column-gap-5{column-gap:3rem!important}.font-monospace{font-family:var(--bs-font-monospace)!important}.fs-1{font-size:calc(1.375rem + 1.5vw)!important}.fs-2{font-size:calc(1.325rem + .9vw)!important}.fs-3{font-size:calc(1.3rem + .6vw)!important}.fs-4{font-size:calc(1.275rem + .3vw)!important}.fs-5{font-size:1.25rem!important}.fs-6{font-size:1rem!important}.fst-italic{font-style:italic!important}.fst-normal{font-style:normal!important}.fw-lighter{font-weight:lighter!important}.fw-light{font-weight:300!important}.fw-normal{font-weight:400!important}.fw-medium{font-weight:500!important}.fw-semibold{font-weight:600!important}.fw-bold{font-weight:700!important}.fw-bolder{font-weight:bolder!important}.lh-1{line-height:1!important}.lh-sm{line-height:1.25!important}.lh-base{line-height:1.5!important}.lh-lg{line-height:2!important}.text-start{text-align:left!important}.text-end{text-align:right!important}.text-center{text-align:center!important}.text-decoration-none{text-decoration:none!important}.text-decoration-underline{text-decoration:underline!important}.text-decoration-line-through{text-decoration:line-through!important}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-break{word-wrap:break-word!important;word-break:break-word!important}.text-primary{--bs-text-opacity: 1;color:rgba(var(--bs-primary-rgb),var(--bs-text-opacity))!important}.text-secondary{--bs-text-opacity: 1;color:rgba(var(--bs-secondary-rgb),var(--bs-text-opacity))!important}.text-success{--bs-text-opacity: 1;color:rgba(var(--bs-success-rgb),var(--bs-text-opacity))!important}.text-info{--bs-text-opacity: 1;color:rgba(var(--bs-info-rgb),var(--bs-text-opacity))!important}.text-warning{--bs-text-opacity: 1;color:rgba(var(--bs-warning-rgb),var(--bs-text-opacity))!important}.text-danger{--bs-text-opacity: 1;color:rgba(var(--bs-danger-rgb),var(--bs-text-opacity))!important}.text-light{--bs-text-opacity: 1;color:rgba(var(--bs-light-rgb),var(--bs-text-opacity))!important}.text-dark{--bs-text-opacity: 1;color:rgba(var(--bs-dark-rgb),var(--bs-text-opacity))!important}.text-black{--bs-text-opacity: 1;color:rgba(var(--bs-black-rgb),var(--bs-text-opacity))!important}.text-white{--bs-text-opacity: 1;color:rgba(var(--bs-white-rgb),var(--bs-text-opacity))!important}.text-body{--bs-text-opacity: 1;color:rgba(var(--bs-body-color-rgb),var(--bs-text-opacity))!important}.text-muted{--bs-text-opacity: 1;color:var(--bs-secondary-color)!important}.text-black-50{--bs-text-opacity: 1;color:#00000080!important}.text-white-50{--bs-text-opacity: 1;color:#ffffff80!important}.text-body-secondary{--bs-text-opacity: 1;color:var(--bs-secondary-color)!important}.text-body-tertiary{--bs-text-opacity: 1;color:var(--bs-tertiary-color)!important}.text-body-emphasis{--bs-text-opacity: 1;color:var(--bs-emphasis-color)!important}.text-reset{--bs-text-opacity: 1;color:inherit!important}.text-opacity-25{--bs-text-opacity: .25}.text-opacity-50{--bs-text-opacity: .5}.text-opacity-75{--bs-text-opacity: .75}.text-opacity-100{--bs-text-opacity: 1}.text-primary-emphasis{color:var(--bs-primary-text-emphasis)!important}.text-secondary-emphasis{color:var(--bs-secondary-text-emphasis)!important}.text-success-emphasis{color:var(--bs-success-text-emphasis)!important}.text-info-emphasis{color:var(--bs-info-text-emphasis)!important}.text-warning-emphasis{color:var(--bs-warning-text-emphasis)!important}.text-danger-emphasis{color:var(--bs-danger-text-emphasis)!important}.text-light-emphasis{color:var(--bs-light-text-emphasis)!important}.text-dark-emphasis{color:var(--bs-dark-text-emphasis)!important}.link-opacity-10,.link-opacity-10-hover:hover{--bs-link-opacity: .1}.link-opacity-25,.link-opacity-25-hover:hover{--bs-link-opacity: .25}.link-opacity-50,.link-opacity-50-hover:hover{--bs-link-opacity: .5}.link-opacity-75,.link-opacity-75-hover:hover{--bs-link-opacity: .75}.link-opacity-100,.link-opacity-100-hover:hover{--bs-link-opacity: 1}.link-offset-1,.link-offset-1-hover:hover{text-underline-offset:.125em!important}.link-offset-2,.link-offset-2-hover:hover{text-underline-offset:.25em!important}.link-offset-3,.link-offset-3-hover:hover{text-underline-offset:.375em!important}.link-underline-primary{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-primary-rgb),var(--bs-link-underline-opacity))!important}.link-underline-secondary{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-secondary-rgb),var(--bs-link-underline-opacity))!important}.link-underline-success{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-success-rgb),var(--bs-link-underline-opacity))!important}.link-underline-info{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-info-rgb),var(--bs-link-underline-opacity))!important}.link-underline-warning{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-warning-rgb),var(--bs-link-underline-opacity))!important}.link-underline-danger{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-danger-rgb),var(--bs-link-underline-opacity))!important}.link-underline-light{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-light-rgb),var(--bs-link-underline-opacity))!important}.link-underline-dark{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-dark-rgb),var(--bs-link-underline-opacity))!important}.link-underline{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-link-color-rgb),var(--bs-link-underline-opacity, 1))!important}.link-underline-opacity-0,.link-underline-opacity-0-hover:hover{--bs-link-underline-opacity: 0}.link-underline-opacity-10,.link-underline-opacity-10-hover:hover{--bs-link-underline-opacity: .1}.link-underline-opacity-25,.link-underline-opacity-25-hover:hover{--bs-link-underline-opacity: .25}.link-underline-opacity-50,.link-underline-opacity-50-hover:hover{--bs-link-underline-opacity: .5}.link-underline-opacity-75,.link-underline-opacity-75-hover:hover{--bs-link-underline-opacity: .75}.link-underline-opacity-100,.link-underline-opacity-100-hover:hover{--bs-link-underline-opacity: 1}.bg-primary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-primary-rgb),var(--bs-bg-opacity))!important}.bg-secondary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-secondary-rgb),var(--bs-bg-opacity))!important}.bg-success{--bs-bg-opacity: 1;background-color:rgba(var(--bs-success-rgb),var(--bs-bg-opacity))!important}.bg-info{--bs-bg-opacity: 1;background-color:rgba(var(--bs-info-rgb),var(--bs-bg-opacity))!important}.bg-warning{--bs-bg-opacity: 1;background-color:rgba(var(--bs-warning-rgb),var(--bs-bg-opacity))!important}.bg-danger{--bs-bg-opacity: 1;background-color:rgba(var(--bs-danger-rgb),var(--bs-bg-opacity))!important}.bg-light{--bs-bg-opacity: 1;background-color:rgba(var(--bs-light-rgb),var(--bs-bg-opacity))!important}.bg-dark{--bs-bg-opacity: 1;background-color:rgba(var(--bs-dark-rgb),var(--bs-bg-opacity))!important}.bg-black{--bs-bg-opacity: 1;background-color:rgba(var(--bs-black-rgb),var(--bs-bg-opacity))!important}.bg-white{--bs-bg-opacity: 1;background-color:rgba(var(--bs-white-rgb),var(--bs-bg-opacity))!important}.bg-body{--bs-bg-opacity: 1;background-color:rgba(var(--bs-body-bg-rgb),var(--bs-bg-opacity))!important}.bg-transparent{--bs-bg-opacity: 1;background-color:transparent!important}.bg-body-secondary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-secondary-bg-rgb),var(--bs-bg-opacity))!important}.bg-body-tertiary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-tertiary-bg-rgb),var(--bs-bg-opacity))!important}.bg-opacity-10{--bs-bg-opacity: .1}.bg-opacity-25{--bs-bg-opacity: .25}.bg-opacity-50{--bs-bg-opacity: .5}.bg-opacity-75{--bs-bg-opacity: .75}.bg-opacity-100{--bs-bg-opacity: 1}.bg-primary-subtle{background-color:var(--bs-primary-bg-subtle)!important}.bg-secondary-subtle{background-color:var(--bs-secondary-bg-subtle)!important}.bg-success-subtle{background-color:var(--bs-success-bg-subtle)!important}.bg-info-subtle{background-color:var(--bs-info-bg-subtle)!important}.bg-warning-subtle{background-color:var(--bs-warning-bg-subtle)!important}.bg-danger-subtle{background-color:var(--bs-danger-bg-subtle)!important}.bg-light-subtle{background-color:var(--bs-light-bg-subtle)!important}.bg-dark-subtle{background-color:var(--bs-dark-bg-subtle)!important}.bg-gradient{background-image:var(--bs-gradient)!important}.user-select-all{-webkit-user-select:all!important;user-select:all!important}.user-select-auto{-webkit-user-select:auto!important;user-select:auto!important}.user-select-none{-webkit-user-select:none!important;user-select:none!important}.pe-none{pointer-events:none!important}.pe-auto{pointer-events:auto!important}.rounded{border-radius:var(--bs-border-radius)!important}.rounded-0{border-radius:0!important}.rounded-1{border-radius:var(--bs-border-radius-sm)!important}.rounded-2{border-radius:var(--bs-border-radius)!important}.rounded-3{border-radius:var(--bs-border-radius-lg)!important}.rounded-4{border-radius:var(--bs-border-radius-xl)!important}.rounded-5{border-radius:var(--bs-border-radius-xxl)!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:var(--bs-border-radius-pill)!important}.rounded-top{border-top-left-radius:var(--bs-border-radius)!important;border-top-right-radius:var(--bs-border-radius)!important}.rounded-top-0{border-top-left-radius:0!important;border-top-right-radius:0!important}.rounded-top-1{border-top-left-radius:var(--bs-border-radius-sm)!important;border-top-right-radius:var(--bs-border-radius-sm)!important}.rounded-top-2{border-top-left-radius:var(--bs-border-radius)!important;border-top-right-radius:var(--bs-border-radius)!important}.rounded-top-3{border-top-left-radius:var(--bs-border-radius-lg)!important;border-top-right-radius:var(--bs-border-radius-lg)!important}.rounded-top-4{border-top-left-radius:var(--bs-border-radius-xl)!important;border-top-right-radius:var(--bs-border-radius-xl)!important}.rounded-top-5{border-top-left-radius:var(--bs-border-radius-xxl)!important;border-top-right-radius:var(--bs-border-radius-xxl)!important}.rounded-top-circle{border-top-left-radius:50%!important;border-top-right-radius:50%!important}.rounded-top-pill{border-top-left-radius:var(--bs-border-radius-pill)!important;border-top-right-radius:var(--bs-border-radius-pill)!important}.rounded-end{border-top-right-radius:var(--bs-border-radius)!important;border-bottom-right-radius:var(--bs-border-radius)!important}.rounded-end-0{border-top-right-radius:0!important;border-bottom-right-radius:0!important}.rounded-end-1{border-top-right-radius:var(--bs-border-radius-sm)!important;border-bottom-right-radius:var(--bs-border-radius-sm)!important}.rounded-end-2{border-top-right-radius:var(--bs-border-radius)!important;border-bottom-right-radius:var(--bs-border-radius)!important}.rounded-end-3{border-top-right-radius:var(--bs-border-radius-lg)!important;border-bottom-right-radius:var(--bs-border-radius-lg)!important}.rounded-end-4{border-top-right-radius:var(--bs-border-radius-xl)!important;border-bottom-right-radius:var(--bs-border-radius-xl)!important}.rounded-end-5{border-top-right-radius:var(--bs-border-radius-xxl)!important;border-bottom-right-radius:var(--bs-border-radius-xxl)!important}.rounded-end-circle{border-top-right-radius:50%!important;border-bottom-right-radius:50%!important}.rounded-end-pill{border-top-right-radius:var(--bs-border-radius-pill)!important;border-bottom-right-radius:var(--bs-border-radius-pill)!important}.rounded-bottom{border-bottom-right-radius:var(--bs-border-radius)!important;border-bottom-left-radius:var(--bs-border-radius)!important}.rounded-bottom-0{border-bottom-right-radius:0!important;border-bottom-left-radius:0!important}.rounded-bottom-1{border-bottom-right-radius:var(--bs-border-radius-sm)!important;border-bottom-left-radius:var(--bs-border-radius-sm)!important}.rounded-bottom-2{border-bottom-right-radius:var(--bs-border-radius)!important;border-bottom-left-radius:var(--bs-border-radius)!important}.rounded-bottom-3{border-bottom-right-radius:var(--bs-border-radius-lg)!important;border-bottom-left-radius:var(--bs-border-radius-lg)!important}.rounded-bottom-4{border-bottom-right-radius:var(--bs-border-radius-xl)!important;border-bottom-left-radius:var(--bs-border-radius-xl)!important}.rounded-bottom-5{border-bottom-right-radius:var(--bs-border-radius-xxl)!important;border-bottom-left-radius:var(--bs-border-radius-xxl)!important}.rounded-bottom-circle{border-bottom-right-radius:50%!important;border-bottom-left-radius:50%!important}.rounded-bottom-pill{border-bottom-right-radius:var(--bs-border-radius-pill)!important;border-bottom-left-radius:var(--bs-border-radius-pill)!important}.rounded-start{border-bottom-left-radius:var(--bs-border-radius)!important;border-top-left-radius:var(--bs-border-radius)!important}.rounded-start-0{border-bottom-left-radius:0!important;border-top-left-radius:0!important}.rounded-start-1{border-bottom-left-radius:var(--bs-border-radius-sm)!important;border-top-left-radius:var(--bs-border-radius-sm)!important}.rounded-start-2{border-bottom-left-radius:var(--bs-border-radius)!important;border-top-left-radius:var(--bs-border-radius)!important}.rounded-start-3{border-bottom-left-radius:var(--bs-border-radius-lg)!important;border-top-left-radius:var(--bs-border-radius-lg)!important}.rounded-start-4{border-bottom-left-radius:var(--bs-border-radius-xl)!important;border-top-left-radius:var(--bs-border-radius-xl)!important}.rounded-start-5{border-bottom-left-radius:var(--bs-border-radius-xxl)!important;border-top-left-radius:var(--bs-border-radius-xxl)!important}.rounded-start-circle{border-bottom-left-radius:50%!important;border-top-left-radius:50%!important}.rounded-start-pill{border-bottom-left-radius:var(--bs-border-radius-pill)!important;border-top-left-radius:var(--bs-border-radius-pill)!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}.z-n1{z-index:-1!important}.z-0{z-index:0!important}.z-1{z-index:1!important}.z-2{z-index:2!important}.z-3{z-index:3!important}@media (min-width: 576px){.float-sm-start{float:left!important}.float-sm-end{float:right!important}.float-sm-none{float:none!important}.object-fit-sm-contain{object-fit:contain!important}.object-fit-sm-cover{object-fit:cover!important}.object-fit-sm-fill{object-fit:fill!important}.object-fit-sm-scale{object-fit:scale-down!important}.object-fit-sm-none{object-fit:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-grid{display:grid!important}.d-sm-inline-grid{display:inline-grid!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}.d-sm-none{display:none!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.justify-content-sm-evenly{justify-content:space-evenly!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}.order-sm-first{order:-1!important}.order-sm-0{order:0!important}.order-sm-1{order:1!important}.order-sm-2{order:2!important}.order-sm-3{order:3!important}.order-sm-4{order:4!important}.order-sm-5{order:5!important}.order-sm-last{order:6!important}.m-sm-0{margin:0!important}.m-sm-1{margin:.25rem!important}.m-sm-2{margin:.5rem!important}.m-sm-3{margin:1rem!important}.m-sm-4{margin:1.5rem!important}.m-sm-5{margin:3rem!important}.m-sm-auto{margin:auto!important}.mx-sm-0{margin-right:0!important;margin-left:0!important}.mx-sm-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-sm-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-sm-3{margin-right:1rem!important;margin-left:1rem!important}.mx-sm-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-sm-5{margin-right:3rem!important;margin-left:3rem!important}.mx-sm-auto{margin-right:auto!important;margin-left:auto!important}.my-sm-0{margin-top:0!important;margin-bottom:0!important}.my-sm-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-sm-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-sm-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-sm-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-sm-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-sm-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-sm-0{margin-top:0!important}.mt-sm-1{margin-top:.25rem!important}.mt-sm-2{margin-top:.5rem!important}.mt-sm-3{margin-top:1rem!important}.mt-sm-4{margin-top:1.5rem!important}.mt-sm-5{margin-top:3rem!important}.mt-sm-auto{margin-top:auto!important}.me-sm-0{margin-right:0!important}.me-sm-1{margin-right:.25rem!important}.me-sm-2{margin-right:.5rem!important}.me-sm-3{margin-right:1rem!important}.me-sm-4{margin-right:1.5rem!important}.me-sm-5{margin-right:3rem!important}.me-sm-auto{margin-right:auto!important}.mb-sm-0{margin-bottom:0!important}.mb-sm-1{margin-bottom:.25rem!important}.mb-sm-2{margin-bottom:.5rem!important}.mb-sm-3{margin-bottom:1rem!important}.mb-sm-4{margin-bottom:1.5rem!important}.mb-sm-5{margin-bottom:3rem!important}.mb-sm-auto{margin-bottom:auto!important}.ms-sm-0{margin-left:0!important}.ms-sm-1{margin-left:.25rem!important}.ms-sm-2{margin-left:.5rem!important}.ms-sm-3{margin-left:1rem!important}.ms-sm-4{margin-left:1.5rem!important}.ms-sm-5{margin-left:3rem!important}.ms-sm-auto{margin-left:auto!important}.p-sm-0{padding:0!important}.p-sm-1{padding:.25rem!important}.p-sm-2{padding:.5rem!important}.p-sm-3{padding:1rem!important}.p-sm-4{padding:1.5rem!important}.p-sm-5{padding:3rem!important}.px-sm-0{padding-right:0!important;padding-left:0!important}.px-sm-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-sm-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-sm-3{padding-right:1rem!important;padding-left:1rem!important}.px-sm-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-sm-5{padding-right:3rem!important;padding-left:3rem!important}.py-sm-0{padding-top:0!important;padding-bottom:0!important}.py-sm-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-sm-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-sm-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-sm-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-sm-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-sm-0{padding-top:0!important}.pt-sm-1{padding-top:.25rem!important}.pt-sm-2{padding-top:.5rem!important}.pt-sm-3{padding-top:1rem!important}.pt-sm-4{padding-top:1.5rem!important}.pt-sm-5{padding-top:3rem!important}.pe-sm-0{padding-right:0!important}.pe-sm-1{padding-right:.25rem!important}.pe-sm-2{padding-right:.5rem!important}.pe-sm-3{padding-right:1rem!important}.pe-sm-4{padding-right:1.5rem!important}.pe-sm-5{padding-right:3rem!important}.pb-sm-0{padding-bottom:0!important}.pb-sm-1{padding-bottom:.25rem!important}.pb-sm-2{padding-bottom:.5rem!important}.pb-sm-3{padding-bottom:1rem!important}.pb-sm-4{padding-bottom:1.5rem!important}.pb-sm-5{padding-bottom:3rem!important}.ps-sm-0{padding-left:0!important}.ps-sm-1{padding-left:.25rem!important}.ps-sm-2{padding-left:.5rem!important}.ps-sm-3{padding-left:1rem!important}.ps-sm-4{padding-left:1.5rem!important}.ps-sm-5{padding-left:3rem!important}.gap-sm-0{gap:0!important}.gap-sm-1{gap:.25rem!important}.gap-sm-2{gap:.5rem!important}.gap-sm-3{gap:1rem!important}.gap-sm-4{gap:1.5rem!important}.gap-sm-5{gap:3rem!important}.row-gap-sm-0{row-gap:0!important}.row-gap-sm-1{row-gap:.25rem!important}.row-gap-sm-2{row-gap:.5rem!important}.row-gap-sm-3{row-gap:1rem!important}.row-gap-sm-4{row-gap:1.5rem!important}.row-gap-sm-5{row-gap:3rem!important}.column-gap-sm-0{column-gap:0!important}.column-gap-sm-1{column-gap:.25rem!important}.column-gap-sm-2{column-gap:.5rem!important}.column-gap-sm-3{column-gap:1rem!important}.column-gap-sm-4{column-gap:1.5rem!important}.column-gap-sm-5{column-gap:3rem!important}.text-sm-start{text-align:left!important}.text-sm-end{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width: 768px){.float-md-start{float:left!important}.float-md-end{float:right!important}.float-md-none{float:none!important}.object-fit-md-contain{object-fit:contain!important}.object-fit-md-cover{object-fit:cover!important}.object-fit-md-fill{object-fit:fill!important}.object-fit-md-scale{object-fit:scale-down!important}.object-fit-md-none{object-fit:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-grid{display:grid!important}.d-md-inline-grid{display:inline-grid!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}.d-md-none{display:none!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.justify-content-md-evenly{justify-content:space-evenly!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}.order-md-first{order:-1!important}.order-md-0{order:0!important}.order-md-1{order:1!important}.order-md-2{order:2!important}.order-md-3{order:3!important}.order-md-4{order:4!important}.order-md-5{order:5!important}.order-md-last{order:6!important}.m-md-0{margin:0!important}.m-md-1{margin:.25rem!important}.m-md-2{margin:.5rem!important}.m-md-3{margin:1rem!important}.m-md-4{margin:1.5rem!important}.m-md-5{margin:3rem!important}.m-md-auto{margin:auto!important}.mx-md-0{margin-right:0!important;margin-left:0!important}.mx-md-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-md-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-md-3{margin-right:1rem!important;margin-left:1rem!important}.mx-md-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-md-5{margin-right:3rem!important;margin-left:3rem!important}.mx-md-auto{margin-right:auto!important;margin-left:auto!important}.my-md-0{margin-top:0!important;margin-bottom:0!important}.my-md-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-md-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-md-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-md-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-md-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-md-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-md-0{margin-top:0!important}.mt-md-1{margin-top:.25rem!important}.mt-md-2{margin-top:.5rem!important}.mt-md-3{margin-top:1rem!important}.mt-md-4{margin-top:1.5rem!important}.mt-md-5{margin-top:3rem!important}.mt-md-auto{margin-top:auto!important}.me-md-0{margin-right:0!important}.me-md-1{margin-right:.25rem!important}.me-md-2{margin-right:.5rem!important}.me-md-3{margin-right:1rem!important}.me-md-4{margin-right:1.5rem!important}.me-md-5{margin-right:3rem!important}.me-md-auto{margin-right:auto!important}.mb-md-0{margin-bottom:0!important}.mb-md-1{margin-bottom:.25rem!important}.mb-md-2{margin-bottom:.5rem!important}.mb-md-3{margin-bottom:1rem!important}.mb-md-4{margin-bottom:1.5rem!important}.mb-md-5{margin-bottom:3rem!important}.mb-md-auto{margin-bottom:auto!important}.ms-md-0{margin-left:0!important}.ms-md-1{margin-left:.25rem!important}.ms-md-2{margin-left:.5rem!important}.ms-md-3{margin-left:1rem!important}.ms-md-4{margin-left:1.5rem!important}.ms-md-5{margin-left:3rem!important}.ms-md-auto{margin-left:auto!important}.p-md-0{padding:0!important}.p-md-1{padding:.25rem!important}.p-md-2{padding:.5rem!important}.p-md-3{padding:1rem!important}.p-md-4{padding:1.5rem!important}.p-md-5{padding:3rem!important}.px-md-0{padding-right:0!important;padding-left:0!important}.px-md-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-md-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-md-3{padding-right:1rem!important;padding-left:1rem!important}.px-md-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-md-5{padding-right:3rem!important;padding-left:3rem!important}.py-md-0{padding-top:0!important;padding-bottom:0!important}.py-md-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-md-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-md-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-md-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-md-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-md-0{padding-top:0!important}.pt-md-1{padding-top:.25rem!important}.pt-md-2{padding-top:.5rem!important}.pt-md-3{padding-top:1rem!important}.pt-md-4{padding-top:1.5rem!important}.pt-md-5{padding-top:3rem!important}.pe-md-0{padding-right:0!important}.pe-md-1{padding-right:.25rem!important}.pe-md-2{padding-right:.5rem!important}.pe-md-3{padding-right:1rem!important}.pe-md-4{padding-right:1.5rem!important}.pe-md-5{padding-right:3rem!important}.pb-md-0{padding-bottom:0!important}.pb-md-1{padding-bottom:.25rem!important}.pb-md-2{padding-bottom:.5rem!important}.pb-md-3{padding-bottom:1rem!important}.pb-md-4{padding-bottom:1.5rem!important}.pb-md-5{padding-bottom:3rem!important}.ps-md-0{padding-left:0!important}.ps-md-1{padding-left:.25rem!important}.ps-md-2{padding-left:.5rem!important}.ps-md-3{padding-left:1rem!important}.ps-md-4{padding-left:1.5rem!important}.ps-md-5{padding-left:3rem!important}.gap-md-0{gap:0!important}.gap-md-1{gap:.25rem!important}.gap-md-2{gap:.5rem!important}.gap-md-3{gap:1rem!important}.gap-md-4{gap:1.5rem!important}.gap-md-5{gap:3rem!important}.row-gap-md-0{row-gap:0!important}.row-gap-md-1{row-gap:.25rem!important}.row-gap-md-2{row-gap:.5rem!important}.row-gap-md-3{row-gap:1rem!important}.row-gap-md-4{row-gap:1.5rem!important}.row-gap-md-5{row-gap:3rem!important}.column-gap-md-0{column-gap:0!important}.column-gap-md-1{column-gap:.25rem!important}.column-gap-md-2{column-gap:.5rem!important}.column-gap-md-3{column-gap:1rem!important}.column-gap-md-4{column-gap:1.5rem!important}.column-gap-md-5{column-gap:3rem!important}.text-md-start{text-align:left!important}.text-md-end{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width: 992px){.float-lg-start{float:left!important}.float-lg-end{float:right!important}.float-lg-none{float:none!important}.object-fit-lg-contain{object-fit:contain!important}.object-fit-lg-cover{object-fit:cover!important}.object-fit-lg-fill{object-fit:fill!important}.object-fit-lg-scale{object-fit:scale-down!important}.object-fit-lg-none{object-fit:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-grid{display:grid!important}.d-lg-inline-grid{display:inline-grid!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}.d-lg-none{display:none!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.justify-content-lg-evenly{justify-content:space-evenly!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}.order-lg-first{order:-1!important}.order-lg-0{order:0!important}.order-lg-1{order:1!important}.order-lg-2{order:2!important}.order-lg-3{order:3!important}.order-lg-4{order:4!important}.order-lg-5{order:5!important}.order-lg-last{order:6!important}.m-lg-0{margin:0!important}.m-lg-1{margin:.25rem!important}.m-lg-2{margin:.5rem!important}.m-lg-3{margin:1rem!important}.m-lg-4{margin:1.5rem!important}.m-lg-5{margin:3rem!important}.m-lg-auto{margin:auto!important}.mx-lg-0{margin-right:0!important;margin-left:0!important}.mx-lg-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-lg-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-lg-3{margin-right:1rem!important;margin-left:1rem!important}.mx-lg-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-lg-5{margin-right:3rem!important;margin-left:3rem!important}.mx-lg-auto{margin-right:auto!important;margin-left:auto!important}.my-lg-0{margin-top:0!important;margin-bottom:0!important}.my-lg-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-lg-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-lg-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-lg-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-lg-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-lg-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-lg-0{margin-top:0!important}.mt-lg-1{margin-top:.25rem!important}.mt-lg-2{margin-top:.5rem!important}.mt-lg-3{margin-top:1rem!important}.mt-lg-4{margin-top:1.5rem!important}.mt-lg-5{margin-top:3rem!important}.mt-lg-auto{margin-top:auto!important}.me-lg-0{margin-right:0!important}.me-lg-1{margin-right:.25rem!important}.me-lg-2{margin-right:.5rem!important}.me-lg-3{margin-right:1rem!important}.me-lg-4{margin-right:1.5rem!important}.me-lg-5{margin-right:3rem!important}.me-lg-auto{margin-right:auto!important}.mb-lg-0{margin-bottom:0!important}.mb-lg-1{margin-bottom:.25rem!important}.mb-lg-2{margin-bottom:.5rem!important}.mb-lg-3{margin-bottom:1rem!important}.mb-lg-4{margin-bottom:1.5rem!important}.mb-lg-5{margin-bottom:3rem!important}.mb-lg-auto{margin-bottom:auto!important}.ms-lg-0{margin-left:0!important}.ms-lg-1{margin-left:.25rem!important}.ms-lg-2{margin-left:.5rem!important}.ms-lg-3{margin-left:1rem!important}.ms-lg-4{margin-left:1.5rem!important}.ms-lg-5{margin-left:3rem!important}.ms-lg-auto{margin-left:auto!important}.p-lg-0{padding:0!important}.p-lg-1{padding:.25rem!important}.p-lg-2{padding:.5rem!important}.p-lg-3{padding:1rem!important}.p-lg-4{padding:1.5rem!important}.p-lg-5{padding:3rem!important}.px-lg-0{padding-right:0!important;padding-left:0!important}.px-lg-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-lg-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-lg-3{padding-right:1rem!important;padding-left:1rem!important}.px-lg-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-lg-5{padding-right:3rem!important;padding-left:3rem!important}.py-lg-0{padding-top:0!important;padding-bottom:0!important}.py-lg-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-lg-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-lg-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-lg-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-lg-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-lg-0{padding-top:0!important}.pt-lg-1{padding-top:.25rem!important}.pt-lg-2{padding-top:.5rem!important}.pt-lg-3{padding-top:1rem!important}.pt-lg-4{padding-top:1.5rem!important}.pt-lg-5{padding-top:3rem!important}.pe-lg-0{padding-right:0!important}.pe-lg-1{padding-right:.25rem!important}.pe-lg-2{padding-right:.5rem!important}.pe-lg-3{padding-right:1rem!important}.pe-lg-4{padding-right:1.5rem!important}.pe-lg-5{padding-right:3rem!important}.pb-lg-0{padding-bottom:0!important}.pb-lg-1{padding-bottom:.25rem!important}.pb-lg-2{padding-bottom:.5rem!important}.pb-lg-3{padding-bottom:1rem!important}.pb-lg-4{padding-bottom:1.5rem!important}.pb-lg-5{padding-bottom:3rem!important}.ps-lg-0{padding-left:0!important}.ps-lg-1{padding-left:.25rem!important}.ps-lg-2{padding-left:.5rem!important}.ps-lg-3{padding-left:1rem!important}.ps-lg-4{padding-left:1.5rem!important}.ps-lg-5{padding-left:3rem!important}.gap-lg-0{gap:0!important}.gap-lg-1{gap:.25rem!important}.gap-lg-2{gap:.5rem!important}.gap-lg-3{gap:1rem!important}.gap-lg-4{gap:1.5rem!important}.gap-lg-5{gap:3rem!important}.row-gap-lg-0{row-gap:0!important}.row-gap-lg-1{row-gap:.25rem!important}.row-gap-lg-2{row-gap:.5rem!important}.row-gap-lg-3{row-gap:1rem!important}.row-gap-lg-4{row-gap:1.5rem!important}.row-gap-lg-5{row-gap:3rem!important}.column-gap-lg-0{column-gap:0!important}.column-gap-lg-1{column-gap:.25rem!important}.column-gap-lg-2{column-gap:.5rem!important}.column-gap-lg-3{column-gap:1rem!important}.column-gap-lg-4{column-gap:1.5rem!important}.column-gap-lg-5{column-gap:3rem!important}.text-lg-start{text-align:left!important}.text-lg-end{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width: 1200px){.float-xl-start{float:left!important}.float-xl-end{float:right!important}.float-xl-none{float:none!important}.object-fit-xl-contain{object-fit:contain!important}.object-fit-xl-cover{object-fit:cover!important}.object-fit-xl-fill{object-fit:fill!important}.object-fit-xl-scale{object-fit:scale-down!important}.object-fit-xl-none{object-fit:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-grid{display:grid!important}.d-xl-inline-grid{display:inline-grid!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}.d-xl-none{display:none!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.justify-content-xl-evenly{justify-content:space-evenly!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}.order-xl-first{order:-1!important}.order-xl-0{order:0!important}.order-xl-1{order:1!important}.order-xl-2{order:2!important}.order-xl-3{order:3!important}.order-xl-4{order:4!important}.order-xl-5{order:5!important}.order-xl-last{order:6!important}.m-xl-0{margin:0!important}.m-xl-1{margin:.25rem!important}.m-xl-2{margin:.5rem!important}.m-xl-3{margin:1rem!important}.m-xl-4{margin:1.5rem!important}.m-xl-5{margin:3rem!important}.m-xl-auto{margin:auto!important}.mx-xl-0{margin-right:0!important;margin-left:0!important}.mx-xl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xl-auto{margin-right:auto!important;margin-left:auto!important}.my-xl-0{margin-top:0!important;margin-bottom:0!important}.my-xl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xl-0{margin-top:0!important}.mt-xl-1{margin-top:.25rem!important}.mt-xl-2{margin-top:.5rem!important}.mt-xl-3{margin-top:1rem!important}.mt-xl-4{margin-top:1.5rem!important}.mt-xl-5{margin-top:3rem!important}.mt-xl-auto{margin-top:auto!important}.me-xl-0{margin-right:0!important}.me-xl-1{margin-right:.25rem!important}.me-xl-2{margin-right:.5rem!important}.me-xl-3{margin-right:1rem!important}.me-xl-4{margin-right:1.5rem!important}.me-xl-5{margin-right:3rem!important}.me-xl-auto{margin-right:auto!important}.mb-xl-0{margin-bottom:0!important}.mb-xl-1{margin-bottom:.25rem!important}.mb-xl-2{margin-bottom:.5rem!important}.mb-xl-3{margin-bottom:1rem!important}.mb-xl-4{margin-bottom:1.5rem!important}.mb-xl-5{margin-bottom:3rem!important}.mb-xl-auto{margin-bottom:auto!important}.ms-xl-0{margin-left:0!important}.ms-xl-1{margin-left:.25rem!important}.ms-xl-2{margin-left:.5rem!important}.ms-xl-3{margin-left:1rem!important}.ms-xl-4{margin-left:1.5rem!important}.ms-xl-5{margin-left:3rem!important}.ms-xl-auto{margin-left:auto!important}.p-xl-0{padding:0!important}.p-xl-1{padding:.25rem!important}.p-xl-2{padding:.5rem!important}.p-xl-3{padding:1rem!important}.p-xl-4{padding:1.5rem!important}.p-xl-5{padding:3rem!important}.px-xl-0{padding-right:0!important;padding-left:0!important}.px-xl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xl-0{padding-top:0!important;padding-bottom:0!important}.py-xl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xl-0{padding-top:0!important}.pt-xl-1{padding-top:.25rem!important}.pt-xl-2{padding-top:.5rem!important}.pt-xl-3{padding-top:1rem!important}.pt-xl-4{padding-top:1.5rem!important}.pt-xl-5{padding-top:3rem!important}.pe-xl-0{padding-right:0!important}.pe-xl-1{padding-right:.25rem!important}.pe-xl-2{padding-right:.5rem!important}.pe-xl-3{padding-right:1rem!important}.pe-xl-4{padding-right:1.5rem!important}.pe-xl-5{padding-right:3rem!important}.pb-xl-0{padding-bottom:0!important}.pb-xl-1{padding-bottom:.25rem!important}.pb-xl-2{padding-bottom:.5rem!important}.pb-xl-3{padding-bottom:1rem!important}.pb-xl-4{padding-bottom:1.5rem!important}.pb-xl-5{padding-bottom:3rem!important}.ps-xl-0{padding-left:0!important}.ps-xl-1{padding-left:.25rem!important}.ps-xl-2{padding-left:.5rem!important}.ps-xl-3{padding-left:1rem!important}.ps-xl-4{padding-left:1.5rem!important}.ps-xl-5{padding-left:3rem!important}.gap-xl-0{gap:0!important}.gap-xl-1{gap:.25rem!important}.gap-xl-2{gap:.5rem!important}.gap-xl-3{gap:1rem!important}.gap-xl-4{gap:1.5rem!important}.gap-xl-5{gap:3rem!important}.row-gap-xl-0{row-gap:0!important}.row-gap-xl-1{row-gap:.25rem!important}.row-gap-xl-2{row-gap:.5rem!important}.row-gap-xl-3{row-gap:1rem!important}.row-gap-xl-4{row-gap:1.5rem!important}.row-gap-xl-5{row-gap:3rem!important}.column-gap-xl-0{column-gap:0!important}.column-gap-xl-1{column-gap:.25rem!important}.column-gap-xl-2{column-gap:.5rem!important}.column-gap-xl-3{column-gap:1rem!important}.column-gap-xl-4{column-gap:1.5rem!important}.column-gap-xl-5{column-gap:3rem!important}.text-xl-start{text-align:left!important}.text-xl-end{text-align:right!important}.text-xl-center{text-align:center!important}}@media (min-width: 1400px){.float-xxl-start{float:left!important}.float-xxl-end{float:right!important}.float-xxl-none{float:none!important}.object-fit-xxl-contain{object-fit:contain!important}.object-fit-xxl-cover{object-fit:cover!important}.object-fit-xxl-fill{object-fit:fill!important}.object-fit-xxl-scale{object-fit:scale-down!important}.object-fit-xxl-none{object-fit:none!important}.d-xxl-inline{display:inline!important}.d-xxl-inline-block{display:inline-block!important}.d-xxl-block{display:block!important}.d-xxl-grid{display:grid!important}.d-xxl-inline-grid{display:inline-grid!important}.d-xxl-table{display:table!important}.d-xxl-table-row{display:table-row!important}.d-xxl-table-cell{display:table-cell!important}.d-xxl-flex{display:flex!important}.d-xxl-inline-flex{display:inline-flex!important}.d-xxl-none{display:none!important}.flex-xxl-fill{flex:1 1 auto!important}.flex-xxl-row{flex-direction:row!important}.flex-xxl-column{flex-direction:column!important}.flex-xxl-row-reverse{flex-direction:row-reverse!important}.flex-xxl-column-reverse{flex-direction:column-reverse!important}.flex-xxl-grow-0{flex-grow:0!important}.flex-xxl-grow-1{flex-grow:1!important}.flex-xxl-shrink-0{flex-shrink:0!important}.flex-xxl-shrink-1{flex-shrink:1!important}.flex-xxl-wrap{flex-wrap:wrap!important}.flex-xxl-nowrap{flex-wrap:nowrap!important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-xxl-start{justify-content:flex-start!important}.justify-content-xxl-end{justify-content:flex-end!important}.justify-content-xxl-center{justify-content:center!important}.justify-content-xxl-between{justify-content:space-between!important}.justify-content-xxl-around{justify-content:space-around!important}.justify-content-xxl-evenly{justify-content:space-evenly!important}.align-items-xxl-start{align-items:flex-start!important}.align-items-xxl-end{align-items:flex-end!important}.align-items-xxl-center{align-items:center!important}.align-items-xxl-baseline{align-items:baseline!important}.align-items-xxl-stretch{align-items:stretch!important}.align-content-xxl-start{align-content:flex-start!important}.align-content-xxl-end{align-content:flex-end!important}.align-content-xxl-center{align-content:center!important}.align-content-xxl-between{align-content:space-between!important}.align-content-xxl-around{align-content:space-around!important}.align-content-xxl-stretch{align-content:stretch!important}.align-self-xxl-auto{align-self:auto!important}.align-self-xxl-start{align-self:flex-start!important}.align-self-xxl-end{align-self:flex-end!important}.align-self-xxl-center{align-self:center!important}.align-self-xxl-baseline{align-self:baseline!important}.align-self-xxl-stretch{align-self:stretch!important}.order-xxl-first{order:-1!important}.order-xxl-0{order:0!important}.order-xxl-1{order:1!important}.order-xxl-2{order:2!important}.order-xxl-3{order:3!important}.order-xxl-4{order:4!important}.order-xxl-5{order:5!important}.order-xxl-last{order:6!important}.m-xxl-0{margin:0!important}.m-xxl-1{margin:.25rem!important}.m-xxl-2{margin:.5rem!important}.m-xxl-3{margin:1rem!important}.m-xxl-4{margin:1.5rem!important}.m-xxl-5{margin:3rem!important}.m-xxl-auto{margin:auto!important}.mx-xxl-0{margin-right:0!important;margin-left:0!important}.mx-xxl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xxl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xxl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xxl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xxl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xxl-auto{margin-right:auto!important;margin-left:auto!important}.my-xxl-0{margin-top:0!important;margin-bottom:0!important}.my-xxl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xxl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xxl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xxl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xxl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xxl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xxl-0{margin-top:0!important}.mt-xxl-1{margin-top:.25rem!important}.mt-xxl-2{margin-top:.5rem!important}.mt-xxl-3{margin-top:1rem!important}.mt-xxl-4{margin-top:1.5rem!important}.mt-xxl-5{margin-top:3rem!important}.mt-xxl-auto{margin-top:auto!important}.me-xxl-0{margin-right:0!important}.me-xxl-1{margin-right:.25rem!important}.me-xxl-2{margin-right:.5rem!important}.me-xxl-3{margin-right:1rem!important}.me-xxl-4{margin-right:1.5rem!important}.me-xxl-5{margin-right:3rem!important}.me-xxl-auto{margin-right:auto!important}.mb-xxl-0{margin-bottom:0!important}.mb-xxl-1{margin-bottom:.25rem!important}.mb-xxl-2{margin-bottom:.5rem!important}.mb-xxl-3{margin-bottom:1rem!important}.mb-xxl-4{margin-bottom:1.5rem!important}.mb-xxl-5{margin-bottom:3rem!important}.mb-xxl-auto{margin-bottom:auto!important}.ms-xxl-0{margin-left:0!important}.ms-xxl-1{margin-left:.25rem!important}.ms-xxl-2{margin-left:.5rem!important}.ms-xxl-3{margin-left:1rem!important}.ms-xxl-4{margin-left:1.5rem!important}.ms-xxl-5{margin-left:3rem!important}.ms-xxl-auto{margin-left:auto!important}.p-xxl-0{padding:0!important}.p-xxl-1{padding:.25rem!important}.p-xxl-2{padding:.5rem!important}.p-xxl-3{padding:1rem!important}.p-xxl-4{padding:1.5rem!important}.p-xxl-5{padding:3rem!important}.px-xxl-0{padding-right:0!important;padding-left:0!important}.px-xxl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xxl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xxl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xxl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xxl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xxl-0{padding-top:0!important;padding-bottom:0!important}.py-xxl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xxl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xxl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xxl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xxl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xxl-0{padding-top:0!important}.pt-xxl-1{padding-top:.25rem!important}.pt-xxl-2{padding-top:.5rem!important}.pt-xxl-3{padding-top:1rem!important}.pt-xxl-4{padding-top:1.5rem!important}.pt-xxl-5{padding-top:3rem!important}.pe-xxl-0{padding-right:0!important}.pe-xxl-1{padding-right:.25rem!important}.pe-xxl-2{padding-right:.5rem!important}.pe-xxl-3{padding-right:1rem!important}.pe-xxl-4{padding-right:1.5rem!important}.pe-xxl-5{padding-right:3rem!important}.pb-xxl-0{padding-bottom:0!important}.pb-xxl-1{padding-bottom:.25rem!important}.pb-xxl-2{padding-bottom:.5rem!important}.pb-xxl-3{padding-bottom:1rem!important}.pb-xxl-4{padding-bottom:1.5rem!important}.pb-xxl-5{padding-bottom:3rem!important}.ps-xxl-0{padding-left:0!important}.ps-xxl-1{padding-left:.25rem!important}.ps-xxl-2{padding-left:.5rem!important}.ps-xxl-3{padding-left:1rem!important}.ps-xxl-4{padding-left:1.5rem!important}.ps-xxl-5{padding-left:3rem!important}.gap-xxl-0{gap:0!important}.gap-xxl-1{gap:.25rem!important}.gap-xxl-2{gap:.5rem!important}.gap-xxl-3{gap:1rem!important}.gap-xxl-4{gap:1.5rem!important}.gap-xxl-5{gap:3rem!important}.row-gap-xxl-0{row-gap:0!important}.row-gap-xxl-1{row-gap:.25rem!important}.row-gap-xxl-2{row-gap:.5rem!important}.row-gap-xxl-3{row-gap:1rem!important}.row-gap-xxl-4{row-gap:1.5rem!important}.row-gap-xxl-5{row-gap:3rem!important}.column-gap-xxl-0{column-gap:0!important}.column-gap-xxl-1{column-gap:.25rem!important}.column-gap-xxl-2{column-gap:.5rem!important}.column-gap-xxl-3{column-gap:1rem!important}.column-gap-xxl-4{column-gap:1.5rem!important}.column-gap-xxl-5{column-gap:3rem!important}.text-xxl-start{text-align:left!important}.text-xxl-end{text-align:right!important}.text-xxl-center{text-align:center!important}}@media (min-width: 1200px){.fs-1{font-size:2.5rem!important}.fs-2{font-size:2rem!important}.fs-3{font-size:1.75rem!important}.fs-4{font-size:1.5rem!important}}@media print{.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-grid{display:grid!important}.d-print-inline-grid{display:inline-grid!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}.d-print-none{display:none!important}} + */:root,[data-bs-theme=light]{--bs-blue: #0d6efd;--bs-indigo: #6610f2;--bs-purple: #6f42c1;--bs-pink: #d63384;--bs-red: #dc3545;--bs-orange: #fd7e14;--bs-yellow: #ffc107;--bs-green: #198754;--bs-teal: #20c997;--bs-cyan: #0dcaf0;--bs-black: #000;--bs-white: #fff;--bs-gray: #6c757d;--bs-gray-dark: #343a40;--bs-gray-100: #f8f9fa;--bs-gray-200: #e9ecef;--bs-gray-300: #dee2e6;--bs-gray-400: #ced4da;--bs-gray-500: #adb5bd;--bs-gray-600: #6c757d;--bs-gray-700: #495057;--bs-gray-800: #343a40;--bs-gray-900: #212529;--bs-primary: #0052CC;--bs-secondary: #6554C0;--bs-success: #36B37E;--bs-info: #B3BAC5;--bs-warning: #FFAB00;--bs-danger: #FF5630;--bs-light: #F4F5F7;--bs-dark: #212529;--bs-primary-rgb: 0, 82, 204;--bs-secondary-rgb: 101, 84, 192;--bs-success-rgb: 54, 179, 126;--bs-info-rgb: 179, 186, 197;--bs-warning-rgb: 255, 171, 0;--bs-danger-rgb: 255, 86, 48;--bs-light-rgb: 244, 245, 247;--bs-dark-rgb: 33, 37, 41;--bs-primary-text-emphasis: #002152;--bs-secondary-text-emphasis: #28224d;--bs-success-text-emphasis: #164832;--bs-info-text-emphasis: #484a4f;--bs-warning-text-emphasis: #664400;--bs-danger-text-emphasis: #662213;--bs-light-text-emphasis: #495057;--bs-dark-text-emphasis: #495057;--bs-primary-bg-subtle: #ccdcf5;--bs-secondary-bg-subtle: #e0ddf2;--bs-success-bg-subtle: #d7f0e5;--bs-info-bg-subtle: #f0f1f3;--bs-warning-bg-subtle: #ffeecc;--bs-danger-bg-subtle: #ffddd6;--bs-light-bg-subtle: #fcfcfd;--bs-dark-bg-subtle: #ced4da;--bs-primary-border-subtle: #99baeb;--bs-secondary-border-subtle: #c1bbe6;--bs-success-border-subtle: #afe1cb;--bs-info-border-subtle: #e1e3e8;--bs-warning-border-subtle: #ffdd99;--bs-danger-border-subtle: #ffbbac;--bs-light-border-subtle: #e9ecef;--bs-dark-border-subtle: #adb5bd;--bs-white-rgb: 255, 255, 255;--bs-black-rgb: 0, 0, 0;--bs-font-sans-serif: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, .15), rgba(255, 255, 255, 0));--bs-body-font-family: var(--bs-font-sans-serif);--bs-body-font-size: 1rem;--bs-body-font-weight: 400;--bs-body-line-height: 1.5;--bs-body-color: #212529;--bs-body-color-rgb: 33, 37, 41;--bs-body-bg: #fff;--bs-body-bg-rgb: 255, 255, 255;--bs-emphasis-color: #000;--bs-emphasis-color-rgb: 0, 0, 0;--bs-secondary-color: rgba(33, 37, 41, .75);--bs-secondary-color-rgb: 33, 37, 41;--bs-secondary-bg: #e9ecef;--bs-secondary-bg-rgb: 233, 236, 239;--bs-tertiary-color: rgba(33, 37, 41, .5);--bs-tertiary-color-rgb: 33, 37, 41;--bs-tertiary-bg: #f8f9fa;--bs-tertiary-bg-rgb: 248, 249, 250;--bs-heading-color: inherit;--bs-link-color: #0052CC;--bs-link-color-rgb: 0, 82, 204;--bs-link-decoration: underline;--bs-link-hover-color: #0042a3;--bs-link-hover-color-rgb: 0, 66, 163;--bs-code-color: #d63384;--bs-highlight-bg: #fff3cd;--bs-border-width: 1px;--bs-border-style: solid;--bs-border-color: #dee2e6;--bs-border-color-translucent: rgba(0, 0, 0, .175);--bs-border-radius: .375rem;--bs-border-radius-sm: .25rem;--bs-border-radius-lg: .5rem;--bs-border-radius-xl: 1rem;--bs-border-radius-xxl: 2rem;--bs-border-radius-2xl: var(--bs-border-radius-xxl);--bs-border-radius-pill: 50rem;--bs-box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .15);--bs-box-shadow-sm: 0 .125rem .25rem rgba(0, 0, 0, .075);--bs-box-shadow-lg: 0 1rem 3rem rgba(0, 0, 0, .175);--bs-box-shadow-inset: inset 0 1px 2px rgba(0, 0, 0, .075);--bs-focus-ring-width: .25rem;--bs-focus-ring-opacity: .25;--bs-focus-ring-color: rgba(0, 82, 204, .25);--bs-form-valid-color: #36B37E;--bs-form-valid-border-color: #36B37E;--bs-form-invalid-color: #FF5630;--bs-form-invalid-border-color: #FF5630}[data-bs-theme=dark]{color-scheme:dark;--bs-body-color: #dee2e6;--bs-body-color-rgb: 222, 226, 230;--bs-body-bg: #212529;--bs-body-bg-rgb: 33, 37, 41;--bs-emphasis-color: #fff;--bs-emphasis-color-rgb: 255, 255, 255;--bs-secondary-color: rgba(222, 226, 230, .75);--bs-secondary-color-rgb: 222, 226, 230;--bs-secondary-bg: #343a40;--bs-secondary-bg-rgb: 52, 58, 64;--bs-tertiary-color: rgba(222, 226, 230, .5);--bs-tertiary-color-rgb: 222, 226, 230;--bs-tertiary-bg: #2b3035;--bs-tertiary-bg-rgb: 43, 48, 53;--bs-primary-text-emphasis: #6697e0;--bs-secondary-text-emphasis: #a398d9;--bs-success-text-emphasis: #86d1b2;--bs-info-text-emphasis: #d1d6dc;--bs-warning-text-emphasis: #ffcd66;--bs-danger-text-emphasis: #ff9a83;--bs-light-text-emphasis: #f8f9fa;--bs-dark-text-emphasis: #dee2e6;--bs-primary-bg-subtle: #001029;--bs-secondary-bg-subtle: #141126;--bs-success-bg-subtle: #0b2419;--bs-info-bg-subtle: #242527;--bs-warning-bg-subtle: #332200;--bs-danger-bg-subtle: #33110a;--bs-light-bg-subtle: #343a40;--bs-dark-bg-subtle: #1a1d20;--bs-primary-border-subtle: #00317a;--bs-secondary-border-subtle: #3d3273;--bs-success-border-subtle: #206b4c;--bs-info-border-subtle: #6b7076;--bs-warning-border-subtle: #996700;--bs-danger-border-subtle: #99341d;--bs-light-border-subtle: #495057;--bs-dark-border-subtle: #343a40;--bs-heading-color: inherit;--bs-link-color: #6697e0;--bs-link-hover-color: #85ace6;--bs-link-color-rgb: 102, 151, 224;--bs-link-hover-color-rgb: 133, 172, 230;--bs-code-color: #e685b5;--bs-border-color: #495057;--bs-border-color-translucent: rgba(255, 255, 255, .15);--bs-form-valid-color: #75b798;--bs-form-valid-border-color: #75b798;--bs-form-invalid-color: #ea868f;--bs-form-invalid-border-color: #ea868f}*,*:before,*:after{box-sizing:border-box}@media (prefers-reduced-motion: no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:var(--bs-body-font-family);font-size:var(--bs-body-font-size);font-weight:var(--bs-body-font-weight);line-height:var(--bs-body-line-height);color:var(--bs-body-color);text-align:var(--bs-body-text-align);background-color:var(--bs-body-bg);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}hr{margin:1rem 0;color:inherit;border:0;border-top:var(--bs-border-width) solid;opacity:.25}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2;color:var(--bs-heading-color)}h1,.h1{font-size:calc(1.375rem + 1.5vw)}@media (min-width: 1200px){h1,.h1{font-size:2.5rem}}h2,.h2{font-size:calc(1.325rem + .9vw)}@media (min-width: 1200px){h2,.h2{font-size:2rem}}h3,.h3{font-size:calc(1.3rem + .6vw)}@media (min-width: 1200px){h3,.h3{font-size:1.75rem}}h4,.h4{font-size:calc(1.275rem + .3vw)}@media (min-width: 1200px){h4,.h4{font-size:1.5rem}}h5,.h5{font-size:1.25rem}h6,.h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}ol,ul,dl{margin-top:0;margin-bottom:1rem}ol ol,ul ul,ol ul,ul ol{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small,.small{font-size:.875em}mark,.mark{padding:.1875em;background-color:var(--bs-highlight-bg)}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:rgba(var(--bs-link-color-rgb),var(--bs-link-opacity, 1));text-decoration:underline}a:hover{--bs-link-color-rgb: var(--bs-link-hover-color-rgb)}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}pre,code,kbd,samp{font-family:var(--bs-font-monospace);font-size:1em}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:.875em}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:.875em;color:var(--bs-code-color);word-wrap:break-word}a>code{color:inherit}kbd{padding:.1875rem .375rem;font-size:.875em;color:var(--bs-body-bg);background-color:var(--bs-body-color);border-radius:.25rem}kbd kbd{padding:0;font-size:1em}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:var(--bs-secondary-color);text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}thead,tbody,tfoot,tr,td,th{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}input,button,select,optgroup,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]:not([type=date]):not([type=datetime-local]):not([type=month]):not([type=week]):not([type=time])::-webkit-calendar-picker-indicator{display:none!important}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button:not(:disabled),[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:calc(1.275rem + .3vw);line-height:inherit}@media (min-width: 1200px){legend{font-size:1.5rem}}legend+*{clear:left}::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-text,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none!important}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:calc(1.625rem + 4.5vw);font-weight:300;line-height:1.2}@media (min-width: 1200px){.display-1{font-size:5rem}}.display-2{font-size:calc(1.575rem + 3.9vw);font-weight:300;line-height:1.2}@media (min-width: 1200px){.display-2{font-size:4.5rem}}.display-3{font-size:calc(1.525rem + 3.3vw);font-weight:300;line-height:1.2}@media (min-width: 1200px){.display-3{font-size:4rem}}.display-4{font-size:calc(1.475rem + 2.7vw);font-weight:300;line-height:1.2}@media (min-width: 1200px){.display-4{font-size:3.5rem}}.display-5{font-size:calc(1.425rem + 2.1vw);font-weight:300;line-height:1.2}@media (min-width: 1200px){.display-5{font-size:3rem}}.display-6{font-size:calc(1.375rem + 1.5vw);font-weight:300;line-height:1.2}@media (min-width: 1200px){.display-6{font-size:2.5rem}}.list-unstyled,.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:.875em;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote>:last-child{margin-bottom:0}.blockquote-footer{margin-top:-1rem;margin-bottom:1rem;font-size:.875em;color:#6c757d}.blockquote-footer:before{content:"\2014\a0"}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:var(--bs-body-bg);border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:.875em;color:var(--bs-secondary-color)}.container,.container-fluid,.container-sm,.container-md,.container-lg,.container-xl,.container-xxl{--bs-gutter-x: 1.5rem;--bs-gutter-y: 0;width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-right:auto;margin-left:auto}@media (min-width: 576px){.container,.container-sm{max-width:540px}}@media (min-width: 768px){.container,.container-sm,.container-md{max-width:720px}}@media (min-width: 992px){.container,.container-sm,.container-md,.container-lg{max-width:960px}}@media (min-width: 1200px){.container,.container-sm,.container-md,.container-lg,.container-xl{max-width:1140px}}@media (min-width: 1400px){.container,.container-sm,.container-md,.container-lg,.container-xl,.container-xxl{max-width:1320px}}:root{--bs-breakpoint-xs: 0;--bs-breakpoint-sm: 576px;--bs-breakpoint-md: 768px;--bs-breakpoint-lg: 992px;--bs-breakpoint-xl: 1200px;--bs-breakpoint-xxl: 1400px}.row{--bs-gutter-x: 1.5rem;--bs-gutter-y: 0;display:flex;flex-wrap:wrap;margin-top:calc(-1 * var(--bs-gutter-y));margin-right:calc(-.5 * var(--bs-gutter-x));margin-left:calc(-.5 * var(--bs-gutter-x))}.row>*{flex-shrink:0;width:100%;max-width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-top:var(--bs-gutter-y)}.col{flex:1 0 0%}.row-cols-auto>*{flex:0 0 auto;width:auto}.row-cols-1>*{flex:0 0 auto;width:100%}.row-cols-2>*{flex:0 0 auto;width:50%}.row-cols-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-4>*{flex:0 0 auto;width:25%}.row-cols-5>*{flex:0 0 auto;width:20%}.row-cols-6>*{flex:0 0 auto;width:16.6666666667%}.col-auto{flex:0 0 auto;width:auto}.col-1{flex:0 0 auto;width:8.33333333%}.col-2{flex:0 0 auto;width:16.66666667%}.col-3{flex:0 0 auto;width:25%}.col-4{flex:0 0 auto;width:33.33333333%}.col-5{flex:0 0 auto;width:41.66666667%}.col-6{flex:0 0 auto;width:50%}.col-7{flex:0 0 auto;width:58.33333333%}.col-8{flex:0 0 auto;width:66.66666667%}.col-9{flex:0 0 auto;width:75%}.col-10{flex:0 0 auto;width:83.33333333%}.col-11{flex:0 0 auto;width:91.66666667%}.col-12{flex:0 0 auto;width:100%}.offset-1{margin-left:8.33333333%}.offset-2{margin-left:16.66666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333333%}.offset-5{margin-left:41.66666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333333%}.offset-8{margin-left:66.66666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333333%}.offset-11{margin-left:91.66666667%}.g-0,.gx-0{--bs-gutter-x: 0}.g-0,.gy-0{--bs-gutter-y: 0}.g-1,.gx-1{--bs-gutter-x: .25rem}.g-1,.gy-1{--bs-gutter-y: .25rem}.g-2,.gx-2{--bs-gutter-x: .5rem}.g-2,.gy-2{--bs-gutter-y: .5rem}.g-3,.gx-3{--bs-gutter-x: 1rem}.g-3,.gy-3{--bs-gutter-y: 1rem}.g-4,.gx-4{--bs-gutter-x: 1.5rem}.g-4,.gy-4{--bs-gutter-y: 1.5rem}.g-5,.gx-5{--bs-gutter-x: 3rem}.g-5,.gy-5{--bs-gutter-y: 3rem}@media (min-width: 576px){.col-sm{flex:1 0 0%}.row-cols-sm-auto>*{flex:0 0 auto;width:auto}.row-cols-sm-1>*{flex:0 0 auto;width:100%}.row-cols-sm-2>*{flex:0 0 auto;width:50%}.row-cols-sm-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-sm-4>*{flex:0 0 auto;width:25%}.row-cols-sm-5>*{flex:0 0 auto;width:20%}.row-cols-sm-6>*{flex:0 0 auto;width:16.6666666667%}.col-sm-auto{flex:0 0 auto;width:auto}.col-sm-1{flex:0 0 auto;width:8.33333333%}.col-sm-2{flex:0 0 auto;width:16.66666667%}.col-sm-3{flex:0 0 auto;width:25%}.col-sm-4{flex:0 0 auto;width:33.33333333%}.col-sm-5{flex:0 0 auto;width:41.66666667%}.col-sm-6{flex:0 0 auto;width:50%}.col-sm-7{flex:0 0 auto;width:58.33333333%}.col-sm-8{flex:0 0 auto;width:66.66666667%}.col-sm-9{flex:0 0 auto;width:75%}.col-sm-10{flex:0 0 auto;width:83.33333333%}.col-sm-11{flex:0 0 auto;width:91.66666667%}.col-sm-12{flex:0 0 auto;width:100%}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333333%}.offset-sm-2{margin-left:16.66666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333333%}.offset-sm-5{margin-left:41.66666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333333%}.offset-sm-8{margin-left:66.66666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333333%}.offset-sm-11{margin-left:91.66666667%}.g-sm-0,.gx-sm-0{--bs-gutter-x: 0}.g-sm-0,.gy-sm-0{--bs-gutter-y: 0}.g-sm-1,.gx-sm-1{--bs-gutter-x: .25rem}.g-sm-1,.gy-sm-1{--bs-gutter-y: .25rem}.g-sm-2,.gx-sm-2{--bs-gutter-x: .5rem}.g-sm-2,.gy-sm-2{--bs-gutter-y: .5rem}.g-sm-3,.gx-sm-3{--bs-gutter-x: 1rem}.g-sm-3,.gy-sm-3{--bs-gutter-y: 1rem}.g-sm-4,.gx-sm-4{--bs-gutter-x: 1.5rem}.g-sm-4,.gy-sm-4{--bs-gutter-y: 1.5rem}.g-sm-5,.gx-sm-5{--bs-gutter-x: 3rem}.g-sm-5,.gy-sm-5{--bs-gutter-y: 3rem}}@media (min-width: 768px){.col-md{flex:1 0 0%}.row-cols-md-auto>*{flex:0 0 auto;width:auto}.row-cols-md-1>*{flex:0 0 auto;width:100%}.row-cols-md-2>*{flex:0 0 auto;width:50%}.row-cols-md-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-md-4>*{flex:0 0 auto;width:25%}.row-cols-md-5>*{flex:0 0 auto;width:20%}.row-cols-md-6>*{flex:0 0 auto;width:16.6666666667%}.col-md-auto{flex:0 0 auto;width:auto}.col-md-1{flex:0 0 auto;width:8.33333333%}.col-md-2{flex:0 0 auto;width:16.66666667%}.col-md-3{flex:0 0 auto;width:25%}.col-md-4{flex:0 0 auto;width:33.33333333%}.col-md-5{flex:0 0 auto;width:41.66666667%}.col-md-6{flex:0 0 auto;width:50%}.col-md-7{flex:0 0 auto;width:58.33333333%}.col-md-8{flex:0 0 auto;width:66.66666667%}.col-md-9{flex:0 0 auto;width:75%}.col-md-10{flex:0 0 auto;width:83.33333333%}.col-md-11{flex:0 0 auto;width:91.66666667%}.col-md-12{flex:0 0 auto;width:100%}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333333%}.offset-md-2{margin-left:16.66666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333333%}.offset-md-5{margin-left:41.66666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333333%}.offset-md-8{margin-left:66.66666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333333%}.offset-md-11{margin-left:91.66666667%}.g-md-0,.gx-md-0{--bs-gutter-x: 0}.g-md-0,.gy-md-0{--bs-gutter-y: 0}.g-md-1,.gx-md-1{--bs-gutter-x: .25rem}.g-md-1,.gy-md-1{--bs-gutter-y: .25rem}.g-md-2,.gx-md-2{--bs-gutter-x: .5rem}.g-md-2,.gy-md-2{--bs-gutter-y: .5rem}.g-md-3,.gx-md-3{--bs-gutter-x: 1rem}.g-md-3,.gy-md-3{--bs-gutter-y: 1rem}.g-md-4,.gx-md-4{--bs-gutter-x: 1.5rem}.g-md-4,.gy-md-4{--bs-gutter-y: 1.5rem}.g-md-5,.gx-md-5{--bs-gutter-x: 3rem}.g-md-5,.gy-md-5{--bs-gutter-y: 3rem}}@media (min-width: 992px){.col-lg{flex:1 0 0%}.row-cols-lg-auto>*{flex:0 0 auto;width:auto}.row-cols-lg-1>*{flex:0 0 auto;width:100%}.row-cols-lg-2>*{flex:0 0 auto;width:50%}.row-cols-lg-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-lg-4>*{flex:0 0 auto;width:25%}.row-cols-lg-5>*{flex:0 0 auto;width:20%}.row-cols-lg-6>*{flex:0 0 auto;width:16.6666666667%}.col-lg-auto{flex:0 0 auto;width:auto}.col-lg-1{flex:0 0 auto;width:8.33333333%}.col-lg-2{flex:0 0 auto;width:16.66666667%}.col-lg-3{flex:0 0 auto;width:25%}.col-lg-4{flex:0 0 auto;width:33.33333333%}.col-lg-5{flex:0 0 auto;width:41.66666667%}.col-lg-6{flex:0 0 auto;width:50%}.col-lg-7{flex:0 0 auto;width:58.33333333%}.col-lg-8{flex:0 0 auto;width:66.66666667%}.col-lg-9{flex:0 0 auto;width:75%}.col-lg-10{flex:0 0 auto;width:83.33333333%}.col-lg-11{flex:0 0 auto;width:91.66666667%}.col-lg-12{flex:0 0 auto;width:100%}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333333%}.offset-lg-2{margin-left:16.66666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333333%}.offset-lg-5{margin-left:41.66666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333333%}.offset-lg-8{margin-left:66.66666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333333%}.offset-lg-11{margin-left:91.66666667%}.g-lg-0,.gx-lg-0{--bs-gutter-x: 0}.g-lg-0,.gy-lg-0{--bs-gutter-y: 0}.g-lg-1,.gx-lg-1{--bs-gutter-x: .25rem}.g-lg-1,.gy-lg-1{--bs-gutter-y: .25rem}.g-lg-2,.gx-lg-2{--bs-gutter-x: .5rem}.g-lg-2,.gy-lg-2{--bs-gutter-y: .5rem}.g-lg-3,.gx-lg-3{--bs-gutter-x: 1rem}.g-lg-3,.gy-lg-3{--bs-gutter-y: 1rem}.g-lg-4,.gx-lg-4{--bs-gutter-x: 1.5rem}.g-lg-4,.gy-lg-4{--bs-gutter-y: 1.5rem}.g-lg-5,.gx-lg-5{--bs-gutter-x: 3rem}.g-lg-5,.gy-lg-5{--bs-gutter-y: 3rem}}@media (min-width: 1200px){.col-xl{flex:1 0 0%}.row-cols-xl-auto>*{flex:0 0 auto;width:auto}.row-cols-xl-1>*{flex:0 0 auto;width:100%}.row-cols-xl-2>*{flex:0 0 auto;width:50%}.row-cols-xl-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-xl-4>*{flex:0 0 auto;width:25%}.row-cols-xl-5>*{flex:0 0 auto;width:20%}.row-cols-xl-6>*{flex:0 0 auto;width:16.6666666667%}.col-xl-auto{flex:0 0 auto;width:auto}.col-xl-1{flex:0 0 auto;width:8.33333333%}.col-xl-2{flex:0 0 auto;width:16.66666667%}.col-xl-3{flex:0 0 auto;width:25%}.col-xl-4{flex:0 0 auto;width:33.33333333%}.col-xl-5{flex:0 0 auto;width:41.66666667%}.col-xl-6{flex:0 0 auto;width:50%}.col-xl-7{flex:0 0 auto;width:58.33333333%}.col-xl-8{flex:0 0 auto;width:66.66666667%}.col-xl-9{flex:0 0 auto;width:75%}.col-xl-10{flex:0 0 auto;width:83.33333333%}.col-xl-11{flex:0 0 auto;width:91.66666667%}.col-xl-12{flex:0 0 auto;width:100%}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333333%}.offset-xl-2{margin-left:16.66666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333333%}.offset-xl-5{margin-left:41.66666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333333%}.offset-xl-8{margin-left:66.66666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333333%}.offset-xl-11{margin-left:91.66666667%}.g-xl-0,.gx-xl-0{--bs-gutter-x: 0}.g-xl-0,.gy-xl-0{--bs-gutter-y: 0}.g-xl-1,.gx-xl-1{--bs-gutter-x: .25rem}.g-xl-1,.gy-xl-1{--bs-gutter-y: .25rem}.g-xl-2,.gx-xl-2{--bs-gutter-x: .5rem}.g-xl-2,.gy-xl-2{--bs-gutter-y: .5rem}.g-xl-3,.gx-xl-3{--bs-gutter-x: 1rem}.g-xl-3,.gy-xl-3{--bs-gutter-y: 1rem}.g-xl-4,.gx-xl-4{--bs-gutter-x: 1.5rem}.g-xl-4,.gy-xl-4{--bs-gutter-y: 1.5rem}.g-xl-5,.gx-xl-5{--bs-gutter-x: 3rem}.g-xl-5,.gy-xl-5{--bs-gutter-y: 3rem}}@media (min-width: 1400px){.col-xxl{flex:1 0 0%}.row-cols-xxl-auto>*{flex:0 0 auto;width:auto}.row-cols-xxl-1>*{flex:0 0 auto;width:100%}.row-cols-xxl-2>*{flex:0 0 auto;width:50%}.row-cols-xxl-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-xxl-4>*{flex:0 0 auto;width:25%}.row-cols-xxl-5>*{flex:0 0 auto;width:20%}.row-cols-xxl-6>*{flex:0 0 auto;width:16.6666666667%}.col-xxl-auto{flex:0 0 auto;width:auto}.col-xxl-1{flex:0 0 auto;width:8.33333333%}.col-xxl-2{flex:0 0 auto;width:16.66666667%}.col-xxl-3{flex:0 0 auto;width:25%}.col-xxl-4{flex:0 0 auto;width:33.33333333%}.col-xxl-5{flex:0 0 auto;width:41.66666667%}.col-xxl-6{flex:0 0 auto;width:50%}.col-xxl-7{flex:0 0 auto;width:58.33333333%}.col-xxl-8{flex:0 0 auto;width:66.66666667%}.col-xxl-9{flex:0 0 auto;width:75%}.col-xxl-10{flex:0 0 auto;width:83.33333333%}.col-xxl-11{flex:0 0 auto;width:91.66666667%}.col-xxl-12{flex:0 0 auto;width:100%}.offset-xxl-0{margin-left:0}.offset-xxl-1{margin-left:8.33333333%}.offset-xxl-2{margin-left:16.66666667%}.offset-xxl-3{margin-left:25%}.offset-xxl-4{margin-left:33.33333333%}.offset-xxl-5{margin-left:41.66666667%}.offset-xxl-6{margin-left:50%}.offset-xxl-7{margin-left:58.33333333%}.offset-xxl-8{margin-left:66.66666667%}.offset-xxl-9{margin-left:75%}.offset-xxl-10{margin-left:83.33333333%}.offset-xxl-11{margin-left:91.66666667%}.g-xxl-0,.gx-xxl-0{--bs-gutter-x: 0}.g-xxl-0,.gy-xxl-0{--bs-gutter-y: 0}.g-xxl-1,.gx-xxl-1{--bs-gutter-x: .25rem}.g-xxl-1,.gy-xxl-1{--bs-gutter-y: .25rem}.g-xxl-2,.gx-xxl-2{--bs-gutter-x: .5rem}.g-xxl-2,.gy-xxl-2{--bs-gutter-y: .5rem}.g-xxl-3,.gx-xxl-3{--bs-gutter-x: 1rem}.g-xxl-3,.gy-xxl-3{--bs-gutter-y: 1rem}.g-xxl-4,.gx-xxl-4{--bs-gutter-x: 1.5rem}.g-xxl-4,.gy-xxl-4{--bs-gutter-y: 1.5rem}.g-xxl-5,.gx-xxl-5{--bs-gutter-x: 3rem}.g-xxl-5,.gy-xxl-5{--bs-gutter-y: 3rem}}.table{--bs-table-color-type: initial;--bs-table-bg-type: initial;--bs-table-color-state: initial;--bs-table-bg-state: initial;--bs-table-color: var(--bs-body-color);--bs-table-bg: var(--bs-body-bg);--bs-table-border-color: var(--bs-border-color);--bs-table-accent-bg: transparent;--bs-table-striped-color: var(--bs-body-color);--bs-table-striped-bg: rgba(0, 0, 0, .05);--bs-table-active-color: var(--bs-body-color);--bs-table-active-bg: rgba(0, 0, 0, .1);--bs-table-hover-color: var(--bs-body-color);--bs-table-hover-bg: rgba(0, 0, 0, .075);width:100%;margin-bottom:1rem;vertical-align:top;border-color:var(--bs-table-border-color)}.table>:not(caption)>*>*{padding:.5rem;color:var(--bs-table-color-state, var(--bs-table-color-type, var(--bs-table-color)));background-color:var(--bs-table-bg);border-bottom-width:var(--bs-border-width);box-shadow:inset 0 0 0 9999px var(--bs-table-bg-state, var(--bs-table-bg-type, var(--bs-table-accent-bg)))}.table>tbody{vertical-align:inherit}.table>thead{vertical-align:bottom}.table-group-divider{border-top:calc(var(--bs-border-width) * 2) solid currentcolor}.caption-top{caption-side:top}.table-sm>:not(caption)>*>*{padding:.25rem}.table-bordered>:not(caption)>*{border-width:var(--bs-border-width) 0}.table-bordered>:not(caption)>*>*{border-width:0 var(--bs-border-width)}.table-borderless>:not(caption)>*>*{border-bottom-width:0}.table-borderless>:not(:first-child){border-top-width:0}.table-striped>tbody>tr:nth-of-type(odd)>*{--bs-table-color-type: var(--bs-table-striped-color);--bs-table-bg-type: var(--bs-table-striped-bg)}.table-striped-columns>:not(caption)>tr>:nth-child(2n){--bs-table-color-type: var(--bs-table-striped-color);--bs-table-bg-type: var(--bs-table-striped-bg)}.table-active{--bs-table-color-state: var(--bs-table-active-color);--bs-table-bg-state: var(--bs-table-active-bg)}.table-hover>tbody>tr:hover>*{--bs-table-color-state: var(--bs-table-hover-color);--bs-table-bg-state: var(--bs-table-hover-bg)}.table-primary{--bs-table-color: #000;--bs-table-bg: #ccdcf5;--bs-table-border-color: #b8c6dd;--bs-table-striped-bg: #c2d1e9;--bs-table-striped-color: #000;--bs-table-active-bg: #b8c6dd;--bs-table-active-color: #000;--bs-table-hover-bg: #bdcce3;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-secondary{--bs-table-color: #000;--bs-table-bg: #e0ddf2;--bs-table-border-color: #cac7da;--bs-table-striped-bg: #d5d2e6;--bs-table-striped-color: #000;--bs-table-active-bg: #cac7da;--bs-table-active-color: #000;--bs-table-hover-bg: #cfcce0;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-success{--bs-table-color: #000;--bs-table-bg: #d7f0e5;--bs-table-border-color: #c2d8ce;--bs-table-striped-bg: #cce4da;--bs-table-striped-color: #000;--bs-table-active-bg: #c2d8ce;--bs-table-active-color: #000;--bs-table-hover-bg: #c7ded4;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-info{--bs-table-color: #000;--bs-table-bg: #f0f1f3;--bs-table-border-color: #d8d9db;--bs-table-striped-bg: #e4e5e7;--bs-table-striped-color: #000;--bs-table-active-bg: #d8d9db;--bs-table-active-color: #000;--bs-table-hover-bg: #dedfe1;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-warning{--bs-table-color: #000;--bs-table-bg: #ffeecc;--bs-table-border-color: #e6d6b8;--bs-table-striped-bg: #f2e2c2;--bs-table-striped-color: #000;--bs-table-active-bg: #e6d6b8;--bs-table-active-color: #000;--bs-table-hover-bg: #ecdcbd;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-danger{--bs-table-color: #000;--bs-table-bg: #ffddd6;--bs-table-border-color: #e6c7c1;--bs-table-striped-bg: #f2d2cb;--bs-table-striped-color: #000;--bs-table-active-bg: #e6c7c1;--bs-table-active-color: #000;--bs-table-hover-bg: #ecccc6;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-light{--bs-table-color: #000;--bs-table-bg: #F4F5F7;--bs-table-border-color: #dcddde;--bs-table-striped-bg: #e8e9eb;--bs-table-striped-color: #000;--bs-table-active-bg: #dcddde;--bs-table-active-color: #000;--bs-table-hover-bg: #e2e3e4;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-dark{--bs-table-color: #fff;--bs-table-bg: #212529;--bs-table-border-color: #373b3e;--bs-table-striped-bg: #2c3034;--bs-table-striped-color: #fff;--bs-table-active-bg: #373b3e;--bs-table-active-color: #fff;--bs-table-hover-bg: #323539;--bs-table-hover-color: #fff;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}@media (max-width: 575.98px){.table-responsive-sm{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width: 767.98px){.table-responsive-md{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width: 991.98px){.table-responsive-lg{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width: 1199.98px){.table-responsive-xl{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width: 1399.98px){.table-responsive-xxl{overflow-x:auto;-webkit-overflow-scrolling:touch}}.form-label{margin-bottom:.5rem}.col-form-label{padding-top:calc(.375rem + var(--bs-border-width));padding-bottom:calc(.375rem + var(--bs-border-width));margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + var(--bs-border-width));padding-bottom:calc(.5rem + var(--bs-border-width));font-size:1.25rem}.col-form-label-sm{padding-top:calc(.25rem + var(--bs-border-width));padding-bottom:calc(.25rem + var(--bs-border-width));font-size:.875rem}.form-text{margin-top:.25rem;font-size:.875em;color:var(--bs-secondary-color)}.form-control{display:block;width:100%;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);-webkit-appearance:none;appearance:none;background-color:var(--bs-body-bg);background-clip:padding-box;border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-control{transition:none}}.form-control[type=file]{overflow:hidden}.form-control[type=file]:not(:disabled):not([readonly]){cursor:pointer}.form-control:focus{color:var(--bs-body-color);background-color:var(--bs-body-bg);border-color:#80a9e6;outline:0;box-shadow:0 0 0 .25rem #0052cc40}.form-control::-webkit-date-and-time-value{min-width:85px;height:1.5em;margin:0}.form-control::-webkit-datetime-edit{display:block;padding:0}.form-control::placeholder{color:var(--bs-secondary-color);opacity:1}.form-control:disabled{background-color:var(--bs-secondary-bg);opacity:1}.form-control::file-selector-button{padding:.375rem .75rem;margin:-.375rem -.75rem;margin-inline-end:.75rem;color:var(--bs-body-color);background-color:var(--bs-tertiary-bg);pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:var(--bs-border-width);border-radius:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-control::file-selector-button{transition:none}}.form-control:hover:not(:disabled):not([readonly])::file-selector-button{background-color:var(--bs-secondary-bg)}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;line-height:1.5;color:var(--bs-body-color);background-color:transparent;border:solid transparent;border-width:var(--bs-border-width) 0}.form-control-plaintext:focus{outline:0}.form-control-plaintext.form-control-sm,.form-control-plaintext.form-control-lg{padding-right:0;padding-left:0}.form-control-sm{min-height:calc(1.5em + .5rem + calc(var(--bs-border-width) * 2));padding:.25rem .5rem;font-size:.875rem;border-radius:var(--bs-border-radius-sm)}.form-control-sm::file-selector-button{padding:.25rem .5rem;margin:-.25rem -.5rem;margin-inline-end:.5rem}.form-control-lg{min-height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2));padding:.5rem 1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}.form-control-lg::file-selector-button{padding:.5rem 1rem;margin:-.5rem -1rem;margin-inline-end:1rem}textarea.form-control{min-height:calc(1.5em + .75rem + calc(var(--bs-border-width) * 2))}textarea.form-control-sm{min-height:calc(1.5em + .5rem + calc(var(--bs-border-width) * 2))}textarea.form-control-lg{min-height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2))}.form-control-color{width:3rem;height:calc(1.5em + .75rem + calc(var(--bs-border-width) * 2));padding:.375rem}.form-control-color:not(:disabled):not([readonly]){cursor:pointer}.form-control-color::-moz-color-swatch{border:0!important;border-radius:var(--bs-border-radius)}.form-control-color::-webkit-color-swatch{border:0!important;border-radius:var(--bs-border-radius)}.form-control-color.form-control-sm{height:calc(1.5em + .5rem + calc(var(--bs-border-width) * 2))}.form-control-color.form-control-lg{height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2))}.form-select{--bs-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");display:block;width:100%;padding:.375rem 2.25rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);-webkit-appearance:none;appearance:none;background-color:var(--bs-body-bg);background-image:var(--bs-form-select-bg-img),var(--bs-form-select-bg-icon, none);background-repeat:no-repeat;background-position:right .75rem center;background-size:16px 12px;border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-select{transition:none}}.form-select:focus{border-color:#80a9e6;outline:0;box-shadow:0 0 0 .25rem #0052cc40}.form-select[multiple],.form-select[size]:not([size="1"]){padding-right:.75rem;background-image:none}.form-select:disabled{background-color:var(--bs-secondary-bg)}.form-select:-moz-focusring{color:transparent;text-shadow:0 0 0 var(--bs-body-color)}.form-select-sm{padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem;border-radius:var(--bs-border-radius-sm)}.form-select-lg{padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}[data-bs-theme=dark] .form-select{--bs-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23dee2e6' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e")}.form-check{display:block;min-height:1.5rem;padding-left:1.5em;margin-bottom:.125rem}.form-check .form-check-input{float:left;margin-left:-1.5em}.form-check-reverse{padding-right:1.5em;padding-left:0;text-align:right}.form-check-reverse .form-check-input{float:right;margin-right:-1.5em;margin-left:0}.form-check-input{--bs-form-check-bg: var(--bs-body-bg);width:1em;height:1em;margin-top:.25em;vertical-align:top;-webkit-appearance:none;appearance:none;background-color:var(--bs-form-check-bg);background-image:var(--bs-form-check-bg-image);background-repeat:no-repeat;background-position:center;background-size:contain;border:var(--bs-border-width) solid var(--bs-border-color);-webkit-print-color-adjust:exact;print-color-adjust:exact}.form-check-input[type=checkbox]{border-radius:.25em}.form-check-input[type=radio]{border-radius:50%}.form-check-input:active{filter:brightness(90%)}.form-check-input:focus{border-color:#80a9e6;outline:0;box-shadow:0 0 0 .25rem #0052cc40}.form-check-input:checked{background-color:#0052cc;border-color:#0052cc}.form-check-input:checked[type=checkbox]{--bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e")}.form-check-input:checked[type=radio]{--bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e")}.form-check-input[type=checkbox]:indeterminate{background-color:#0052cc;border-color:#0052cc;--bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e")}.form-check-input:disabled{pointer-events:none;filter:none;opacity:.5}.form-check-input[disabled]~.form-check-label,.form-check-input:disabled~.form-check-label{cursor:default;opacity:.5}.form-switch{padding-left:2.5em}.form-switch .form-check-input{--bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e");width:2em;margin-left:-2.5em;background-image:var(--bs-form-switch-bg);background-position:left center;border-radius:2em;transition:background-position .15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-switch .form-check-input{transition:none}}.form-switch .form-check-input:focus{--bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2380a9e6'/%3e%3c/svg%3e")}.form-switch .form-check-input:checked{background-position:right center;--bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}.form-switch.form-check-reverse{padding-right:2.5em;padding-left:0}.form-switch.form-check-reverse .form-check-input{margin-right:-2.5em;margin-left:0}.form-check-inline{display:inline-block;margin-right:1rem}.btn-check{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.btn-check[disabled]+.btn,.btn-check:disabled+.btn{pointer-events:none;filter:none;opacity:.65}[data-bs-theme=dark] .form-switch .form-check-input:not(:checked):not(:focus){--bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%28255, 255, 255, 0.25%29'/%3e%3c/svg%3e")}.form-range{width:100%;height:1.5rem;padding:0;-webkit-appearance:none;appearance:none;background-color:transparent}.form-range:focus{outline:0}.form-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem #0052cc40}.form-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem #0052cc40}.form-range::-moz-focus-outer{border:0}.form-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;-webkit-appearance:none;appearance:none;background-color:#0052cc;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.form-range::-webkit-slider-thumb:active{background-color:#b3cbf0}.form-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:var(--bs-tertiary-bg);border-color:transparent;border-radius:1rem}.form-range::-moz-range-thumb{width:1rem;height:1rem;-webkit-appearance:none;appearance:none;background-color:#0052cc;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-range::-moz-range-thumb{-moz-transition:none;transition:none}}.form-range::-moz-range-thumb:active{background-color:#b3cbf0}.form-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:var(--bs-tertiary-bg);border-color:transparent;border-radius:1rem}.form-range:disabled{pointer-events:none}.form-range:disabled::-webkit-slider-thumb{background-color:var(--bs-secondary-color)}.form-range:disabled::-moz-range-thumb{background-color:var(--bs-secondary-color)}.form-floating{position:relative}.form-floating>.form-control,.form-floating>.form-control-plaintext,.form-floating>.form-select{height:calc(3.5rem + calc(var(--bs-border-width) * 2));min-height:calc(3.5rem + calc(var(--bs-border-width) * 2));line-height:1.25}.form-floating>label{position:absolute;top:0;left:0;z-index:2;height:100%;padding:1rem .75rem;overflow:hidden;text-align:start;text-overflow:ellipsis;white-space:nowrap;pointer-events:none;border:var(--bs-border-width) solid transparent;transform-origin:0 0;transition:opacity .1s ease-in-out,transform .1s ease-in-out}@media (prefers-reduced-motion: reduce){.form-floating>label{transition:none}}.form-floating>.form-control,.form-floating>.form-control-plaintext{padding:1rem .75rem}.form-floating>.form-control::placeholder,.form-floating>.form-control-plaintext::placeholder{color:transparent}.form-floating>.form-control:focus,.form-floating>.form-control:not(:placeholder-shown),.form-floating>.form-control-plaintext:focus,.form-floating>.form-control-plaintext:not(:placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:-webkit-autofill,.form-floating>.form-control-plaintext:-webkit-autofill{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-select{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label,.form-floating>.form-control-plaintext~label,.form-floating>.form-select~label{color:rgba(var(--bs-body-color-rgb),.65);transform:scale(.85) translateY(-.5rem) translate(.15rem)}.form-floating>.form-control:focus~label:after,.form-floating>.form-control:not(:placeholder-shown)~label:after,.form-floating>.form-control-plaintext~label:after,.form-floating>.form-select~label:after{position:absolute;inset:1rem .375rem;z-index:-1;height:1.5em;content:"";background-color:var(--bs-body-bg);border-radius:var(--bs-border-radius)}.form-floating>.form-control:-webkit-autofill~label{color:rgba(var(--bs-body-color-rgb),.65);transform:scale(.85) translateY(-.5rem) translate(.15rem)}.form-floating>.form-control-plaintext~label{border-width:var(--bs-border-width) 0}.form-floating>:disabled~label,.form-floating>.form-control:disabled~label{color:#6c757d}.form-floating>:disabled~label:after,.form-floating>.form-control:disabled~label:after{background-color:var(--bs-secondary-bg)}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.form-control,.input-group>.form-select,.input-group>.form-floating{position:relative;flex:1 1 auto;width:1%;min-width:0}.input-group>.form-control:focus,.input-group>.form-select:focus,.input-group>.form-floating:focus-within{z-index:5}.input-group .btn{position:relative;z-index:2}.input-group .btn:focus{z-index:5}.input-group-text{display:flex;align-items:center;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);text-align:center;white-space:nowrap;background-color:var(--bs-tertiary-bg);border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius)}.input-group-lg>.form-control,.input-group-lg>.form-select,.input-group-lg>.input-group-text,.input-group-lg>.btn{padding:.5rem 1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}.input-group-sm>.form-control,.input-group-sm>.form-select,.input-group-sm>.input-group-text,.input-group-sm>.btn{padding:.25rem .5rem;font-size:.875rem;border-radius:var(--bs-border-radius-sm)}.input-group-lg>.form-select,.input-group-sm>.form-select{padding-right:3rem}.input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),.input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n+3),.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-control,.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-select{border-top-right-radius:0;border-bottom-right-radius:0}.input-group.has-validation>:nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),.input-group.has-validation>.dropdown-toggle:nth-last-child(n+4),.input-group.has-validation>.form-floating:nth-last-child(n+3)>.form-control,.input-group.has-validation>.form-floating:nth-last-child(n+3)>.form-select{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){margin-left:calc(var(--bs-border-width) * -1);border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.form-floating:not(:first-child)>.form-control,.input-group>.form-floating:not(:first-child)>.form-select{border-top-left-radius:0;border-bottom-left-radius:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:var(--bs-form-valid-color)}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:var(--bs-success);border-radius:var(--bs-border-radius)}.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip,.is-valid~.valid-feedback,.is-valid~.valid-tooltip{display:block}.was-validated .form-control:valid,.form-control.is-valid{border-color:var(--bs-form-valid-border-color);padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2336B37E' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.was-validated .form-control:valid:focus,.form-control.is-valid:focus{border-color:var(--bs-form-valid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-success-rgb),.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.was-validated .form-select:valid,.form-select.is-valid{border-color:var(--bs-form-valid-border-color)}.was-validated .form-select:valid:not([multiple]):not([size]),.was-validated .form-select:valid:not([multiple])[size="1"],.form-select.is-valid:not([multiple]):not([size]),.form-select.is-valid:not([multiple])[size="1"]{--bs-form-select-bg-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2336B37E' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");padding-right:4.125rem;background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.was-validated .form-select:valid:focus,.form-select.is-valid:focus{border-color:var(--bs-form-valid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-success-rgb),.25)}.was-validated .form-control-color:valid,.form-control-color.is-valid{width:calc(3.75rem + 1.5em)}.was-validated .form-check-input:valid,.form-check-input.is-valid{border-color:var(--bs-form-valid-border-color)}.was-validated .form-check-input:valid:checked,.form-check-input.is-valid:checked{background-color:var(--bs-form-valid-color)}.was-validated .form-check-input:valid:focus,.form-check-input.is-valid:focus{box-shadow:0 0 0 .25rem rgba(var(--bs-success-rgb),.25)}.was-validated .form-check-input:valid~.form-check-label,.form-check-input.is-valid~.form-check-label{color:var(--bs-form-valid-color)}.form-check-inline .form-check-input~.valid-feedback{margin-left:.5em}.was-validated .input-group>.form-control:not(:focus):valid,.input-group>.form-control:not(:focus).is-valid,.was-validated .input-group>.form-select:not(:focus):valid,.input-group>.form-select:not(:focus).is-valid,.was-validated .input-group>.form-floating:not(:focus-within):valid,.input-group>.form-floating:not(:focus-within).is-valid{z-index:3}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:var(--bs-form-invalid-color)}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:var(--bs-danger);border-radius:var(--bs-border-radius)}.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip,.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip{display:block}.was-validated .form-control:invalid,.form-control.is-invalid{border-color:var(--bs-form-invalid-border-color);padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23FF5630'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23FF5630' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.was-validated .form-control:invalid:focus,.form-control.is-invalid:focus{border-color:var(--bs-form-invalid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-danger-rgb),.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.was-validated .form-select:invalid,.form-select.is-invalid{border-color:var(--bs-form-invalid-border-color)}.was-validated .form-select:invalid:not([multiple]):not([size]),.was-validated .form-select:invalid:not([multiple])[size="1"],.form-select.is-invalid:not([multiple]):not([size]),.form-select.is-invalid:not([multiple])[size="1"]{--bs-form-select-bg-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23FF5630'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23FF5630' stroke='none'/%3e%3c/svg%3e");padding-right:4.125rem;background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.was-validated .form-select:invalid:focus,.form-select.is-invalid:focus{border-color:var(--bs-form-invalid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-danger-rgb),.25)}.was-validated .form-control-color:invalid,.form-control-color.is-invalid{width:calc(3.75rem + 1.5em)}.was-validated .form-check-input:invalid,.form-check-input.is-invalid{border-color:var(--bs-form-invalid-border-color)}.was-validated .form-check-input:invalid:checked,.form-check-input.is-invalid:checked{background-color:var(--bs-form-invalid-color)}.was-validated .form-check-input:invalid:focus,.form-check-input.is-invalid:focus{box-shadow:0 0 0 .25rem rgba(var(--bs-danger-rgb),.25)}.was-validated .form-check-input:invalid~.form-check-label,.form-check-input.is-invalid~.form-check-label{color:var(--bs-form-invalid-color)}.form-check-inline .form-check-input~.invalid-feedback{margin-left:.5em}.was-validated .input-group>.form-control:not(:focus):invalid,.input-group>.form-control:not(:focus).is-invalid,.was-validated .input-group>.form-select:not(:focus):invalid,.input-group>.form-select:not(:focus).is-invalid,.was-validated .input-group>.form-floating:not(:focus-within):invalid,.input-group>.form-floating:not(:focus-within).is-invalid{z-index:4}.btn{--bs-btn-padding-x: .75rem;--bs-btn-padding-y: .375rem;--bs-btn-font-family: ;--bs-btn-font-size: 1rem;--bs-btn-font-weight: 400;--bs-btn-line-height: 1.5;--bs-btn-color: var(--bs-body-color);--bs-btn-bg: transparent;--bs-btn-border-width: var(--bs-border-width);--bs-btn-border-color: transparent;--bs-btn-border-radius: var(--bs-border-radius);--bs-btn-hover-border-color: transparent;--bs-btn-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075);--bs-btn-disabled-opacity: .65;--bs-btn-focus-box-shadow: 0 0 0 .25rem rgba(var(--bs-btn-focus-shadow-rgb), .5);display:inline-block;padding:var(--bs-btn-padding-y) var(--bs-btn-padding-x);font-family:var(--bs-btn-font-family);font-size:var(--bs-btn-font-size);font-weight:var(--bs-btn-font-weight);line-height:var(--bs-btn-line-height);color:var(--bs-btn-color);text-align:center;text-decoration:none;vertical-align:middle;cursor:pointer;-webkit-user-select:none;user-select:none;border:var(--bs-btn-border-width) solid var(--bs-btn-border-color);border-radius:var(--bs-btn-border-radius);background-color:var(--bs-btn-bg);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion: reduce){.btn{transition:none}}.btn:hover{color:var(--bs-btn-hover-color);background-color:var(--bs-btn-hover-bg);border-color:var(--bs-btn-hover-border-color)}.btn-check+.btn:hover{color:var(--bs-btn-color);background-color:var(--bs-btn-bg);border-color:var(--bs-btn-border-color)}.btn:focus-visible{color:var(--bs-btn-hover-color);background-color:var(--bs-btn-hover-bg);border-color:var(--bs-btn-hover-border-color);outline:0;box-shadow:var(--bs-btn-focus-box-shadow)}.btn-check:focus-visible+.btn{border-color:var(--bs-btn-hover-border-color);outline:0;box-shadow:var(--bs-btn-focus-box-shadow)}.btn-check:checked+.btn,:not(.btn-check)+.btn:active,.btn:first-child:active,.btn.active,.btn.show{color:var(--bs-btn-active-color);background-color:var(--bs-btn-active-bg);border-color:var(--bs-btn-active-border-color)}.btn-check:checked+.btn:focus-visible,:not(.btn-check)+.btn:active:focus-visible,.btn:first-child:active:focus-visible,.btn.active:focus-visible,.btn.show:focus-visible{box-shadow:var(--bs-btn-focus-box-shadow)}.btn:disabled,.btn.disabled,fieldset:disabled .btn{color:var(--bs-btn-disabled-color);pointer-events:none;background-color:var(--bs-btn-disabled-bg);border-color:var(--bs-btn-disabled-border-color);opacity:var(--bs-btn-disabled-opacity)}.btn-primary{--bs-btn-color: #fff;--bs-btn-bg: #0052CC;--bs-btn-border-color: #0052CC;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #0046ad;--bs-btn-hover-border-color: #0042a3;--bs-btn-focus-shadow-rgb: 38, 108, 212;--bs-btn-active-color: #fff;--bs-btn-active-bg: #0042a3;--bs-btn-active-border-color: #003e99;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #0052CC;--bs-btn-disabled-border-color: #0052CC}.btn-secondary{--bs-btn-color: #fff;--bs-btn-bg: #6554C0;--bs-btn-border-color: #6554C0;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #5647a3;--bs-btn-hover-border-color: #51439a;--bs-btn-focus-shadow-rgb: 124, 110, 201;--bs-btn-active-color: #fff;--bs-btn-active-bg: #51439a;--bs-btn-active-border-color: #4c3f90;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #6554C0;--bs-btn-disabled-border-color: #6554C0}.btn-success{--bs-btn-color: #000;--bs-btn-bg: #36B37E;--bs-btn-border-color: #36B37E;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #54be91;--bs-btn-hover-border-color: #4abb8b;--bs-btn-focus-shadow-rgb: 46, 152, 107;--bs-btn-active-color: #000;--bs-btn-active-bg: #5ec298;--bs-btn-active-border-color: #4abb8b;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #36B37E;--bs-btn-disabled-border-color: #36B37E}.btn-info{--bs-btn-color: #000;--bs-btn-bg: #B3BAC5;--bs-btn-border-color: #B3BAC5;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #bec4ce;--bs-btn-hover-border-color: #bbc1cb;--bs-btn-focus-shadow-rgb: 152, 158, 167;--bs-btn-active-color: #000;--bs-btn-active-bg: #c2c8d1;--bs-btn-active-border-color: #bbc1cb;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #B3BAC5;--bs-btn-disabled-border-color: #B3BAC5}.btn-warning{--bs-btn-color: #000;--bs-btn-bg: #FFAB00;--bs-btn-border-color: #FFAB00;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #ffb826;--bs-btn-hover-border-color: #ffb31a;--bs-btn-focus-shadow-rgb: 217, 145, 0;--bs-btn-active-color: #000;--bs-btn-active-bg: #ffbc33;--bs-btn-active-border-color: #ffb31a;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #FFAB00;--bs-btn-disabled-border-color: #FFAB00}.btn-danger{--bs-btn-color: #000;--bs-btn-bg: #FF5630;--bs-btn-border-color: #FF5630;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #ff6f4f;--bs-btn-hover-border-color: #ff6745;--bs-btn-focus-shadow-rgb: 217, 73, 41;--bs-btn-active-color: #000;--bs-btn-active-bg: #ff7859;--bs-btn-active-border-color: #ff6745;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #FF5630;--bs-btn-disabled-border-color: #FF5630}.btn-light{--bs-btn-color: #000;--bs-btn-bg: #F4F5F7;--bs-btn-border-color: #F4F5F7;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #cfd0d2;--bs-btn-hover-border-color: #c3c4c6;--bs-btn-focus-shadow-rgb: 207, 208, 210;--bs-btn-active-color: #000;--bs-btn-active-bg: #c3c4c6;--bs-btn-active-border-color: #b7b8b9;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #F4F5F7;--bs-btn-disabled-border-color: #F4F5F7}.btn-dark{--bs-btn-color: #fff;--bs-btn-bg: #212529;--bs-btn-border-color: #212529;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #424649;--bs-btn-hover-border-color: #373b3e;--bs-btn-focus-shadow-rgb: 66, 70, 73;--bs-btn-active-color: #fff;--bs-btn-active-bg: #4d5154;--bs-btn-active-border-color: #373b3e;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #212529;--bs-btn-disabled-border-color: #212529}.btn-outline-primary{--bs-btn-color: #0052CC;--bs-btn-border-color: #0052CC;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #0052CC;--bs-btn-hover-border-color: #0052CC;--bs-btn-focus-shadow-rgb: 0, 82, 204;--bs-btn-active-color: #fff;--bs-btn-active-bg: #0052CC;--bs-btn-active-border-color: #0052CC;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #0052CC;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #0052CC;--bs-gradient: none}.btn-outline-secondary{--bs-btn-color: #6554C0;--bs-btn-border-color: #6554C0;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #6554C0;--bs-btn-hover-border-color: #6554C0;--bs-btn-focus-shadow-rgb: 101, 84, 192;--bs-btn-active-color: #fff;--bs-btn-active-bg: #6554C0;--bs-btn-active-border-color: #6554C0;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #6554C0;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #6554C0;--bs-gradient: none}.btn-outline-success{--bs-btn-color: #36B37E;--bs-btn-border-color: #36B37E;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #36B37E;--bs-btn-hover-border-color: #36B37E;--bs-btn-focus-shadow-rgb: 54, 179, 126;--bs-btn-active-color: #000;--bs-btn-active-bg: #36B37E;--bs-btn-active-border-color: #36B37E;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #36B37E;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #36B37E;--bs-gradient: none}.btn-outline-info{--bs-btn-color: #B3BAC5;--bs-btn-border-color: #B3BAC5;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #B3BAC5;--bs-btn-hover-border-color: #B3BAC5;--bs-btn-focus-shadow-rgb: 179, 186, 197;--bs-btn-active-color: #000;--bs-btn-active-bg: #B3BAC5;--bs-btn-active-border-color: #B3BAC5;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #B3BAC5;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #B3BAC5;--bs-gradient: none}.btn-outline-warning{--bs-btn-color: #FFAB00;--bs-btn-border-color: #FFAB00;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #FFAB00;--bs-btn-hover-border-color: #FFAB00;--bs-btn-focus-shadow-rgb: 255, 171, 0;--bs-btn-active-color: #000;--bs-btn-active-bg: #FFAB00;--bs-btn-active-border-color: #FFAB00;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #FFAB00;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #FFAB00;--bs-gradient: none}.btn-outline-danger{--bs-btn-color: #FF5630;--bs-btn-border-color: #FF5630;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #FF5630;--bs-btn-hover-border-color: #FF5630;--bs-btn-focus-shadow-rgb: 255, 86, 48;--bs-btn-active-color: #000;--bs-btn-active-bg: #FF5630;--bs-btn-active-border-color: #FF5630;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #FF5630;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #FF5630;--bs-gradient: none}.btn-outline-light{--bs-btn-color: #F4F5F7;--bs-btn-border-color: #F4F5F7;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #F4F5F7;--bs-btn-hover-border-color: #F4F5F7;--bs-btn-focus-shadow-rgb: 244, 245, 247;--bs-btn-active-color: #000;--bs-btn-active-bg: #F4F5F7;--bs-btn-active-border-color: #F4F5F7;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #F4F5F7;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #F4F5F7;--bs-gradient: none}.btn-outline-dark{--bs-btn-color: #212529;--bs-btn-border-color: #212529;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #212529;--bs-btn-hover-border-color: #212529;--bs-btn-focus-shadow-rgb: 33, 37, 41;--bs-btn-active-color: #fff;--bs-btn-active-bg: #212529;--bs-btn-active-border-color: #212529;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #212529;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #212529;--bs-gradient: none}.btn-link{--bs-btn-font-weight: 400;--bs-btn-color: var(--bs-link-color);--bs-btn-bg: transparent;--bs-btn-border-color: transparent;--bs-btn-hover-color: var(--bs-link-hover-color);--bs-btn-hover-border-color: transparent;--bs-btn-active-color: var(--bs-link-hover-color);--bs-btn-active-border-color: transparent;--bs-btn-disabled-color: #6c757d;--bs-btn-disabled-border-color: transparent;--bs-btn-box-shadow: 0 0 0 #000;--bs-btn-focus-shadow-rgb: 38, 108, 212;text-decoration:underline}.btn-link:focus-visible{color:var(--bs-btn-color)}.btn-link:hover{color:var(--bs-btn-hover-color)}.btn-lg,.btn-group-lg>.btn{--bs-btn-padding-y: .5rem;--bs-btn-padding-x: 1rem;--bs-btn-font-size: 1.25rem;--bs-btn-border-radius: var(--bs-border-radius-lg)}.btn-sm,.btn-group-sm>.btn{--bs-btn-padding-y: .25rem;--bs-btn-padding-x: .5rem;--bs-btn-font-size: .875rem;--bs-btn-border-radius: var(--bs-border-radius-sm)}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion: reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion: reduce){.collapsing{transition:none}}.collapsing.collapse-horizontal{width:0;height:auto;transition:width .35s ease}@media (prefers-reduced-motion: reduce){.collapsing.collapse-horizontal{transition:none}}.dropup,.dropend,.dropdown,.dropstart,.dropup-center,.dropdown-center{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty:after{margin-left:0}.dropdown-menu{--bs-dropdown-zindex: 1000;--bs-dropdown-min-width: 10rem;--bs-dropdown-padding-x: 0;--bs-dropdown-padding-y: .5rem;--bs-dropdown-spacer: .125rem;--bs-dropdown-font-size: 1rem;--bs-dropdown-color: var(--bs-body-color);--bs-dropdown-bg: var(--bs-body-bg);--bs-dropdown-border-color: var(--bs-border-color-translucent);--bs-dropdown-border-radius: var(--bs-border-radius);--bs-dropdown-border-width: var(--bs-border-width);--bs-dropdown-inner-border-radius: calc(var(--bs-border-radius) - var(--bs-border-width));--bs-dropdown-divider-bg: var(--bs-border-color-translucent);--bs-dropdown-divider-margin-y: .5rem;--bs-dropdown-box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .15);--bs-dropdown-link-color: var(--bs-body-color);--bs-dropdown-link-hover-color: var(--bs-body-color);--bs-dropdown-link-hover-bg: var(--bs-tertiary-bg);--bs-dropdown-link-active-color: #fff;--bs-dropdown-link-active-bg: #0052CC;--bs-dropdown-link-disabled-color: var(--bs-tertiary-color);--bs-dropdown-item-padding-x: 1rem;--bs-dropdown-item-padding-y: .25rem;--bs-dropdown-header-color: #6c757d;--bs-dropdown-header-padding-x: 1rem;--bs-dropdown-header-padding-y: .5rem;position:absolute;z-index:var(--bs-dropdown-zindex);display:none;min-width:var(--bs-dropdown-min-width);padding:var(--bs-dropdown-padding-y) var(--bs-dropdown-padding-x);margin:0;font-size:var(--bs-dropdown-font-size);color:var(--bs-dropdown-color);text-align:left;list-style:none;background-color:var(--bs-dropdown-bg);background-clip:padding-box;border:var(--bs-dropdown-border-width) solid var(--bs-dropdown-border-color);border-radius:var(--bs-dropdown-border-radius)}.dropdown-menu[data-bs-popper]{top:100%;left:0;margin-top:var(--bs-dropdown-spacer)}.dropdown-menu-start{--bs-position: start}.dropdown-menu-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-end{--bs-position: end}.dropdown-menu-end[data-bs-popper]{right:0;left:auto}@media (min-width: 576px){.dropdown-menu-sm-start{--bs-position: start}.dropdown-menu-sm-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-sm-end{--bs-position: end}.dropdown-menu-sm-end[data-bs-popper]{right:0;left:auto}}@media (min-width: 768px){.dropdown-menu-md-start{--bs-position: start}.dropdown-menu-md-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-md-end{--bs-position: end}.dropdown-menu-md-end[data-bs-popper]{right:0;left:auto}}@media (min-width: 992px){.dropdown-menu-lg-start{--bs-position: start}.dropdown-menu-lg-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-lg-end{--bs-position: end}.dropdown-menu-lg-end[data-bs-popper]{right:0;left:auto}}@media (min-width: 1200px){.dropdown-menu-xl-start{--bs-position: start}.dropdown-menu-xl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xl-end{--bs-position: end}.dropdown-menu-xl-end[data-bs-popper]{right:0;left:auto}}@media (min-width: 1400px){.dropdown-menu-xxl-start{--bs-position: start}.dropdown-menu-xxl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xxl-end{--bs-position: end}.dropdown-menu-xxl-end[data-bs-popper]{right:0;left:auto}}.dropup .dropdown-menu[data-bs-popper]{top:auto;bottom:100%;margin-top:0;margin-bottom:var(--bs-dropdown-spacer)}.dropup .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty:after{margin-left:0}.dropend .dropdown-menu[data-bs-popper]{top:0;right:auto;left:100%;margin-top:0;margin-left:var(--bs-dropdown-spacer)}.dropend .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropend .dropdown-toggle:empty:after{margin-left:0}.dropend .dropdown-toggle:after{vertical-align:0}.dropstart .dropdown-menu[data-bs-popper]{top:0;right:100%;left:auto;margin-top:0;margin-right:var(--bs-dropdown-spacer)}.dropstart .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropstart .dropdown-toggle:after{display:none}.dropstart .dropdown-toggle:before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropstart .dropdown-toggle:empty:after{margin-left:0}.dropstart .dropdown-toggle:before{vertical-align:0}.dropdown-divider{height:0;margin:var(--bs-dropdown-divider-margin-y) 0;overflow:hidden;border-top:1px solid var(--bs-dropdown-divider-bg);opacity:1}.dropdown-item{display:block;width:100%;padding:var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);clear:both;font-weight:400;color:var(--bs-dropdown-link-color);text-align:inherit;text-decoration:none;white-space:nowrap;background-color:transparent;border:0;border-radius:var(--bs-dropdown-item-border-radius, 0)}.dropdown-item:hover,.dropdown-item:focus{color:var(--bs-dropdown-link-hover-color);background-color:var(--bs-dropdown-link-hover-bg)}.dropdown-item.active,.dropdown-item:active{color:var(--bs-dropdown-link-active-color);text-decoration:none;background-color:var(--bs-dropdown-link-active-bg)}.dropdown-item.disabled,.dropdown-item:disabled{color:var(--bs-dropdown-link-disabled-color);pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:var(--bs-dropdown-header-padding-y) var(--bs-dropdown-header-padding-x);margin-bottom:0;font-size:.875rem;color:var(--bs-dropdown-header-color);white-space:nowrap}.dropdown-item-text{display:block;padding:var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);color:var(--bs-dropdown-link-color)}.dropdown-menu-dark{--bs-dropdown-color: #dee2e6;--bs-dropdown-bg: #343a40;--bs-dropdown-border-color: var(--bs-border-color-translucent);--bs-dropdown-box-shadow: ;--bs-dropdown-link-color: #dee2e6;--bs-dropdown-link-hover-color: #fff;--bs-dropdown-divider-bg: var(--bs-border-color-translucent);--bs-dropdown-link-hover-bg: rgba(255, 255, 255, .15);--bs-dropdown-link-active-color: #fff;--bs-dropdown-link-active-bg: #0052CC;--bs-dropdown-link-disabled-color: #adb5bd;--bs-dropdown-header-color: #adb5bd}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;flex:1 1 auto}.btn-group>.btn-check:checked+.btn,.btn-group>.btn-check:focus+.btn,.btn-group>.btn:hover,.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn-check:checked+.btn,.btn-group-vertical>.btn-check:focus+.btn,.btn-group-vertical>.btn:hover,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn.active{z-index:1}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group{border-radius:var(--bs-border-radius)}.btn-group>:not(.btn-check:first-child)+.btn,.btn-group>.btn-group:not(:first-child){margin-left:calc(var(--bs-border-width) * -1)}.btn-group>.btn:not(:last-child):not(.dropdown-toggle),.btn-group>.btn.dropdown-toggle-split:first-child,.btn-group>.btn-group:not(:last-child)>.btn{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:nth-child(n+3),.btn-group>:not(.btn-check)+.btn,.btn-group>.btn-group:not(:first-child)>.btn{border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split:after,.dropup .dropdown-toggle-split:after,.dropend .dropdown-toggle-split:after{margin-left:0}.dropstart .dropdown-toggle-split:before{margin-right:0}.btn-sm+.dropdown-toggle-split,.btn-group-sm>.btn+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-lg+.dropdown-toggle-split,.btn-group-lg>.btn+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn:not(:first-child),.btn-group-vertical>.btn-group:not(:first-child){margin-top:calc(var(--bs-border-width) * -1)}.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle),.btn-group-vertical>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn~.btn,.btn-group-vertical>.btn-group:not(:first-child)>.btn{border-top-left-radius:0;border-top-right-radius:0}.nav{--bs-nav-link-padding-x: 1rem;--bs-nav-link-padding-y: .5rem;--bs-nav-link-font-weight: ;--bs-nav-link-color: var(--bs-link-color);--bs-nav-link-hover-color: var(--bs-link-hover-color);--bs-nav-link-disabled-color: var(--bs-secondary-color);display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:var(--bs-nav-link-padding-y) var(--bs-nav-link-padding-x);font-size:var(--bs-nav-link-font-size);font-weight:var(--bs-nav-link-font-weight);color:var(--bs-nav-link-color);text-decoration:none;background:none;border:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out}@media (prefers-reduced-motion: reduce){.nav-link{transition:none}}.nav-link:hover,.nav-link:focus{color:var(--bs-nav-link-hover-color)}.nav-link:focus-visible{outline:0;box-shadow:0 0 0 .25rem #0052cc40}.nav-link.disabled,.nav-link:disabled{color:var(--bs-nav-link-disabled-color);pointer-events:none;cursor:default}.nav-tabs{--bs-nav-tabs-border-width: var(--bs-border-width);--bs-nav-tabs-border-color: var(--bs-border-color);--bs-nav-tabs-border-radius: var(--bs-border-radius);--bs-nav-tabs-link-hover-border-color: var(--bs-secondary-bg) var(--bs-secondary-bg) var(--bs-border-color);--bs-nav-tabs-link-active-color: var(--bs-emphasis-color);--bs-nav-tabs-link-active-bg: var(--bs-body-bg);--bs-nav-tabs-link-active-border-color: var(--bs-border-color) var(--bs-border-color) var(--bs-body-bg);border-bottom:var(--bs-nav-tabs-border-width) solid var(--bs-nav-tabs-border-color)}.nav-tabs .nav-link{margin-bottom:calc(-1 * var(--bs-nav-tabs-border-width));border:var(--bs-nav-tabs-border-width) solid transparent;border-top-left-radius:var(--bs-nav-tabs-border-radius);border-top-right-radius:var(--bs-nav-tabs-border-radius)}.nav-tabs .nav-link:hover,.nav-tabs .nav-link:focus{isolation:isolate;border-color:var(--bs-nav-tabs-link-hover-border-color)}.nav-tabs .nav-link.active,.nav-tabs .nav-item.show .nav-link{color:var(--bs-nav-tabs-link-active-color);background-color:var(--bs-nav-tabs-link-active-bg);border-color:var(--bs-nav-tabs-link-active-border-color)}.nav-tabs .dropdown-menu{margin-top:calc(-1 * var(--bs-nav-tabs-border-width));border-top-left-radius:0;border-top-right-radius:0}.nav-pills{--bs-nav-pills-border-radius: var(--bs-border-radius);--bs-nav-pills-link-active-color: #fff;--bs-nav-pills-link-active-bg: #0052CC}.nav-pills .nav-link{border-radius:var(--bs-nav-pills-border-radius)}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:var(--bs-nav-pills-link-active-color);background-color:var(--bs-nav-pills-link-active-bg)}.nav-underline{--bs-nav-underline-gap: 1rem;--bs-nav-underline-border-width: .125rem;--bs-nav-underline-link-active-color: var(--bs-emphasis-color);gap:var(--bs-nav-underline-gap)}.nav-underline .nav-link{padding-right:0;padding-left:0;border-bottom:var(--bs-nav-underline-border-width) solid transparent}.nav-underline .nav-link:hover,.nav-underline .nav-link:focus{border-bottom-color:currentcolor}.nav-underline .nav-link.active,.nav-underline .show>.nav-link{font-weight:700;color:var(--bs-nav-underline-link-active-color);border-bottom-color:currentcolor}.nav-fill>.nav-link,.nav-fill .nav-item{flex:1 1 auto;text-align:center}.nav-justified>.nav-link,.nav-justified .nav-item{flex-basis:0;flex-grow:1;text-align:center}.nav-fill .nav-item .nav-link,.nav-justified .nav-item .nav-link{width:100%}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{--bs-navbar-padding-x: 0;--bs-navbar-padding-y: .5rem;--bs-navbar-color: rgba(var(--bs-emphasis-color-rgb), .65);--bs-navbar-hover-color: rgba(var(--bs-emphasis-color-rgb), .8);--bs-navbar-disabled-color: rgba(var(--bs-emphasis-color-rgb), .3);--bs-navbar-active-color: rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-brand-padding-y: .3125rem;--bs-navbar-brand-margin-end: 1rem;--bs-navbar-brand-font-size: 1.25rem;--bs-navbar-brand-color: rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-brand-hover-color: rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-nav-link-padding-x: .5rem;--bs-navbar-toggler-padding-y: .25rem;--bs-navbar-toggler-padding-x: .75rem;--bs-navbar-toggler-font-size: 1.25rem;--bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%2833, 37, 41, 0.75%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");--bs-navbar-toggler-border-color: rgba(var(--bs-emphasis-color-rgb), .15);--bs-navbar-toggler-border-radius: var(--bs-border-radius);--bs-navbar-toggler-focus-width: .25rem;--bs-navbar-toggler-transition: box-shadow .15s ease-in-out;position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding:var(--bs-navbar-padding-y) var(--bs-navbar-padding-x)}.navbar>.container,.navbar>.container-fluid,.navbar>.container-sm,.navbar>.container-md,.navbar>.container-lg,.navbar>.container-xl,.navbar>.container-xxl{display:flex;flex-wrap:inherit;align-items:center;justify-content:space-between}.navbar-brand{padding-top:var(--bs-navbar-brand-padding-y);padding-bottom:var(--bs-navbar-brand-padding-y);margin-right:var(--bs-navbar-brand-margin-end);font-size:var(--bs-navbar-brand-font-size);color:var(--bs-navbar-brand-color);text-decoration:none;white-space:nowrap}.navbar-brand:hover,.navbar-brand:focus{color:var(--bs-navbar-brand-hover-color)}.navbar-nav{--bs-nav-link-padding-x: 0;--bs-nav-link-padding-y: .5rem;--bs-nav-link-font-weight: ;--bs-nav-link-color: var(--bs-navbar-color);--bs-nav-link-hover-color: var(--bs-navbar-hover-color);--bs-nav-link-disabled-color: var(--bs-navbar-disabled-color);display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link.active,.navbar-nav .nav-link.show{color:var(--bs-navbar-active-color)}.navbar-nav .dropdown-menu{position:static}.navbar-text{padding-top:.5rem;padding-bottom:.5rem;color:var(--bs-navbar-color)}.navbar-text a,.navbar-text a:hover,.navbar-text a:focus{color:var(--bs-navbar-active-color)}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler{padding:var(--bs-navbar-toggler-padding-y) var(--bs-navbar-toggler-padding-x);font-size:var(--bs-navbar-toggler-font-size);line-height:1;color:var(--bs-navbar-color);background-color:transparent;border:var(--bs-border-width) solid var(--bs-navbar-toggler-border-color);border-radius:var(--bs-navbar-toggler-border-radius);transition:var(--bs-navbar-toggler-transition)}@media (prefers-reduced-motion: reduce){.navbar-toggler{transition:none}}.navbar-toggler:hover{text-decoration:none}.navbar-toggler:focus{text-decoration:none;outline:0;box-shadow:0 0 0 var(--bs-navbar-toggler-focus-width)}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;background-image:var(--bs-navbar-toggler-icon-bg);background-repeat:no-repeat;background-position:center;background-size:100%}.navbar-nav-scroll{max-height:var(--bs-scroll-height, 75vh);overflow-y:auto}@media (min-width: 576px){.navbar-expand-sm{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}.navbar-expand-sm .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-sm .offcanvas .offcanvas-header{display:none}.navbar-expand-sm .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width: 768px){.navbar-expand-md{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}.navbar-expand-md .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-md .offcanvas .offcanvas-header{display:none}.navbar-expand-md .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width: 992px){.navbar-expand-lg{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}.navbar-expand-lg .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-lg .offcanvas .offcanvas-header{display:none}.navbar-expand-lg .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width: 1200px){.navbar-expand-xl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}.navbar-expand-xl .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-xl .offcanvas .offcanvas-header{display:none}.navbar-expand-xl .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width: 1400px){.navbar-expand-xxl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xxl .navbar-nav{flex-direction:row}.navbar-expand-xxl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xxl .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-xxl .navbar-nav-scroll{overflow:visible}.navbar-expand-xxl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xxl .navbar-toggler{display:none}.navbar-expand-xxl .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-xxl .offcanvas .offcanvas-header{display:none}.navbar-expand-xxl .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}.navbar-expand{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-expand .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand .offcanvas .offcanvas-header{display:none}.navbar-expand .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}.navbar-dark,.navbar[data-bs-theme=dark]{--bs-navbar-color: rgba(255, 255, 255, .55);--bs-navbar-hover-color: rgba(255, 255, 255, .75);--bs-navbar-disabled-color: rgba(255, 255, 255, .25);--bs-navbar-active-color: #fff;--bs-navbar-brand-color: #fff;--bs-navbar-brand-hover-color: #fff;--bs-navbar-toggler-border-color: rgba(255, 255, 255, .1);--bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}[data-bs-theme=dark] .navbar-toggler-icon{--bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.card{--bs-card-spacer-y: 1rem;--bs-card-spacer-x: 1rem;--bs-card-title-spacer-y: .5rem;--bs-card-title-color: ;--bs-card-subtitle-color: ;--bs-card-border-width: var(--bs-border-width);--bs-card-border-color: var(--bs-border-color-translucent);--bs-card-border-radius: var(--bs-border-radius);--bs-card-box-shadow: ;--bs-card-inner-border-radius: calc(var(--bs-border-radius) - (var(--bs-border-width)));--bs-card-cap-padding-y: .5rem;--bs-card-cap-padding-x: 1rem;--bs-card-cap-bg: rgba(var(--bs-body-color-rgb), .03);--bs-card-cap-color: ;--bs-card-height: ;--bs-card-color: ;--bs-card-bg: var(--bs-body-bg);--bs-card-img-overlay-padding: 1rem;--bs-card-group-margin: .75rem;position:relative;display:flex;flex-direction:column;min-width:0;height:var(--bs-card-height);color:var(--bs-body-color);word-wrap:break-word;background-color:var(--bs-card-bg);background-clip:border-box;border:var(--bs-card-border-width) solid var(--bs-card-border-color);border-radius:var(--bs-card-border-radius)}.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:var(--bs-card-inner-border-radius);border-top-right-radius:var(--bs-card-inner-border-radius)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:var(--bs-card-inner-border-radius);border-bottom-left-radius:var(--bs-card-inner-border-radius)}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{flex:1 1 auto;padding:var(--bs-card-spacer-y) var(--bs-card-spacer-x);color:var(--bs-card-color)}.card-title{margin-bottom:var(--bs-card-title-spacer-y);color:var(--bs-card-title-color)}.card-subtitle{margin-top:calc(-.5 * var(--bs-card-title-spacer-y));margin-bottom:0;color:var(--bs-card-subtitle-color)}.card-text:last-child{margin-bottom:0}.card-link+.card-link{margin-left:var(--bs-card-spacer-x)}.card-header{padding:var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);margin-bottom:0;color:var(--bs-card-cap-color);background-color:var(--bs-card-cap-bg);border-bottom:var(--bs-card-border-width) solid var(--bs-card-border-color)}.card-header:first-child{border-radius:var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius) 0 0}.card-footer{padding:var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);color:var(--bs-card-cap-color);background-color:var(--bs-card-cap-bg);border-top:var(--bs-card-border-width) solid var(--bs-card-border-color)}.card-footer:last-child{border-radius:0 0 var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius)}.card-header-tabs{margin-right:calc(-.5 * var(--bs-card-cap-padding-x));margin-bottom:calc(-1 * var(--bs-card-cap-padding-y));margin-left:calc(-.5 * var(--bs-card-cap-padding-x));border-bottom:0}.card-header-tabs .nav-link.active{background-color:var(--bs-card-bg);border-bottom-color:var(--bs-card-bg)}.card-header-pills{margin-right:calc(-.5 * var(--bs-card-cap-padding-x));margin-left:calc(-.5 * var(--bs-card-cap-padding-x))}.card-img-overlay{position:absolute;inset:0;padding:var(--bs-card-img-overlay-padding);border-radius:var(--bs-card-inner-border-radius)}.card-img,.card-img-top,.card-img-bottom{width:100%}.card-img,.card-img-top{border-top-left-radius:var(--bs-card-inner-border-radius);border-top-right-radius:var(--bs-card-inner-border-radius)}.card-img,.card-img-bottom{border-bottom-right-radius:var(--bs-card-inner-border-radius);border-bottom-left-radius:var(--bs-card-inner-border-radius)}.card-group>.card{margin-bottom:var(--bs-card-group-margin)}@media (min-width: 576px){.card-group{display:flex;flex-flow:row wrap}.card-group>.card{flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-img-top,.card-group>.card:not(:last-child) .card-header{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-img-bottom,.card-group>.card:not(:last-child) .card-footer{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-img-top,.card-group>.card:not(:first-child) .card-header{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-img-bottom,.card-group>.card:not(:first-child) .card-footer{border-bottom-left-radius:0}}.accordion{--bs-accordion-color: var(--bs-body-color);--bs-accordion-bg: var(--bs-body-bg);--bs-accordion-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out, border-radius .15s ease;--bs-accordion-border-color: var(--bs-border-color);--bs-accordion-border-width: var(--bs-border-width);--bs-accordion-border-radius: var(--bs-border-radius);--bs-accordion-inner-border-radius: calc(var(--bs-border-radius) - (var(--bs-border-width)));--bs-accordion-btn-padding-x: 1.25rem;--bs-accordion-btn-padding-y: 1rem;--bs-accordion-btn-color: var(--bs-body-color);--bs-accordion-btn-bg: var(--bs-accordion-bg);--bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23212529'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");--bs-accordion-btn-icon-width: 1.25rem;--bs-accordion-btn-icon-transform: rotate(-180deg);--bs-accordion-btn-icon-transition: transform .2s ease-in-out;--bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23002152'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");--bs-accordion-btn-focus-border-color: #80a9e6;--bs-accordion-btn-focus-box-shadow: 0 0 0 .25rem rgba(0, 82, 204, .25);--bs-accordion-body-padding-x: 1.25rem;--bs-accordion-body-padding-y: 1rem;--bs-accordion-active-color: var(--bs-primary-text-emphasis);--bs-accordion-active-bg: var(--bs-primary-bg-subtle)}.accordion-button{position:relative;display:flex;align-items:center;width:100%;padding:var(--bs-accordion-btn-padding-y) var(--bs-accordion-btn-padding-x);font-size:1rem;color:var(--bs-accordion-btn-color);text-align:left;background-color:var(--bs-accordion-btn-bg);border:0;border-radius:0;overflow-anchor:none;transition:var(--bs-accordion-transition)}@media (prefers-reduced-motion: reduce){.accordion-button{transition:none}}.accordion-button:not(.collapsed){color:var(--bs-accordion-active-color);background-color:var(--bs-accordion-active-bg);box-shadow:inset 0 calc(-1 * var(--bs-accordion-border-width)) 0 var(--bs-accordion-border-color)}.accordion-button:not(.collapsed):after{background-image:var(--bs-accordion-btn-active-icon);transform:var(--bs-accordion-btn-icon-transform)}.accordion-button:after{flex-shrink:0;width:var(--bs-accordion-btn-icon-width);height:var(--bs-accordion-btn-icon-width);margin-left:auto;content:"";background-image:var(--bs-accordion-btn-icon);background-repeat:no-repeat;background-size:var(--bs-accordion-btn-icon-width);transition:var(--bs-accordion-btn-icon-transition)}@media (prefers-reduced-motion: reduce){.accordion-button:after{transition:none}}.accordion-button:hover{z-index:2}.accordion-button:focus{z-index:3;border-color:var(--bs-accordion-btn-focus-border-color);outline:0;box-shadow:var(--bs-accordion-btn-focus-box-shadow)}.accordion-header{margin-bottom:0}.accordion-item{color:var(--bs-accordion-color);background-color:var(--bs-accordion-bg);border:var(--bs-accordion-border-width) solid var(--bs-accordion-border-color)}.accordion-item:first-of-type{border-top-left-radius:var(--bs-accordion-border-radius);border-top-right-radius:var(--bs-accordion-border-radius)}.accordion-item:first-of-type .accordion-button{border-top-left-radius:var(--bs-accordion-inner-border-radius);border-top-right-radius:var(--bs-accordion-inner-border-radius)}.accordion-item:not(:first-of-type){border-top:0}.accordion-item:last-of-type{border-bottom-right-radius:var(--bs-accordion-border-radius);border-bottom-left-radius:var(--bs-accordion-border-radius)}.accordion-item:last-of-type .accordion-button.collapsed{border-bottom-right-radius:var(--bs-accordion-inner-border-radius);border-bottom-left-radius:var(--bs-accordion-inner-border-radius)}.accordion-item:last-of-type .accordion-collapse{border-bottom-right-radius:var(--bs-accordion-border-radius);border-bottom-left-radius:var(--bs-accordion-border-radius)}.accordion-body{padding:var(--bs-accordion-body-padding-y) var(--bs-accordion-body-padding-x)}.accordion-flush .accordion-collapse{border-width:0}.accordion-flush .accordion-item{border-right:0;border-left:0;border-radius:0}.accordion-flush .accordion-item:first-child{border-top:0}.accordion-flush .accordion-item:last-child{border-bottom:0}.accordion-flush .accordion-item .accordion-button,.accordion-flush .accordion-item .accordion-button.collapsed{border-radius:0}[data-bs-theme=dark] .accordion-button:after{--bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236697e0'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");--bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236697e0'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.breadcrumb{--bs-breadcrumb-padding-x: 0;--bs-breadcrumb-padding-y: 0;--bs-breadcrumb-margin-bottom: 1rem;--bs-breadcrumb-bg: ;--bs-breadcrumb-border-radius: ;--bs-breadcrumb-divider-color: var(--bs-secondary-color);--bs-breadcrumb-item-padding-x: .5rem;--bs-breadcrumb-item-active-color: var(--bs-secondary-color);display:flex;flex-wrap:wrap;padding:var(--bs-breadcrumb-padding-y) var(--bs-breadcrumb-padding-x);margin-bottom:var(--bs-breadcrumb-margin-bottom);font-size:var(--bs-breadcrumb-font-size);list-style:none;background-color:var(--bs-breadcrumb-bg);border-radius:var(--bs-breadcrumb-border-radius)}.breadcrumb-item+.breadcrumb-item{padding-left:var(--bs-breadcrumb-item-padding-x)}.breadcrumb-item+.breadcrumb-item:before{float:left;padding-right:var(--bs-breadcrumb-item-padding-x);color:var(--bs-breadcrumb-divider-color);content:var(--bs-breadcrumb-divider, "/")}.breadcrumb-item.active{color:var(--bs-breadcrumb-item-active-color)}.pagination{--bs-pagination-padding-x: .75rem;--bs-pagination-padding-y: .375rem;--bs-pagination-font-size: 1rem;--bs-pagination-color: var(--bs-link-color);--bs-pagination-bg: var(--bs-body-bg);--bs-pagination-border-width: var(--bs-border-width);--bs-pagination-border-color: var(--bs-border-color);--bs-pagination-border-radius: var(--bs-border-radius);--bs-pagination-hover-color: var(--bs-link-hover-color);--bs-pagination-hover-bg: var(--bs-tertiary-bg);--bs-pagination-hover-border-color: var(--bs-border-color);--bs-pagination-focus-color: var(--bs-link-hover-color);--bs-pagination-focus-bg: var(--bs-secondary-bg);--bs-pagination-focus-box-shadow: 0 0 0 .25rem rgba(0, 82, 204, .25);--bs-pagination-active-color: #fff;--bs-pagination-active-bg: #0052CC;--bs-pagination-active-border-color: #0052CC;--bs-pagination-disabled-color: var(--bs-secondary-color);--bs-pagination-disabled-bg: var(--bs-secondary-bg);--bs-pagination-disabled-border-color: var(--bs-border-color);display:flex;padding-left:0;list-style:none}.page-link{position:relative;display:block;padding:var(--bs-pagination-padding-y) var(--bs-pagination-padding-x);font-size:var(--bs-pagination-font-size);color:var(--bs-pagination-color);text-decoration:none;background-color:var(--bs-pagination-bg);border:var(--bs-pagination-border-width) solid var(--bs-pagination-border-color);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion: reduce){.page-link{transition:none}}.page-link:hover{z-index:2;color:var(--bs-pagination-hover-color);background-color:var(--bs-pagination-hover-bg);border-color:var(--bs-pagination-hover-border-color)}.page-link:focus{z-index:3;color:var(--bs-pagination-focus-color);background-color:var(--bs-pagination-focus-bg);outline:0;box-shadow:var(--bs-pagination-focus-box-shadow)}.page-link.active,.active>.page-link{z-index:3;color:var(--bs-pagination-active-color);background-color:var(--bs-pagination-active-bg);border-color:var(--bs-pagination-active-border-color)}.page-link.disabled,.disabled>.page-link{color:var(--bs-pagination-disabled-color);pointer-events:none;background-color:var(--bs-pagination-disabled-bg);border-color:var(--bs-pagination-disabled-border-color)}.page-item:not(:first-child) .page-link{margin-left:calc(var(--bs-border-width) * -1)}.page-item:first-child .page-link{border-top-left-radius:var(--bs-pagination-border-radius);border-bottom-left-radius:var(--bs-pagination-border-radius)}.page-item:last-child .page-link{border-top-right-radius:var(--bs-pagination-border-radius);border-bottom-right-radius:var(--bs-pagination-border-radius)}.pagination-lg{--bs-pagination-padding-x: 1.5rem;--bs-pagination-padding-y: .75rem;--bs-pagination-font-size: 1.25rem;--bs-pagination-border-radius: var(--bs-border-radius-lg)}.pagination-sm{--bs-pagination-padding-x: .5rem;--bs-pagination-padding-y: .25rem;--bs-pagination-font-size: .875rem;--bs-pagination-border-radius: var(--bs-border-radius-sm)}.badge{--bs-badge-padding-x: .65em;--bs-badge-padding-y: .35em;--bs-badge-font-size: .75em;--bs-badge-font-weight: 700;--bs-badge-color: #fff;--bs-badge-border-radius: var(--bs-border-radius);display:inline-block;padding:var(--bs-badge-padding-y) var(--bs-badge-padding-x);font-size:var(--bs-badge-font-size);font-weight:var(--bs-badge-font-weight);line-height:1;color:var(--bs-badge-color);text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:var(--bs-badge-border-radius)}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.alert{--bs-alert-bg: transparent;--bs-alert-padding-x: 1rem;--bs-alert-padding-y: 1rem;--bs-alert-margin-bottom: 1rem;--bs-alert-color: inherit;--bs-alert-border-color: transparent;--bs-alert-border: var(--bs-border-width) solid var(--bs-alert-border-color);--bs-alert-border-radius: var(--bs-border-radius);--bs-alert-link-color: inherit;position:relative;padding:var(--bs-alert-padding-y) var(--bs-alert-padding-x);margin-bottom:var(--bs-alert-margin-bottom);color:var(--bs-alert-color);background-color:var(--bs-alert-bg);border:var(--bs-alert-border);border-radius:var(--bs-alert-border-radius)}.alert-heading{color:inherit}.alert-link{font-weight:700;color:var(--bs-alert-link-color)}.alert-dismissible{padding-right:3rem}.alert-dismissible .btn-close{position:absolute;top:0;right:0;z-index:2;padding:1.25rem 1rem}.alert-primary{--bs-alert-color: var(--bs-primary-text-emphasis);--bs-alert-bg: var(--bs-primary-bg-subtle);--bs-alert-border-color: var(--bs-primary-border-subtle);--bs-alert-link-color: var(--bs-primary-text-emphasis)}.alert-secondary{--bs-alert-color: var(--bs-secondary-text-emphasis);--bs-alert-bg: var(--bs-secondary-bg-subtle);--bs-alert-border-color: var(--bs-secondary-border-subtle);--bs-alert-link-color: var(--bs-secondary-text-emphasis)}.alert-success{--bs-alert-color: var(--bs-success-text-emphasis);--bs-alert-bg: var(--bs-success-bg-subtle);--bs-alert-border-color: var(--bs-success-border-subtle);--bs-alert-link-color: var(--bs-success-text-emphasis)}.alert-info{--bs-alert-color: var(--bs-info-text-emphasis);--bs-alert-bg: var(--bs-info-bg-subtle);--bs-alert-border-color: var(--bs-info-border-subtle);--bs-alert-link-color: var(--bs-info-text-emphasis)}.alert-warning{--bs-alert-color: var(--bs-warning-text-emphasis);--bs-alert-bg: var(--bs-warning-bg-subtle);--bs-alert-border-color: var(--bs-warning-border-subtle);--bs-alert-link-color: var(--bs-warning-text-emphasis)}.alert-danger{--bs-alert-color: var(--bs-danger-text-emphasis);--bs-alert-bg: var(--bs-danger-bg-subtle);--bs-alert-border-color: var(--bs-danger-border-subtle);--bs-alert-link-color: var(--bs-danger-text-emphasis)}.alert-light{--bs-alert-color: var(--bs-light-text-emphasis);--bs-alert-bg: var(--bs-light-bg-subtle);--bs-alert-border-color: var(--bs-light-border-subtle);--bs-alert-link-color: var(--bs-light-text-emphasis)}.alert-dark{--bs-alert-color: var(--bs-dark-text-emphasis);--bs-alert-bg: var(--bs-dark-bg-subtle);--bs-alert-border-color: var(--bs-dark-border-subtle);--bs-alert-link-color: var(--bs-dark-text-emphasis)}@keyframes progress-bar-stripes{0%{background-position-x:1rem}}.progress,.progress-stacked{--bs-progress-height: 1rem;--bs-progress-font-size: .75rem;--bs-progress-bg: var(--bs-secondary-bg);--bs-progress-border-radius: var(--bs-border-radius);--bs-progress-box-shadow: var(--bs-box-shadow-inset);--bs-progress-bar-color: #fff;--bs-progress-bar-bg: #0052CC;--bs-progress-bar-transition: width .6s ease;display:flex;height:var(--bs-progress-height);overflow:hidden;font-size:var(--bs-progress-font-size);background-color:var(--bs-progress-bg);border-radius:var(--bs-progress-border-radius)}.progress-bar{display:flex;flex-direction:column;justify-content:center;overflow:hidden;color:var(--bs-progress-bar-color);text-align:center;white-space:nowrap;background-color:var(--bs-progress-bar-bg);transition:var(--bs-progress-bar-transition)}@media (prefers-reduced-motion: reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:var(--bs-progress-height) var(--bs-progress-height)}.progress-stacked>.progress{overflow:visible}.progress-stacked>.progress>.progress-bar{width:100%}.progress-bar-animated{animation:1s linear infinite progress-bar-stripes}@media (prefers-reduced-motion: reduce){.progress-bar-animated{animation:none}}.list-group{--bs-list-group-color: var(--bs-body-color);--bs-list-group-bg: var(--bs-body-bg);--bs-list-group-border-color: var(--bs-border-color);--bs-list-group-border-width: var(--bs-border-width);--bs-list-group-border-radius: var(--bs-border-radius);--bs-list-group-item-padding-x: 1rem;--bs-list-group-item-padding-y: .5rem;--bs-list-group-action-color: var(--bs-secondary-color);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-tertiary-bg);--bs-list-group-action-active-color: var(--bs-body-color);--bs-list-group-action-active-bg: var(--bs-secondary-bg);--bs-list-group-disabled-color: var(--bs-secondary-color);--bs-list-group-disabled-bg: var(--bs-body-bg);--bs-list-group-active-color: #fff;--bs-list-group-active-bg: #0052CC;--bs-list-group-active-border-color: #0052CC;display:flex;flex-direction:column;padding-left:0;margin-bottom:0;border-radius:var(--bs-list-group-border-radius)}.list-group-numbered{list-style-type:none;counter-reset:section}.list-group-numbered>.list-group-item:before{content:counters(section,".") ". ";counter-increment:section}.list-group-item-action{width:100%;color:var(--bs-list-group-action-color);text-align:inherit}.list-group-item-action:hover,.list-group-item-action:focus{z-index:1;color:var(--bs-list-group-action-hover-color);text-decoration:none;background-color:var(--bs-list-group-action-hover-bg)}.list-group-item-action:active{color:var(--bs-list-group-action-active-color);background-color:var(--bs-list-group-action-active-bg)}.list-group-item{position:relative;display:block;padding:var(--bs-list-group-item-padding-y) var(--bs-list-group-item-padding-x);color:var(--bs-list-group-color);text-decoration:none;background-color:var(--bs-list-group-bg);border:var(--bs-list-group-border-width) solid var(--bs-list-group-border-color)}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:var(--bs-list-group-disabled-color);pointer-events:none;background-color:var(--bs-list-group-disabled-bg)}.list-group-item.active{z-index:2;color:var(--bs-list-group-active-color);background-color:var(--bs-list-group-active-bg);border-color:var(--bs-list-group-active-border-color)}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:calc(-1 * var(--bs-list-group-border-width));border-top-width:var(--bs-list-group-border-width)}.list-group-horizontal{flex-direction:row}.list-group-horizontal>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}@media (min-width: 576px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width: 768px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width: 992px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width: 1200px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width: 1400px){.list-group-horizontal-xxl{flex-direction:row}.list-group-horizontal-xxl>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-xxl>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-xxl>.list-group-item.active{margin-top:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 var(--bs-list-group-border-width)}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{--bs-list-group-color: var(--bs-primary-text-emphasis);--bs-list-group-bg: var(--bs-primary-bg-subtle);--bs-list-group-border-color: var(--bs-primary-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-primary-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-primary-border-subtle);--bs-list-group-active-color: var(--bs-primary-bg-subtle);--bs-list-group-active-bg: var(--bs-primary-text-emphasis);--bs-list-group-active-border-color: var(--bs-primary-text-emphasis)}.list-group-item-secondary{--bs-list-group-color: var(--bs-secondary-text-emphasis);--bs-list-group-bg: var(--bs-secondary-bg-subtle);--bs-list-group-border-color: var(--bs-secondary-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-secondary-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-secondary-border-subtle);--bs-list-group-active-color: var(--bs-secondary-bg-subtle);--bs-list-group-active-bg: var(--bs-secondary-text-emphasis);--bs-list-group-active-border-color: var(--bs-secondary-text-emphasis)}.list-group-item-success{--bs-list-group-color: var(--bs-success-text-emphasis);--bs-list-group-bg: var(--bs-success-bg-subtle);--bs-list-group-border-color: var(--bs-success-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-success-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-success-border-subtle);--bs-list-group-active-color: var(--bs-success-bg-subtle);--bs-list-group-active-bg: var(--bs-success-text-emphasis);--bs-list-group-active-border-color: var(--bs-success-text-emphasis)}.list-group-item-info{--bs-list-group-color: var(--bs-info-text-emphasis);--bs-list-group-bg: var(--bs-info-bg-subtle);--bs-list-group-border-color: var(--bs-info-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-info-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-info-border-subtle);--bs-list-group-active-color: var(--bs-info-bg-subtle);--bs-list-group-active-bg: var(--bs-info-text-emphasis);--bs-list-group-active-border-color: var(--bs-info-text-emphasis)}.list-group-item-warning{--bs-list-group-color: var(--bs-warning-text-emphasis);--bs-list-group-bg: var(--bs-warning-bg-subtle);--bs-list-group-border-color: var(--bs-warning-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-warning-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-warning-border-subtle);--bs-list-group-active-color: var(--bs-warning-bg-subtle);--bs-list-group-active-bg: var(--bs-warning-text-emphasis);--bs-list-group-active-border-color: var(--bs-warning-text-emphasis)}.list-group-item-danger{--bs-list-group-color: var(--bs-danger-text-emphasis);--bs-list-group-bg: var(--bs-danger-bg-subtle);--bs-list-group-border-color: var(--bs-danger-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-danger-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-danger-border-subtle);--bs-list-group-active-color: var(--bs-danger-bg-subtle);--bs-list-group-active-bg: var(--bs-danger-text-emphasis);--bs-list-group-active-border-color: var(--bs-danger-text-emphasis)}.list-group-item-light{--bs-list-group-color: var(--bs-light-text-emphasis);--bs-list-group-bg: var(--bs-light-bg-subtle);--bs-list-group-border-color: var(--bs-light-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-light-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-light-border-subtle);--bs-list-group-active-color: var(--bs-light-bg-subtle);--bs-list-group-active-bg: var(--bs-light-text-emphasis);--bs-list-group-active-border-color: var(--bs-light-text-emphasis)}.list-group-item-dark{--bs-list-group-color: var(--bs-dark-text-emphasis);--bs-list-group-bg: var(--bs-dark-bg-subtle);--bs-list-group-border-color: var(--bs-dark-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-dark-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-dark-border-subtle);--bs-list-group-active-color: var(--bs-dark-bg-subtle);--bs-list-group-active-bg: var(--bs-dark-text-emphasis);--bs-list-group-active-border-color: var(--bs-dark-text-emphasis)}.btn-close{--bs-btn-close-color: #000;--bs-btn-close-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3e%3c/svg%3e");--bs-btn-close-opacity: .5;--bs-btn-close-hover-opacity: .75;--bs-btn-close-focus-shadow: 0 0 0 .25rem rgba(0, 82, 204, .25);--bs-btn-close-focus-opacity: 1;--bs-btn-close-disabled-opacity: .25;--bs-btn-close-white-filter: invert(1) grayscale(100%) brightness(200%);box-sizing:content-box;width:1em;height:1em;padding:.25em;color:var(--bs-btn-close-color);background:transparent var(--bs-btn-close-bg) center/1em auto no-repeat;border:0;border-radius:.375rem;opacity:var(--bs-btn-close-opacity)}.btn-close:hover{color:var(--bs-btn-close-color);text-decoration:none;opacity:var(--bs-btn-close-hover-opacity)}.btn-close:focus{outline:0;box-shadow:var(--bs-btn-close-focus-shadow);opacity:var(--bs-btn-close-focus-opacity)}.btn-close:disabled,.btn-close.disabled{pointer-events:none;-webkit-user-select:none;user-select:none;opacity:var(--bs-btn-close-disabled-opacity)}.btn-close-white,[data-bs-theme=dark] .btn-close{filter:var(--bs-btn-close-white-filter)}.toast{--bs-toast-zindex: 1090;--bs-toast-padding-x: .75rem;--bs-toast-padding-y: .5rem;--bs-toast-spacing: 1.5rem;--bs-toast-max-width: 350px;--bs-toast-font-size: .875rem;--bs-toast-color: ;--bs-toast-bg: rgba(var(--bs-body-bg-rgb), .85);--bs-toast-border-width: var(--bs-border-width);--bs-toast-border-color: var(--bs-border-color-translucent);--bs-toast-border-radius: var(--bs-border-radius);--bs-toast-box-shadow: var(--bs-box-shadow);--bs-toast-header-color: var(--bs-secondary-color);--bs-toast-header-bg: rgba(var(--bs-body-bg-rgb), .85);--bs-toast-header-border-color: var(--bs-border-color-translucent);width:var(--bs-toast-max-width);max-width:100%;font-size:var(--bs-toast-font-size);color:var(--bs-toast-color);pointer-events:auto;background-color:var(--bs-toast-bg);background-clip:padding-box;border:var(--bs-toast-border-width) solid var(--bs-toast-border-color);box-shadow:var(--bs-toast-box-shadow);border-radius:var(--bs-toast-border-radius)}.toast.showing{opacity:0}.toast:not(.show){display:none}.toast-container{--bs-toast-zindex: 1090;position:absolute;z-index:var(--bs-toast-zindex);width:max-content;max-width:100%;pointer-events:none}.toast-container>:not(:last-child){margin-bottom:var(--bs-toast-spacing)}.toast-header{display:flex;align-items:center;padding:var(--bs-toast-padding-y) var(--bs-toast-padding-x);color:var(--bs-toast-header-color);background-color:var(--bs-toast-header-bg);background-clip:padding-box;border-bottom:var(--bs-toast-border-width) solid var(--bs-toast-header-border-color);border-top-left-radius:calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width));border-top-right-radius:calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width))}.toast-header .btn-close{margin-right:calc(-.5 * var(--bs-toast-padding-x));margin-left:var(--bs-toast-padding-x)}.toast-body{padding:var(--bs-toast-padding-x);word-wrap:break-word}.modal{--bs-modal-zindex: 1055;--bs-modal-width: 500px;--bs-modal-padding: 1rem;--bs-modal-margin: .5rem;--bs-modal-color: ;--bs-modal-bg: var(--bs-body-bg);--bs-modal-border-color: var(--bs-border-color-translucent);--bs-modal-border-width: var(--bs-border-width);--bs-modal-border-radius: var(--bs-border-radius-lg);--bs-modal-box-shadow: 0 .125rem .25rem rgba(0, 0, 0, .075);--bs-modal-inner-border-radius: calc(var(--bs-border-radius-lg) - (var(--bs-border-width)));--bs-modal-header-padding-x: 1rem;--bs-modal-header-padding-y: 1rem;--bs-modal-header-padding: 1rem 1rem;--bs-modal-header-border-color: var(--bs-border-color);--bs-modal-header-border-width: var(--bs-border-width);--bs-modal-title-line-height: 1.5;--bs-modal-footer-gap: .5rem;--bs-modal-footer-bg: ;--bs-modal-footer-border-color: var(--bs-border-color);--bs-modal-footer-border-width: var(--bs-border-width);position:fixed;top:0;left:0;z-index:var(--bs-modal-zindex);display:none;width:100%;height:100%;overflow-x:hidden;overflow-y:auto;outline:0}.modal-dialog{position:relative;width:auto;margin:var(--bs-modal-margin);pointer-events:none}.modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translateY(-50px)}@media (prefers-reduced-motion: reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{height:calc(100% - var(--bs-modal-margin) * 2)}.modal-dialog-scrollable .modal-content{max-height:100%;overflow:hidden}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - var(--bs-modal-margin) * 2)}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;color:var(--bs-modal-color);pointer-events:auto;background-color:var(--bs-modal-bg);background-clip:padding-box;border:var(--bs-modal-border-width) solid var(--bs-modal-border-color);border-radius:var(--bs-modal-border-radius);outline:0}.modal-backdrop{--bs-backdrop-zindex: 1050;--bs-backdrop-bg: #000;--bs-backdrop-opacity: .5;position:fixed;top:0;left:0;z-index:var(--bs-backdrop-zindex);width:100vw;height:100vh;background-color:var(--bs-backdrop-bg)}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:var(--bs-backdrop-opacity)}.modal-header{display:flex;flex-shrink:0;align-items:center;justify-content:space-between;padding:var(--bs-modal-header-padding);border-bottom:var(--bs-modal-header-border-width) solid var(--bs-modal-header-border-color);border-top-left-radius:var(--bs-modal-inner-border-radius);border-top-right-radius:var(--bs-modal-inner-border-radius)}.modal-header .btn-close{padding:calc(var(--bs-modal-header-padding-y) * .5) calc(var(--bs-modal-header-padding-x) * .5);margin:calc(-.5 * var(--bs-modal-header-padding-y)) calc(-.5 * var(--bs-modal-header-padding-x)) calc(-.5 * var(--bs-modal-header-padding-y)) auto}.modal-title{margin-bottom:0;line-height:var(--bs-modal-title-line-height)}.modal-body{position:relative;flex:1 1 auto;padding:var(--bs-modal-padding)}.modal-footer{display:flex;flex-shrink:0;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:calc(var(--bs-modal-padding) - var(--bs-modal-footer-gap) * .5);background-color:var(--bs-modal-footer-bg);border-top:var(--bs-modal-footer-border-width) solid var(--bs-modal-footer-border-color);border-bottom-right-radius:var(--bs-modal-inner-border-radius);border-bottom-left-radius:var(--bs-modal-inner-border-radius)}.modal-footer>*{margin:calc(var(--bs-modal-footer-gap) * .5)}@media (min-width: 576px){.modal{--bs-modal-margin: 1.75rem;--bs-modal-box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .15)}.modal-dialog{max-width:var(--bs-modal-width);margin-right:auto;margin-left:auto}.modal-sm{--bs-modal-width: 300px}}@media (min-width: 992px){.modal-lg,.modal-xl{--bs-modal-width: 800px}}@media (min-width: 1200px){.modal-xl{--bs-modal-width: 1140px}}.modal-fullscreen{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen .modal-header,.modal-fullscreen .modal-footer{border-radius:0}.modal-fullscreen .modal-body{overflow-y:auto}@media (max-width: 575.98px){.modal-fullscreen-sm-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-sm-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-sm-down .modal-header,.modal-fullscreen-sm-down .modal-footer{border-radius:0}.modal-fullscreen-sm-down .modal-body{overflow-y:auto}}@media (max-width: 767.98px){.modal-fullscreen-md-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-md-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-md-down .modal-header,.modal-fullscreen-md-down .modal-footer{border-radius:0}.modal-fullscreen-md-down .modal-body{overflow-y:auto}}@media (max-width: 991.98px){.modal-fullscreen-lg-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-lg-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-lg-down .modal-header,.modal-fullscreen-lg-down .modal-footer{border-radius:0}.modal-fullscreen-lg-down .modal-body{overflow-y:auto}}@media (max-width: 1199.98px){.modal-fullscreen-xl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xl-down .modal-header,.modal-fullscreen-xl-down .modal-footer{border-radius:0}.modal-fullscreen-xl-down .modal-body{overflow-y:auto}}@media (max-width: 1399.98px){.modal-fullscreen-xxl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xxl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xxl-down .modal-header,.modal-fullscreen-xxl-down .modal-footer{border-radius:0}.modal-fullscreen-xxl-down .modal-body{overflow-y:auto}}.tooltip{--bs-tooltip-zindex: 1080;--bs-tooltip-max-width: 200px;--bs-tooltip-padding-x: .5rem;--bs-tooltip-padding-y: .25rem;--bs-tooltip-margin: ;--bs-tooltip-font-size: .875rem;--bs-tooltip-color: var(--bs-body-bg);--bs-tooltip-bg: var(--bs-emphasis-color);--bs-tooltip-border-radius: var(--bs-border-radius);--bs-tooltip-opacity: .9;--bs-tooltip-arrow-width: .8rem;--bs-tooltip-arrow-height: .4rem;z-index:var(--bs-tooltip-zindex);display:block;margin:var(--bs-tooltip-margin);font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--bs-tooltip-font-size);word-wrap:break-word;opacity:0}.tooltip.show{opacity:var(--bs-tooltip-opacity)}.tooltip .tooltip-arrow{display:block;width:var(--bs-tooltip-arrow-width);height:var(--bs-tooltip-arrow-height)}.tooltip .tooltip-arrow:before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-top .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow{bottom:calc(-1 * var(--bs-tooltip-arrow-height))}.bs-tooltip-top .tooltip-arrow:before,.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow:before{top:-1px;border-width:var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * .5) 0;border-top-color:var(--bs-tooltip-bg)}.bs-tooltip-end .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow{left:calc(-1 * var(--bs-tooltip-arrow-height));width:var(--bs-tooltip-arrow-height);height:var(--bs-tooltip-arrow-width)}.bs-tooltip-end .tooltip-arrow:before,.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow:before{right:-1px;border-width:calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * .5) 0;border-right-color:var(--bs-tooltip-bg)}.bs-tooltip-bottom .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow{top:calc(-1 * var(--bs-tooltip-arrow-height))}.bs-tooltip-bottom .tooltip-arrow:before,.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow:before{bottom:-1px;border-width:0 calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height);border-bottom-color:var(--bs-tooltip-bg)}.bs-tooltip-start .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow{right:calc(-1 * var(--bs-tooltip-arrow-height));width:var(--bs-tooltip-arrow-height);height:var(--bs-tooltip-arrow-width)}.bs-tooltip-start .tooltip-arrow:before,.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow:before{left:-1px;border-width:calc(var(--bs-tooltip-arrow-width) * .5) 0 calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height);border-left-color:var(--bs-tooltip-bg)}.tooltip-inner{max-width:var(--bs-tooltip-max-width);padding:var(--bs-tooltip-padding-y) var(--bs-tooltip-padding-x);color:var(--bs-tooltip-color);text-align:center;background-color:var(--bs-tooltip-bg);border-radius:var(--bs-tooltip-border-radius)}.popover{--bs-popover-zindex: 1070;--bs-popover-max-width: 276px;--bs-popover-font-size: .875rem;--bs-popover-bg: var(--bs-body-bg);--bs-popover-border-width: var(--bs-border-width);--bs-popover-border-color: var(--bs-border-color-translucent);--bs-popover-border-radius: var(--bs-border-radius-lg);--bs-popover-inner-border-radius: calc(var(--bs-border-radius-lg) - var(--bs-border-width));--bs-popover-box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .15);--bs-popover-header-padding-x: 1rem;--bs-popover-header-padding-y: .5rem;--bs-popover-header-font-size: 1rem;--bs-popover-header-color: inherit;--bs-popover-header-bg: var(--bs-secondary-bg);--bs-popover-body-padding-x: 1rem;--bs-popover-body-padding-y: 1rem;--bs-popover-body-color: var(--bs-body-color);--bs-popover-arrow-width: 1rem;--bs-popover-arrow-height: .5rem;--bs-popover-arrow-border: var(--bs-popover-border-color);z-index:var(--bs-popover-zindex);display:block;max-width:var(--bs-popover-max-width);font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--bs-popover-font-size);word-wrap:break-word;background-color:var(--bs-popover-bg);background-clip:padding-box;border:var(--bs-popover-border-width) solid var(--bs-popover-border-color);border-radius:var(--bs-popover-border-radius)}.popover .popover-arrow{display:block;width:var(--bs-popover-arrow-width);height:var(--bs-popover-arrow-height)}.popover .popover-arrow:before,.popover .popover-arrow:after{position:absolute;display:block;content:"";border-color:transparent;border-style:solid;border-width:0}.bs-popover-top>.popover-arrow,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow{bottom:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width))}.bs-popover-top>.popover-arrow:before,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow:before,.bs-popover-top>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow:after{border-width:var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * .5) 0}.bs-popover-top>.popover-arrow:before,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow:before{bottom:0;border-top-color:var(--bs-popover-arrow-border)}.bs-popover-top>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow:after{bottom:var(--bs-popover-border-width);border-top-color:var(--bs-popover-bg)}.bs-popover-end>.popover-arrow,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow{left:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));width:var(--bs-popover-arrow-height);height:var(--bs-popover-arrow-width)}.bs-popover-end>.popover-arrow:before,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow:before,.bs-popover-end>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow:after{border-width:calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * .5) 0}.bs-popover-end>.popover-arrow:before,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow:before{left:0;border-right-color:var(--bs-popover-arrow-border)}.bs-popover-end>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow:after{left:var(--bs-popover-border-width);border-right-color:var(--bs-popover-bg)}.bs-popover-bottom>.popover-arrow,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow{top:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width))}.bs-popover-bottom>.popover-arrow:before,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:before,.bs-popover-bottom>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:after{border-width:0 calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height)}.bs-popover-bottom>.popover-arrow:before,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:before{top:0;border-bottom-color:var(--bs-popover-arrow-border)}.bs-popover-bottom>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:after{top:var(--bs-popover-border-width);border-bottom-color:var(--bs-popover-bg)}.bs-popover-bottom .popover-header:before,.bs-popover-auto[data-popper-placement^=bottom] .popover-header:before{position:absolute;top:0;left:50%;display:block;width:var(--bs-popover-arrow-width);margin-left:calc(-.5 * var(--bs-popover-arrow-width));content:"";border-bottom:var(--bs-popover-border-width) solid var(--bs-popover-header-bg)}.bs-popover-start>.popover-arrow,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow{right:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));width:var(--bs-popover-arrow-height);height:var(--bs-popover-arrow-width)}.bs-popover-start>.popover-arrow:before,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow:before,.bs-popover-start>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow:after{border-width:calc(var(--bs-popover-arrow-width) * .5) 0 calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height)}.bs-popover-start>.popover-arrow:before,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow:before{right:0;border-left-color:var(--bs-popover-arrow-border)}.bs-popover-start>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow:after{right:var(--bs-popover-border-width);border-left-color:var(--bs-popover-bg)}.popover-header{padding:var(--bs-popover-header-padding-y) var(--bs-popover-header-padding-x);margin-bottom:0;font-size:var(--bs-popover-header-font-size);color:var(--bs-popover-header-color);background-color:var(--bs-popover-header-bg);border-bottom:var(--bs-popover-border-width) solid var(--bs-popover-border-color);border-top-left-radius:var(--bs-popover-inner-border-radius);border-top-right-radius:var(--bs-popover-inner-border-radius)}.popover-header:empty{display:none}.popover-body{padding:var(--bs-popover-body-padding-y) var(--bs-popover-body-padding-x);color:var(--bs-popover-body-color)}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner:after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:transform .6s ease-in-out}@media (prefers-reduced-motion: reduce){.carousel-item{transition:none}}.carousel-item.active,.carousel-item-next,.carousel-item-prev{display:block}.carousel-item-next:not(.carousel-item-start),.active.carousel-item-end{transform:translate(100%)}.carousel-item-prev:not(.carousel-item-end),.active.carousel-item-start{transform:translate(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item.active,.carousel-fade .carousel-item-next.carousel-item-start,.carousel-fade .carousel-item-prev.carousel-item-end{z-index:1;opacity:1}.carousel-fade .active.carousel-item-start,.carousel-fade .active.carousel-item-end{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion: reduce){.carousel-fade .active.carousel-item-start,.carousel-fade .active.carousel-item-end{transition:none}}.carousel-control-prev,.carousel-control-next{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;padding:0;color:#fff;text-align:center;background:none;border:0;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion: reduce){.carousel-control-prev,.carousel-control-next{transition:none}}.carousel-control-prev:hover,.carousel-control-prev:focus,.carousel-control-next:hover,.carousel-control-next:focus{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-prev-icon,.carousel-control-next-icon{display:inline-block;width:2rem;height:2rem;background-repeat:no-repeat;background-position:50%;background-size:100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:2;display:flex;justify-content:center;padding:0;margin-right:15%;margin-bottom:1rem;margin-left:15%}.carousel-indicators [data-bs-target]{box-sizing:content-box;flex:0 1 auto;width:30px;height:3px;padding:0;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border:0;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion: reduce){.carousel-indicators [data-bs-target]{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:1.25rem;left:15%;padding-top:1.25rem;padding-bottom:1.25rem;color:#fff;text-align:center}.carousel-dark .carousel-control-prev-icon,.carousel-dark .carousel-control-next-icon{filter:invert(1) grayscale(100)}.carousel-dark .carousel-indicators [data-bs-target]{background-color:#000}.carousel-dark .carousel-caption{color:#000}[data-bs-theme=dark] .carousel .carousel-control-prev-icon,[data-bs-theme=dark] .carousel .carousel-control-next-icon,[data-bs-theme=dark].carousel .carousel-control-prev-icon,[data-bs-theme=dark].carousel .carousel-control-next-icon{filter:invert(1) grayscale(100)}[data-bs-theme=dark] .carousel .carousel-indicators [data-bs-target],[data-bs-theme=dark].carousel .carousel-indicators [data-bs-target]{background-color:#000}[data-bs-theme=dark] .carousel .carousel-caption,[data-bs-theme=dark].carousel .carousel-caption{color:#000}.spinner-grow,.spinner-border{display:inline-block;width:var(--bs-spinner-width);height:var(--bs-spinner-height);vertical-align:var(--bs-spinner-vertical-align);border-radius:50%;animation:var(--bs-spinner-animation-speed) linear infinite var(--bs-spinner-animation-name)}@keyframes spinner-border{to{transform:rotate(360deg)}}.spinner-border{--bs-spinner-width: 2rem;--bs-spinner-height: 2rem;--bs-spinner-vertical-align: -.125em;--bs-spinner-border-width: .25em;--bs-spinner-animation-speed: .75s;--bs-spinner-animation-name: spinner-border;border:var(--bs-spinner-border-width) solid currentcolor;border-right-color:transparent}.spinner-border-sm{--bs-spinner-width: 1rem;--bs-spinner-height: 1rem;--bs-spinner-border-width: .2em}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{--bs-spinner-width: 2rem;--bs-spinner-height: 2rem;--bs-spinner-vertical-align: -.125em;--bs-spinner-animation-speed: .75s;--bs-spinner-animation-name: spinner-grow;background-color:currentcolor;opacity:0}.spinner-grow-sm{--bs-spinner-width: 1rem;--bs-spinner-height: 1rem}@media (prefers-reduced-motion: reduce){.spinner-border,.spinner-grow{--bs-spinner-animation-speed: 1.5s}}.offcanvas-sm,.offcanvas-md,.offcanvas-lg,.offcanvas-xl,.offcanvas-xxl,.offcanvas{--bs-offcanvas-zindex: 1045;--bs-offcanvas-width: 400px;--bs-offcanvas-height: 30vh;--bs-offcanvas-padding-x: 1rem;--bs-offcanvas-padding-y: 1rem;--bs-offcanvas-color: var(--bs-body-color);--bs-offcanvas-bg: var(--bs-body-bg);--bs-offcanvas-border-width: var(--bs-border-width);--bs-offcanvas-border-color: var(--bs-border-color-translucent);--bs-offcanvas-box-shadow: 0 .125rem .25rem rgba(0, 0, 0, .075);--bs-offcanvas-transition: transform .3s ease-in-out;--bs-offcanvas-title-line-height: 1.5}@media (max-width: 575.98px){.offcanvas-sm{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width: 575.98px) and (prefers-reduced-motion: reduce){.offcanvas-sm{transition:none}}@media (max-width: 575.98px){.offcanvas-sm.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(-100%)}.offcanvas-sm.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(100%)}.offcanvas-sm.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-sm.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-sm.showing,.offcanvas-sm.show:not(.hiding){transform:none}.offcanvas-sm.showing,.offcanvas-sm.hiding,.offcanvas-sm.show{visibility:visible}}@media (min-width: 576px){.offcanvas-sm{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:transparent!important}.offcanvas-sm .offcanvas-header{display:none}.offcanvas-sm .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width: 767.98px){.offcanvas-md{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width: 767.98px) and (prefers-reduced-motion: reduce){.offcanvas-md{transition:none}}@media (max-width: 767.98px){.offcanvas-md.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(-100%)}.offcanvas-md.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(100%)}.offcanvas-md.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-md.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-md.showing,.offcanvas-md.show:not(.hiding){transform:none}.offcanvas-md.showing,.offcanvas-md.hiding,.offcanvas-md.show{visibility:visible}}@media (min-width: 768px){.offcanvas-md{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:transparent!important}.offcanvas-md .offcanvas-header{display:none}.offcanvas-md .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width: 991.98px){.offcanvas-lg{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width: 991.98px) and (prefers-reduced-motion: reduce){.offcanvas-lg{transition:none}}@media (max-width: 991.98px){.offcanvas-lg.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(-100%)}.offcanvas-lg.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(100%)}.offcanvas-lg.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-lg.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-lg.showing,.offcanvas-lg.show:not(.hiding){transform:none}.offcanvas-lg.showing,.offcanvas-lg.hiding,.offcanvas-lg.show{visibility:visible}}@media (min-width: 992px){.offcanvas-lg{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:transparent!important}.offcanvas-lg .offcanvas-header{display:none}.offcanvas-lg .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width: 1199.98px){.offcanvas-xl{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width: 1199.98px) and (prefers-reduced-motion: reduce){.offcanvas-xl{transition:none}}@media (max-width: 1199.98px){.offcanvas-xl.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(-100%)}.offcanvas-xl.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(100%)}.offcanvas-xl.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-xl.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-xl.showing,.offcanvas-xl.show:not(.hiding){transform:none}.offcanvas-xl.showing,.offcanvas-xl.hiding,.offcanvas-xl.show{visibility:visible}}@media (min-width: 1200px){.offcanvas-xl{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:transparent!important}.offcanvas-xl .offcanvas-header{display:none}.offcanvas-xl .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width: 1399.98px){.offcanvas-xxl{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width: 1399.98px) and (prefers-reduced-motion: reduce){.offcanvas-xxl{transition:none}}@media (max-width: 1399.98px){.offcanvas-xxl.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(-100%)}.offcanvas-xxl.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(100%)}.offcanvas-xxl.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-xxl.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-xxl.showing,.offcanvas-xxl.show:not(.hiding){transform:none}.offcanvas-xxl.showing,.offcanvas-xxl.hiding,.offcanvas-xxl.show{visibility:visible}}@media (min-width: 1400px){.offcanvas-xxl{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:transparent!important}.offcanvas-xxl .offcanvas-header{display:none}.offcanvas-xxl .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}.offcanvas{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}@media (prefers-reduced-motion: reduce){.offcanvas{transition:none}}.offcanvas.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(-100%)}.offcanvas.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(100%)}.offcanvas.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas.showing,.offcanvas.show:not(.hiding){transform:none}.offcanvas.showing,.offcanvas.hiding,.offcanvas.show{visibility:visible}.offcanvas-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.offcanvas-backdrop.fade{opacity:0}.offcanvas-backdrop.show{opacity:.5}.offcanvas-header{display:flex;align-items:center;justify-content:space-between;padding:var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x)}.offcanvas-header .btn-close{padding:calc(var(--bs-offcanvas-padding-y) * .5) calc(var(--bs-offcanvas-padding-x) * .5);margin-top:calc(-.5 * var(--bs-offcanvas-padding-y));margin-right:calc(-.5 * var(--bs-offcanvas-padding-x));margin-bottom:calc(-.5 * var(--bs-offcanvas-padding-y))}.offcanvas-title{margin-bottom:0;line-height:var(--bs-offcanvas-title-line-height)}.offcanvas-body{flex-grow:1;padding:var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x);overflow-y:auto}.placeholder{display:inline-block;min-height:1em;vertical-align:middle;cursor:wait;background-color:currentcolor;opacity:.5}.placeholder.btn:before{display:inline-block;content:""}.placeholder-xs{min-height:.6em}.placeholder-sm{min-height:.8em}.placeholder-lg{min-height:1.2em}.placeholder-glow .placeholder{animation:placeholder-glow 2s ease-in-out infinite}@keyframes placeholder-glow{50%{opacity:.2}}.placeholder-wave{-webkit-mask-image:linear-gradient(130deg,#000 55%,rgba(0,0,0,.8) 75%,#000 95%);mask-image:linear-gradient(130deg,#000 55%,rgba(0,0,0,.8) 75%,#000 95%);-webkit-mask-size:200% 100%;mask-size:200% 100%;animation:placeholder-wave 2s linear infinite}@keyframes placeholder-wave{to{-webkit-mask-position:-200% 0%;mask-position:-200% 0%}}.clearfix:after{display:block;clear:both;content:""}.text-bg-primary{color:#fff!important;background-color:RGBA(var(--bs-primary-rgb),var(--bs-bg-opacity, 1))!important}.text-bg-secondary{color:#fff!important;background-color:RGBA(var(--bs-secondary-rgb),var(--bs-bg-opacity, 1))!important}.text-bg-success{color:#000!important;background-color:RGBA(var(--bs-success-rgb),var(--bs-bg-opacity, 1))!important}.text-bg-info{color:#000!important;background-color:RGBA(var(--bs-info-rgb),var(--bs-bg-opacity, 1))!important}.text-bg-warning{color:#000!important;background-color:RGBA(var(--bs-warning-rgb),var(--bs-bg-opacity, 1))!important}.text-bg-danger{color:#000!important;background-color:RGBA(var(--bs-danger-rgb),var(--bs-bg-opacity, 1))!important}.text-bg-light{color:#000!important;background-color:RGBA(var(--bs-light-rgb),var(--bs-bg-opacity, 1))!important}.text-bg-dark{color:#fff!important;background-color:RGBA(var(--bs-dark-rgb),var(--bs-bg-opacity, 1))!important}.link-primary{color:RGBA(var(--bs-primary-rgb),var(--bs-link-opacity, 1))!important;text-decoration-color:RGBA(var(--bs-primary-rgb),var(--bs-link-underline-opacity, 1))!important}.link-primary:hover,.link-primary:focus{color:RGBA(0,66,163,var(--bs-link-opacity, 1))!important;text-decoration-color:RGBA(0,66,163,var(--bs-link-underline-opacity, 1))!important}.link-secondary{color:RGBA(var(--bs-secondary-rgb),var(--bs-link-opacity, 1))!important;text-decoration-color:RGBA(var(--bs-secondary-rgb),var(--bs-link-underline-opacity, 1))!important}.link-secondary:hover,.link-secondary:focus{color:RGBA(81,67,154,var(--bs-link-opacity, 1))!important;text-decoration-color:RGBA(81,67,154,var(--bs-link-underline-opacity, 1))!important}.link-success{color:RGBA(var(--bs-success-rgb),var(--bs-link-opacity, 1))!important;text-decoration-color:RGBA(var(--bs-success-rgb),var(--bs-link-underline-opacity, 1))!important}.link-success:hover,.link-success:focus{color:RGBA(94,194,152,var(--bs-link-opacity, 1))!important;text-decoration-color:RGBA(94,194,152,var(--bs-link-underline-opacity, 1))!important}.link-info{color:RGBA(var(--bs-info-rgb),var(--bs-link-opacity, 1))!important;text-decoration-color:RGBA(var(--bs-info-rgb),var(--bs-link-underline-opacity, 1))!important}.link-info:hover,.link-info:focus{color:RGBA(194,200,209,var(--bs-link-opacity, 1))!important;text-decoration-color:RGBA(194,200,209,var(--bs-link-underline-opacity, 1))!important}.link-warning{color:RGBA(var(--bs-warning-rgb),var(--bs-link-opacity, 1))!important;text-decoration-color:RGBA(var(--bs-warning-rgb),var(--bs-link-underline-opacity, 1))!important}.link-warning:hover,.link-warning:focus{color:RGBA(255,188,51,var(--bs-link-opacity, 1))!important;text-decoration-color:RGBA(255,188,51,var(--bs-link-underline-opacity, 1))!important}.link-danger{color:RGBA(var(--bs-danger-rgb),var(--bs-link-opacity, 1))!important;text-decoration-color:RGBA(var(--bs-danger-rgb),var(--bs-link-underline-opacity, 1))!important}.link-danger:hover,.link-danger:focus{color:RGBA(255,120,89,var(--bs-link-opacity, 1))!important;text-decoration-color:RGBA(255,120,89,var(--bs-link-underline-opacity, 1))!important}.link-light{color:RGBA(var(--bs-light-rgb),var(--bs-link-opacity, 1))!important;text-decoration-color:RGBA(var(--bs-light-rgb),var(--bs-link-underline-opacity, 1))!important}.link-light:hover,.link-light:focus{color:RGBA(246,247,249,var(--bs-link-opacity, 1))!important;text-decoration-color:RGBA(246,247,249,var(--bs-link-underline-opacity, 1))!important}.link-dark{color:RGBA(var(--bs-dark-rgb),var(--bs-link-opacity, 1))!important;text-decoration-color:RGBA(var(--bs-dark-rgb),var(--bs-link-underline-opacity, 1))!important}.link-dark:hover,.link-dark:focus{color:RGBA(26,30,33,var(--bs-link-opacity, 1))!important;text-decoration-color:RGBA(26,30,33,var(--bs-link-underline-opacity, 1))!important}.link-body-emphasis{color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-opacity, 1))!important;text-decoration-color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-underline-opacity, 1))!important}.link-body-emphasis:hover,.link-body-emphasis:focus{color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-opacity, .75))!important;text-decoration-color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-underline-opacity, .75))!important}.focus-ring:focus{outline:0;box-shadow:var(--bs-focus-ring-x, 0) var(--bs-focus-ring-y, 0) var(--bs-focus-ring-blur, 0) var(--bs-focus-ring-width) var(--bs-focus-ring-color)}.icon-link{display:inline-flex;gap:.375rem;align-items:center;text-decoration-color:rgba(var(--bs-link-color-rgb),var(--bs-link-opacity, .5));text-underline-offset:.25em;-webkit-backface-visibility:hidden;backface-visibility:hidden}.icon-link>.bi{flex-shrink:0;width:1em;height:1em;fill:currentcolor;transition:.2s ease-in-out transform}@media (prefers-reduced-motion: reduce){.icon-link>.bi{transition:none}}.icon-link-hover:hover>.bi,.icon-link-hover:focus-visible>.bi{transform:var(--bs-icon-link-transform, translate3d(.25em, 0, 0))}.ratio{position:relative;width:100%}.ratio:before{display:block;padding-top:var(--bs-aspect-ratio);content:""}.ratio>*{position:absolute;top:0;left:0;width:100%;height:100%}.ratio-1x1{--bs-aspect-ratio: 100%}.ratio-4x3{--bs-aspect-ratio: 75%}.ratio-16x9{--bs-aspect-ratio: 56.25%}.ratio-21x9{--bs-aspect-ratio: 42.8571428571%}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}.sticky-top{position:sticky;top:0;z-index:1020}.sticky-bottom{position:sticky;bottom:0;z-index:1020}@media (min-width: 576px){.sticky-sm-top{position:sticky;top:0;z-index:1020}.sticky-sm-bottom{position:sticky;bottom:0;z-index:1020}}@media (min-width: 768px){.sticky-md-top{position:sticky;top:0;z-index:1020}.sticky-md-bottom{position:sticky;bottom:0;z-index:1020}}@media (min-width: 992px){.sticky-lg-top{position:sticky;top:0;z-index:1020}.sticky-lg-bottom{position:sticky;bottom:0;z-index:1020}}@media (min-width: 1200px){.sticky-xl-top{position:sticky;top:0;z-index:1020}.sticky-xl-bottom{position:sticky;bottom:0;z-index:1020}}@media (min-width: 1400px){.sticky-xxl-top{position:sticky;top:0;z-index:1020}.sticky-xxl-bottom{position:sticky;bottom:0;z-index:1020}}.hstack{display:flex;flex-direction:row;align-items:center;align-self:stretch}.vstack{display:flex;flex:1 1 auto;flex-direction:column;align-self:stretch}.visually-hidden,.visually-hidden-focusable:not(:focus):not(:focus-within){width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.visually-hidden:not(caption),.visually-hidden-focusable:not(:focus):not(:focus-within):not(caption){position:absolute!important}.stretched-link:after{position:absolute;inset:0;z-index:1;content:""}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vr{display:inline-block;align-self:stretch;width:var(--bs-border-width);min-height:1em;background-color:currentcolor;opacity:.25}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.float-start{float:left!important}.float-end{float:right!important}.float-none{float:none!important}.object-fit-contain{object-fit:contain!important}.object-fit-cover{object-fit:cover!important}.object-fit-fill{object-fit:fill!important}.object-fit-scale{object-fit:scale-down!important}.object-fit-none{object-fit:none!important}.opacity-0{opacity:0!important}.opacity-25{opacity:.25!important}.opacity-50{opacity:.5!important}.opacity-75{opacity:.75!important}.opacity-100{opacity:1!important}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.overflow-visible{overflow:visible!important}.overflow-scroll{overflow:scroll!important}.overflow-x-auto{overflow-x:auto!important}.overflow-x-hidden{overflow-x:hidden!important}.overflow-x-visible{overflow-x:visible!important}.overflow-x-scroll{overflow-x:scroll!important}.overflow-y-auto{overflow-y:auto!important}.overflow-y-hidden{overflow-y:hidden!important}.overflow-y-visible{overflow-y:visible!important}.overflow-y-scroll{overflow-y:scroll!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-grid{display:grid!important}.d-inline-grid{display:inline-grid!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}.d-none{display:none!important}.shadow{box-shadow:0 .5rem 1rem #00000026!important}.shadow-sm{box-shadow:0 .125rem .25rem #00000013!important}.shadow-lg{box-shadow:0 1rem 3rem #0000002d!important}.shadow-none{box-shadow:none!important}.focus-ring-primary{--bs-focus-ring-color: rgba(var(--bs-primary-rgb), var(--bs-focus-ring-opacity))}.focus-ring-secondary{--bs-focus-ring-color: rgba(var(--bs-secondary-rgb), var(--bs-focus-ring-opacity))}.focus-ring-success{--bs-focus-ring-color: rgba(var(--bs-success-rgb), var(--bs-focus-ring-opacity))}.focus-ring-info{--bs-focus-ring-color: rgba(var(--bs-info-rgb), var(--bs-focus-ring-opacity))}.focus-ring-warning{--bs-focus-ring-color: rgba(var(--bs-warning-rgb), var(--bs-focus-ring-opacity))}.focus-ring-danger{--bs-focus-ring-color: rgba(var(--bs-danger-rgb), var(--bs-focus-ring-opacity))}.focus-ring-light{--bs-focus-ring-color: rgba(var(--bs-light-rgb), var(--bs-focus-ring-opacity))}.focus-ring-dark{--bs-focus-ring-color: rgba(var(--bs-dark-rgb), var(--bs-focus-ring-opacity))}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:sticky!important}.top-0{top:0!important}.top-50{top:50%!important}.top-100{top:100%!important}.bottom-0{bottom:0!important}.bottom-50{bottom:50%!important}.bottom-100{bottom:100%!important}.start-0{left:0!important}.start-50{left:50%!important}.start-100{left:100%!important}.end-0{right:0!important}.end-50{right:50%!important}.end-100{right:100%!important}.translate-middle{transform:translate(-50%,-50%)!important}.translate-middle-x{transform:translate(-50%)!important}.translate-middle-y{transform:translateY(-50%)!important}.border{border:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-0{border:0!important}.border-top{border-top:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-top-0{border-top:0!important}.border-end{border-right:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-end-0{border-right:0!important}.border-bottom{border-bottom:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-bottom-0{border-bottom:0!important}.border-start{border-left:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-start-0{border-left:0!important}.border-primary{--bs-border-opacity: 1;border-color:rgba(var(--bs-primary-rgb),var(--bs-border-opacity))!important}.border-secondary{--bs-border-opacity: 1;border-color:rgba(var(--bs-secondary-rgb),var(--bs-border-opacity))!important}.border-success{--bs-border-opacity: 1;border-color:rgba(var(--bs-success-rgb),var(--bs-border-opacity))!important}.border-info{--bs-border-opacity: 1;border-color:rgba(var(--bs-info-rgb),var(--bs-border-opacity))!important}.border-warning{--bs-border-opacity: 1;border-color:rgba(var(--bs-warning-rgb),var(--bs-border-opacity))!important}.border-danger{--bs-border-opacity: 1;border-color:rgba(var(--bs-danger-rgb),var(--bs-border-opacity))!important}.border-light{--bs-border-opacity: 1;border-color:rgba(var(--bs-light-rgb),var(--bs-border-opacity))!important}.border-dark{--bs-border-opacity: 1;border-color:rgba(var(--bs-dark-rgb),var(--bs-border-opacity))!important}.border-black{--bs-border-opacity: 1;border-color:rgba(var(--bs-black-rgb),var(--bs-border-opacity))!important}.border-white{--bs-border-opacity: 1;border-color:rgba(var(--bs-white-rgb),var(--bs-border-opacity))!important}.border-primary-subtle{border-color:var(--bs-primary-border-subtle)!important}.border-secondary-subtle{border-color:var(--bs-secondary-border-subtle)!important}.border-success-subtle{border-color:var(--bs-success-border-subtle)!important}.border-info-subtle{border-color:var(--bs-info-border-subtle)!important}.border-warning-subtle{border-color:var(--bs-warning-border-subtle)!important}.border-danger-subtle{border-color:var(--bs-danger-border-subtle)!important}.border-light-subtle{border-color:var(--bs-light-border-subtle)!important}.border-dark-subtle{border-color:var(--bs-dark-border-subtle)!important}.border-1{border-width:1px!important}.border-2{border-width:2px!important}.border-3{border-width:3px!important}.border-4{border-width:4px!important}.border-5{border-width:5px!important}.border-opacity-10{--bs-border-opacity: .1}.border-opacity-25{--bs-border-opacity: .25}.border-opacity-50{--bs-border-opacity: .5}.border-opacity-75{--bs-border-opacity: .75}.border-opacity-100{--bs-border-opacity: 1}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.mw-100{max-width:100%!important}.vw-100{width:100vw!important}.min-vw-100{min-width:100vw!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mh-100{max-height:100%!important}.vh-100{height:100vh!important}.min-vh-100{min-height:100vh!important}.flex-fill{flex:1 1 auto!important}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.justify-content-evenly{justify-content:space-evenly!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}.order-first{order:-1!important}.order-0{order:0!important}.order-1{order:1!important}.order-2{order:2!important}.order-3{order:3!important}.order-4{order:4!important}.order-5{order:5!important}.order-last{order:6!important}.m-0{margin:0!important}.m-1{margin:.25rem!important}.m-2{margin:.5rem!important}.m-3{margin:1rem!important}.m-4{margin:1.5rem!important}.m-5{margin:3rem!important}.m-auto{margin:auto!important}.mx-0{margin-right:0!important;margin-left:0!important}.mx-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-3{margin-right:1rem!important;margin-left:1rem!important}.mx-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-5{margin-right:3rem!important;margin-left:3rem!important}.mx-auto{margin-right:auto!important;margin-left:auto!important}.my-0{margin-top:0!important;margin-bottom:0!important}.my-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-0{margin-top:0!important}.mt-1{margin-top:.25rem!important}.mt-2{margin-top:.5rem!important}.mt-3{margin-top:1rem!important}.mt-4{margin-top:1.5rem!important}.mt-5{margin-top:3rem!important}.mt-auto{margin-top:auto!important}.me-0{margin-right:0!important}.me-1{margin-right:.25rem!important}.me-2{margin-right:.5rem!important}.me-3{margin-right:1rem!important}.me-4{margin-right:1.5rem!important}.me-5{margin-right:3rem!important}.me-auto{margin-right:auto!important}.mb-0{margin-bottom:0!important}.mb-1{margin-bottom:.25rem!important}.mb-2{margin-bottom:.5rem!important}.mb-3{margin-bottom:1rem!important}.mb-4{margin-bottom:1.5rem!important}.mb-5{margin-bottom:3rem!important}.mb-auto{margin-bottom:auto!important}.ms-0{margin-left:0!important}.ms-1{margin-left:.25rem!important}.ms-2{margin-left:.5rem!important}.ms-3{margin-left:1rem!important}.ms-4{margin-left:1.5rem!important}.ms-5{margin-left:3rem!important}.ms-auto{margin-left:auto!important}.p-0{padding:0!important}.p-1{padding:.25rem!important}.p-2{padding:.5rem!important}.p-3{padding:1rem!important}.p-4{padding:1.5rem!important}.p-5{padding:3rem!important}.px-0{padding-right:0!important;padding-left:0!important}.px-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-3{padding-right:1rem!important;padding-left:1rem!important}.px-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-5{padding-right:3rem!important;padding-left:3rem!important}.py-0{padding-top:0!important;padding-bottom:0!important}.py-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-0{padding-top:0!important}.pt-1{padding-top:.25rem!important}.pt-2{padding-top:.5rem!important}.pt-3{padding-top:1rem!important}.pt-4{padding-top:1.5rem!important}.pt-5{padding-top:3rem!important}.pe-0{padding-right:0!important}.pe-1{padding-right:.25rem!important}.pe-2{padding-right:.5rem!important}.pe-3{padding-right:1rem!important}.pe-4{padding-right:1.5rem!important}.pe-5{padding-right:3rem!important}.pb-0{padding-bottom:0!important}.pb-1{padding-bottom:.25rem!important}.pb-2{padding-bottom:.5rem!important}.pb-3{padding-bottom:1rem!important}.pb-4{padding-bottom:1.5rem!important}.pb-5{padding-bottom:3rem!important}.ps-0{padding-left:0!important}.ps-1{padding-left:.25rem!important}.ps-2{padding-left:.5rem!important}.ps-3{padding-left:1rem!important}.ps-4{padding-left:1.5rem!important}.ps-5{padding-left:3rem!important}.gap-0{gap:0!important}.gap-1{gap:.25rem!important}.gap-2{gap:.5rem!important}.gap-3{gap:1rem!important}.gap-4{gap:1.5rem!important}.gap-5{gap:3rem!important}.row-gap-0{row-gap:0!important}.row-gap-1{row-gap:.25rem!important}.row-gap-2{row-gap:.5rem!important}.row-gap-3{row-gap:1rem!important}.row-gap-4{row-gap:1.5rem!important}.row-gap-5{row-gap:3rem!important}.column-gap-0{column-gap:0!important}.column-gap-1{column-gap:.25rem!important}.column-gap-2{column-gap:.5rem!important}.column-gap-3{column-gap:1rem!important}.column-gap-4{column-gap:1.5rem!important}.column-gap-5{column-gap:3rem!important}.font-monospace{font-family:var(--bs-font-monospace)!important}.fs-1{font-size:calc(1.375rem + 1.5vw)!important}.fs-2{font-size:calc(1.325rem + .9vw)!important}.fs-3{font-size:calc(1.3rem + .6vw)!important}.fs-4{font-size:calc(1.275rem + .3vw)!important}.fs-5{font-size:1.25rem!important}.fs-6{font-size:1rem!important}.fst-italic{font-style:italic!important}.fst-normal{font-style:normal!important}.fw-lighter{font-weight:lighter!important}.fw-light{font-weight:300!important}.fw-normal{font-weight:400!important}.fw-medium{font-weight:500!important}.fw-semibold{font-weight:600!important}.fw-bold{font-weight:700!important}.fw-bolder{font-weight:bolder!important}.lh-1{line-height:1!important}.lh-sm{line-height:1.25!important}.lh-base{line-height:1.5!important}.lh-lg{line-height:2!important}.text-start{text-align:left!important}.text-end{text-align:right!important}.text-center{text-align:center!important}.text-decoration-none{text-decoration:none!important}.text-decoration-underline{text-decoration:underline!important}.text-decoration-line-through{text-decoration:line-through!important}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-break{word-wrap:break-word!important;word-break:break-word!important}.text-primary{--bs-text-opacity: 1;color:rgba(var(--bs-primary-rgb),var(--bs-text-opacity))!important}.text-secondary{--bs-text-opacity: 1;color:rgba(var(--bs-secondary-rgb),var(--bs-text-opacity))!important}.text-success{--bs-text-opacity: 1;color:rgba(var(--bs-success-rgb),var(--bs-text-opacity))!important}.text-info{--bs-text-opacity: 1;color:rgba(var(--bs-info-rgb),var(--bs-text-opacity))!important}.text-warning{--bs-text-opacity: 1;color:rgba(var(--bs-warning-rgb),var(--bs-text-opacity))!important}.text-danger{--bs-text-opacity: 1;color:rgba(var(--bs-danger-rgb),var(--bs-text-opacity))!important}.text-light{--bs-text-opacity: 1;color:rgba(var(--bs-light-rgb),var(--bs-text-opacity))!important}.text-dark{--bs-text-opacity: 1;color:rgba(var(--bs-dark-rgb),var(--bs-text-opacity))!important}.text-black{--bs-text-opacity: 1;color:rgba(var(--bs-black-rgb),var(--bs-text-opacity))!important}.text-white{--bs-text-opacity: 1;color:rgba(var(--bs-white-rgb),var(--bs-text-opacity))!important}.text-body{--bs-text-opacity: 1;color:rgba(var(--bs-body-color-rgb),var(--bs-text-opacity))!important}.text-muted{--bs-text-opacity: 1;color:var(--bs-secondary-color)!important}.text-black-50{--bs-text-opacity: 1;color:#00000080!important}.text-white-50{--bs-text-opacity: 1;color:#ffffff80!important}.text-body-secondary{--bs-text-opacity: 1;color:var(--bs-secondary-color)!important}.text-body-tertiary{--bs-text-opacity: 1;color:var(--bs-tertiary-color)!important}.text-body-emphasis{--bs-text-opacity: 1;color:var(--bs-emphasis-color)!important}.text-reset{--bs-text-opacity: 1;color:inherit!important}.text-opacity-25{--bs-text-opacity: .25}.text-opacity-50{--bs-text-opacity: .5}.text-opacity-75{--bs-text-opacity: .75}.text-opacity-100{--bs-text-opacity: 1}.text-primary-emphasis{color:var(--bs-primary-text-emphasis)!important}.text-secondary-emphasis{color:var(--bs-secondary-text-emphasis)!important}.text-success-emphasis{color:var(--bs-success-text-emphasis)!important}.text-info-emphasis{color:var(--bs-info-text-emphasis)!important}.text-warning-emphasis{color:var(--bs-warning-text-emphasis)!important}.text-danger-emphasis{color:var(--bs-danger-text-emphasis)!important}.text-light-emphasis{color:var(--bs-light-text-emphasis)!important}.text-dark-emphasis{color:var(--bs-dark-text-emphasis)!important}.link-opacity-10,.link-opacity-10-hover:hover{--bs-link-opacity: .1}.link-opacity-25,.link-opacity-25-hover:hover{--bs-link-opacity: .25}.link-opacity-50,.link-opacity-50-hover:hover{--bs-link-opacity: .5}.link-opacity-75,.link-opacity-75-hover:hover{--bs-link-opacity: .75}.link-opacity-100,.link-opacity-100-hover:hover{--bs-link-opacity: 1}.link-offset-1,.link-offset-1-hover:hover{text-underline-offset:.125em!important}.link-offset-2,.link-offset-2-hover:hover{text-underline-offset:.25em!important}.link-offset-3,.link-offset-3-hover:hover{text-underline-offset:.375em!important}.link-underline-primary{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-primary-rgb),var(--bs-link-underline-opacity))!important}.link-underline-secondary{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-secondary-rgb),var(--bs-link-underline-opacity))!important}.link-underline-success{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-success-rgb),var(--bs-link-underline-opacity))!important}.link-underline-info{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-info-rgb),var(--bs-link-underline-opacity))!important}.link-underline-warning{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-warning-rgb),var(--bs-link-underline-opacity))!important}.link-underline-danger{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-danger-rgb),var(--bs-link-underline-opacity))!important}.link-underline-light{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-light-rgb),var(--bs-link-underline-opacity))!important}.link-underline-dark{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-dark-rgb),var(--bs-link-underline-opacity))!important}.link-underline{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-link-color-rgb),var(--bs-link-underline-opacity, 1))!important}.link-underline-opacity-0,.link-underline-opacity-0-hover:hover{--bs-link-underline-opacity: 0}.link-underline-opacity-10,.link-underline-opacity-10-hover:hover{--bs-link-underline-opacity: .1}.link-underline-opacity-25,.link-underline-opacity-25-hover:hover{--bs-link-underline-opacity: .25}.link-underline-opacity-50,.link-underline-opacity-50-hover:hover{--bs-link-underline-opacity: .5}.link-underline-opacity-75,.link-underline-opacity-75-hover:hover{--bs-link-underline-opacity: .75}.link-underline-opacity-100,.link-underline-opacity-100-hover:hover{--bs-link-underline-opacity: 1}.bg-primary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-primary-rgb),var(--bs-bg-opacity))!important}.bg-secondary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-secondary-rgb),var(--bs-bg-opacity))!important}.bg-success{--bs-bg-opacity: 1;background-color:rgba(var(--bs-success-rgb),var(--bs-bg-opacity))!important}.bg-info{--bs-bg-opacity: 1;background-color:rgba(var(--bs-info-rgb),var(--bs-bg-opacity))!important}.bg-warning{--bs-bg-opacity: 1;background-color:rgba(var(--bs-warning-rgb),var(--bs-bg-opacity))!important}.bg-danger{--bs-bg-opacity: 1;background-color:rgba(var(--bs-danger-rgb),var(--bs-bg-opacity))!important}.bg-light{--bs-bg-opacity: 1;background-color:rgba(var(--bs-light-rgb),var(--bs-bg-opacity))!important}.bg-dark{--bs-bg-opacity: 1;background-color:rgba(var(--bs-dark-rgb),var(--bs-bg-opacity))!important}.bg-black{--bs-bg-opacity: 1;background-color:rgba(var(--bs-black-rgb),var(--bs-bg-opacity))!important}.bg-white{--bs-bg-opacity: 1;background-color:rgba(var(--bs-white-rgb),var(--bs-bg-opacity))!important}.bg-body{--bs-bg-opacity: 1;background-color:rgba(var(--bs-body-bg-rgb),var(--bs-bg-opacity))!important}.bg-transparent{--bs-bg-opacity: 1;background-color:transparent!important}.bg-body-secondary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-secondary-bg-rgb),var(--bs-bg-opacity))!important}.bg-body-tertiary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-tertiary-bg-rgb),var(--bs-bg-opacity))!important}.bg-opacity-10{--bs-bg-opacity: .1}.bg-opacity-25{--bs-bg-opacity: .25}.bg-opacity-50{--bs-bg-opacity: .5}.bg-opacity-75{--bs-bg-opacity: .75}.bg-opacity-100{--bs-bg-opacity: 1}.bg-primary-subtle{background-color:var(--bs-primary-bg-subtle)!important}.bg-secondary-subtle{background-color:var(--bs-secondary-bg-subtle)!important}.bg-success-subtle{background-color:var(--bs-success-bg-subtle)!important}.bg-info-subtle{background-color:var(--bs-info-bg-subtle)!important}.bg-warning-subtle{background-color:var(--bs-warning-bg-subtle)!important}.bg-danger-subtle{background-color:var(--bs-danger-bg-subtle)!important}.bg-light-subtle{background-color:var(--bs-light-bg-subtle)!important}.bg-dark-subtle{background-color:var(--bs-dark-bg-subtle)!important}.bg-gradient{background-image:var(--bs-gradient)!important}.user-select-all{-webkit-user-select:all!important;user-select:all!important}.user-select-auto{-webkit-user-select:auto!important;user-select:auto!important}.user-select-none{-webkit-user-select:none!important;user-select:none!important}.pe-none{pointer-events:none!important}.pe-auto{pointer-events:auto!important}.rounded{border-radius:var(--bs-border-radius)!important}.rounded-0{border-radius:0!important}.rounded-1{border-radius:var(--bs-border-radius-sm)!important}.rounded-2{border-radius:var(--bs-border-radius)!important}.rounded-3{border-radius:var(--bs-border-radius-lg)!important}.rounded-4{border-radius:var(--bs-border-radius-xl)!important}.rounded-5{border-radius:var(--bs-border-radius-xxl)!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:var(--bs-border-radius-pill)!important}.rounded-top{border-top-left-radius:var(--bs-border-radius)!important;border-top-right-radius:var(--bs-border-radius)!important}.rounded-top-0{border-top-left-radius:0!important;border-top-right-radius:0!important}.rounded-top-1{border-top-left-radius:var(--bs-border-radius-sm)!important;border-top-right-radius:var(--bs-border-radius-sm)!important}.rounded-top-2{border-top-left-radius:var(--bs-border-radius)!important;border-top-right-radius:var(--bs-border-radius)!important}.rounded-top-3{border-top-left-radius:var(--bs-border-radius-lg)!important;border-top-right-radius:var(--bs-border-radius-lg)!important}.rounded-top-4{border-top-left-radius:var(--bs-border-radius-xl)!important;border-top-right-radius:var(--bs-border-radius-xl)!important}.rounded-top-5{border-top-left-radius:var(--bs-border-radius-xxl)!important;border-top-right-radius:var(--bs-border-radius-xxl)!important}.rounded-top-circle{border-top-left-radius:50%!important;border-top-right-radius:50%!important}.rounded-top-pill{border-top-left-radius:var(--bs-border-radius-pill)!important;border-top-right-radius:var(--bs-border-radius-pill)!important}.rounded-end{border-top-right-radius:var(--bs-border-radius)!important;border-bottom-right-radius:var(--bs-border-radius)!important}.rounded-end-0{border-top-right-radius:0!important;border-bottom-right-radius:0!important}.rounded-end-1{border-top-right-radius:var(--bs-border-radius-sm)!important;border-bottom-right-radius:var(--bs-border-radius-sm)!important}.rounded-end-2{border-top-right-radius:var(--bs-border-radius)!important;border-bottom-right-radius:var(--bs-border-radius)!important}.rounded-end-3{border-top-right-radius:var(--bs-border-radius-lg)!important;border-bottom-right-radius:var(--bs-border-radius-lg)!important}.rounded-end-4{border-top-right-radius:var(--bs-border-radius-xl)!important;border-bottom-right-radius:var(--bs-border-radius-xl)!important}.rounded-end-5{border-top-right-radius:var(--bs-border-radius-xxl)!important;border-bottom-right-radius:var(--bs-border-radius-xxl)!important}.rounded-end-circle{border-top-right-radius:50%!important;border-bottom-right-radius:50%!important}.rounded-end-pill{border-top-right-radius:var(--bs-border-radius-pill)!important;border-bottom-right-radius:var(--bs-border-radius-pill)!important}.rounded-bottom{border-bottom-right-radius:var(--bs-border-radius)!important;border-bottom-left-radius:var(--bs-border-radius)!important}.rounded-bottom-0{border-bottom-right-radius:0!important;border-bottom-left-radius:0!important}.rounded-bottom-1{border-bottom-right-radius:var(--bs-border-radius-sm)!important;border-bottom-left-radius:var(--bs-border-radius-sm)!important}.rounded-bottom-2{border-bottom-right-radius:var(--bs-border-radius)!important;border-bottom-left-radius:var(--bs-border-radius)!important}.rounded-bottom-3{border-bottom-right-radius:var(--bs-border-radius-lg)!important;border-bottom-left-radius:var(--bs-border-radius-lg)!important}.rounded-bottom-4{border-bottom-right-radius:var(--bs-border-radius-xl)!important;border-bottom-left-radius:var(--bs-border-radius-xl)!important}.rounded-bottom-5{border-bottom-right-radius:var(--bs-border-radius-xxl)!important;border-bottom-left-radius:var(--bs-border-radius-xxl)!important}.rounded-bottom-circle{border-bottom-right-radius:50%!important;border-bottom-left-radius:50%!important}.rounded-bottom-pill{border-bottom-right-radius:var(--bs-border-radius-pill)!important;border-bottom-left-radius:var(--bs-border-radius-pill)!important}.rounded-start{border-bottom-left-radius:var(--bs-border-radius)!important;border-top-left-radius:var(--bs-border-radius)!important}.rounded-start-0{border-bottom-left-radius:0!important;border-top-left-radius:0!important}.rounded-start-1{border-bottom-left-radius:var(--bs-border-radius-sm)!important;border-top-left-radius:var(--bs-border-radius-sm)!important}.rounded-start-2{border-bottom-left-radius:var(--bs-border-radius)!important;border-top-left-radius:var(--bs-border-radius)!important}.rounded-start-3{border-bottom-left-radius:var(--bs-border-radius-lg)!important;border-top-left-radius:var(--bs-border-radius-lg)!important}.rounded-start-4{border-bottom-left-radius:var(--bs-border-radius-xl)!important;border-top-left-radius:var(--bs-border-radius-xl)!important}.rounded-start-5{border-bottom-left-radius:var(--bs-border-radius-xxl)!important;border-top-left-radius:var(--bs-border-radius-xxl)!important}.rounded-start-circle{border-bottom-left-radius:50%!important;border-top-left-radius:50%!important}.rounded-start-pill{border-bottom-left-radius:var(--bs-border-radius-pill)!important;border-top-left-radius:var(--bs-border-radius-pill)!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}.z-n1{z-index:-1!important}.z-0{z-index:0!important}.z-1{z-index:1!important}.z-2{z-index:2!important}.z-3{z-index:3!important}@media (min-width: 576px){.float-sm-start{float:left!important}.float-sm-end{float:right!important}.float-sm-none{float:none!important}.object-fit-sm-contain{object-fit:contain!important}.object-fit-sm-cover{object-fit:cover!important}.object-fit-sm-fill{object-fit:fill!important}.object-fit-sm-scale{object-fit:scale-down!important}.object-fit-sm-none{object-fit:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-grid{display:grid!important}.d-sm-inline-grid{display:inline-grid!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}.d-sm-none{display:none!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.justify-content-sm-evenly{justify-content:space-evenly!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}.order-sm-first{order:-1!important}.order-sm-0{order:0!important}.order-sm-1{order:1!important}.order-sm-2{order:2!important}.order-sm-3{order:3!important}.order-sm-4{order:4!important}.order-sm-5{order:5!important}.order-sm-last{order:6!important}.m-sm-0{margin:0!important}.m-sm-1{margin:.25rem!important}.m-sm-2{margin:.5rem!important}.m-sm-3{margin:1rem!important}.m-sm-4{margin:1.5rem!important}.m-sm-5{margin:3rem!important}.m-sm-auto{margin:auto!important}.mx-sm-0{margin-right:0!important;margin-left:0!important}.mx-sm-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-sm-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-sm-3{margin-right:1rem!important;margin-left:1rem!important}.mx-sm-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-sm-5{margin-right:3rem!important;margin-left:3rem!important}.mx-sm-auto{margin-right:auto!important;margin-left:auto!important}.my-sm-0{margin-top:0!important;margin-bottom:0!important}.my-sm-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-sm-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-sm-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-sm-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-sm-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-sm-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-sm-0{margin-top:0!important}.mt-sm-1{margin-top:.25rem!important}.mt-sm-2{margin-top:.5rem!important}.mt-sm-3{margin-top:1rem!important}.mt-sm-4{margin-top:1.5rem!important}.mt-sm-5{margin-top:3rem!important}.mt-sm-auto{margin-top:auto!important}.me-sm-0{margin-right:0!important}.me-sm-1{margin-right:.25rem!important}.me-sm-2{margin-right:.5rem!important}.me-sm-3{margin-right:1rem!important}.me-sm-4{margin-right:1.5rem!important}.me-sm-5{margin-right:3rem!important}.me-sm-auto{margin-right:auto!important}.mb-sm-0{margin-bottom:0!important}.mb-sm-1{margin-bottom:.25rem!important}.mb-sm-2{margin-bottom:.5rem!important}.mb-sm-3{margin-bottom:1rem!important}.mb-sm-4{margin-bottom:1.5rem!important}.mb-sm-5{margin-bottom:3rem!important}.mb-sm-auto{margin-bottom:auto!important}.ms-sm-0{margin-left:0!important}.ms-sm-1{margin-left:.25rem!important}.ms-sm-2{margin-left:.5rem!important}.ms-sm-3{margin-left:1rem!important}.ms-sm-4{margin-left:1.5rem!important}.ms-sm-5{margin-left:3rem!important}.ms-sm-auto{margin-left:auto!important}.p-sm-0{padding:0!important}.p-sm-1{padding:.25rem!important}.p-sm-2{padding:.5rem!important}.p-sm-3{padding:1rem!important}.p-sm-4{padding:1.5rem!important}.p-sm-5{padding:3rem!important}.px-sm-0{padding-right:0!important;padding-left:0!important}.px-sm-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-sm-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-sm-3{padding-right:1rem!important;padding-left:1rem!important}.px-sm-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-sm-5{padding-right:3rem!important;padding-left:3rem!important}.py-sm-0{padding-top:0!important;padding-bottom:0!important}.py-sm-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-sm-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-sm-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-sm-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-sm-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-sm-0{padding-top:0!important}.pt-sm-1{padding-top:.25rem!important}.pt-sm-2{padding-top:.5rem!important}.pt-sm-3{padding-top:1rem!important}.pt-sm-4{padding-top:1.5rem!important}.pt-sm-5{padding-top:3rem!important}.pe-sm-0{padding-right:0!important}.pe-sm-1{padding-right:.25rem!important}.pe-sm-2{padding-right:.5rem!important}.pe-sm-3{padding-right:1rem!important}.pe-sm-4{padding-right:1.5rem!important}.pe-sm-5{padding-right:3rem!important}.pb-sm-0{padding-bottom:0!important}.pb-sm-1{padding-bottom:.25rem!important}.pb-sm-2{padding-bottom:.5rem!important}.pb-sm-3{padding-bottom:1rem!important}.pb-sm-4{padding-bottom:1.5rem!important}.pb-sm-5{padding-bottom:3rem!important}.ps-sm-0{padding-left:0!important}.ps-sm-1{padding-left:.25rem!important}.ps-sm-2{padding-left:.5rem!important}.ps-sm-3{padding-left:1rem!important}.ps-sm-4{padding-left:1.5rem!important}.ps-sm-5{padding-left:3rem!important}.gap-sm-0{gap:0!important}.gap-sm-1{gap:.25rem!important}.gap-sm-2{gap:.5rem!important}.gap-sm-3{gap:1rem!important}.gap-sm-4{gap:1.5rem!important}.gap-sm-5{gap:3rem!important}.row-gap-sm-0{row-gap:0!important}.row-gap-sm-1{row-gap:.25rem!important}.row-gap-sm-2{row-gap:.5rem!important}.row-gap-sm-3{row-gap:1rem!important}.row-gap-sm-4{row-gap:1.5rem!important}.row-gap-sm-5{row-gap:3rem!important}.column-gap-sm-0{column-gap:0!important}.column-gap-sm-1{column-gap:.25rem!important}.column-gap-sm-2{column-gap:.5rem!important}.column-gap-sm-3{column-gap:1rem!important}.column-gap-sm-4{column-gap:1.5rem!important}.column-gap-sm-5{column-gap:3rem!important}.text-sm-start{text-align:left!important}.text-sm-end{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width: 768px){.float-md-start{float:left!important}.float-md-end{float:right!important}.float-md-none{float:none!important}.object-fit-md-contain{object-fit:contain!important}.object-fit-md-cover{object-fit:cover!important}.object-fit-md-fill{object-fit:fill!important}.object-fit-md-scale{object-fit:scale-down!important}.object-fit-md-none{object-fit:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-grid{display:grid!important}.d-md-inline-grid{display:inline-grid!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}.d-md-none{display:none!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.justify-content-md-evenly{justify-content:space-evenly!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}.order-md-first{order:-1!important}.order-md-0{order:0!important}.order-md-1{order:1!important}.order-md-2{order:2!important}.order-md-3{order:3!important}.order-md-4{order:4!important}.order-md-5{order:5!important}.order-md-last{order:6!important}.m-md-0{margin:0!important}.m-md-1{margin:.25rem!important}.m-md-2{margin:.5rem!important}.m-md-3{margin:1rem!important}.m-md-4{margin:1.5rem!important}.m-md-5{margin:3rem!important}.m-md-auto{margin:auto!important}.mx-md-0{margin-right:0!important;margin-left:0!important}.mx-md-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-md-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-md-3{margin-right:1rem!important;margin-left:1rem!important}.mx-md-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-md-5{margin-right:3rem!important;margin-left:3rem!important}.mx-md-auto{margin-right:auto!important;margin-left:auto!important}.my-md-0{margin-top:0!important;margin-bottom:0!important}.my-md-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-md-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-md-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-md-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-md-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-md-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-md-0{margin-top:0!important}.mt-md-1{margin-top:.25rem!important}.mt-md-2{margin-top:.5rem!important}.mt-md-3{margin-top:1rem!important}.mt-md-4{margin-top:1.5rem!important}.mt-md-5{margin-top:3rem!important}.mt-md-auto{margin-top:auto!important}.me-md-0{margin-right:0!important}.me-md-1{margin-right:.25rem!important}.me-md-2{margin-right:.5rem!important}.me-md-3{margin-right:1rem!important}.me-md-4{margin-right:1.5rem!important}.me-md-5{margin-right:3rem!important}.me-md-auto{margin-right:auto!important}.mb-md-0{margin-bottom:0!important}.mb-md-1{margin-bottom:.25rem!important}.mb-md-2{margin-bottom:.5rem!important}.mb-md-3{margin-bottom:1rem!important}.mb-md-4{margin-bottom:1.5rem!important}.mb-md-5{margin-bottom:3rem!important}.mb-md-auto{margin-bottom:auto!important}.ms-md-0{margin-left:0!important}.ms-md-1{margin-left:.25rem!important}.ms-md-2{margin-left:.5rem!important}.ms-md-3{margin-left:1rem!important}.ms-md-4{margin-left:1.5rem!important}.ms-md-5{margin-left:3rem!important}.ms-md-auto{margin-left:auto!important}.p-md-0{padding:0!important}.p-md-1{padding:.25rem!important}.p-md-2{padding:.5rem!important}.p-md-3{padding:1rem!important}.p-md-4{padding:1.5rem!important}.p-md-5{padding:3rem!important}.px-md-0{padding-right:0!important;padding-left:0!important}.px-md-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-md-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-md-3{padding-right:1rem!important;padding-left:1rem!important}.px-md-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-md-5{padding-right:3rem!important;padding-left:3rem!important}.py-md-0{padding-top:0!important;padding-bottom:0!important}.py-md-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-md-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-md-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-md-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-md-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-md-0{padding-top:0!important}.pt-md-1{padding-top:.25rem!important}.pt-md-2{padding-top:.5rem!important}.pt-md-3{padding-top:1rem!important}.pt-md-4{padding-top:1.5rem!important}.pt-md-5{padding-top:3rem!important}.pe-md-0{padding-right:0!important}.pe-md-1{padding-right:.25rem!important}.pe-md-2{padding-right:.5rem!important}.pe-md-3{padding-right:1rem!important}.pe-md-4{padding-right:1.5rem!important}.pe-md-5{padding-right:3rem!important}.pb-md-0{padding-bottom:0!important}.pb-md-1{padding-bottom:.25rem!important}.pb-md-2{padding-bottom:.5rem!important}.pb-md-3{padding-bottom:1rem!important}.pb-md-4{padding-bottom:1.5rem!important}.pb-md-5{padding-bottom:3rem!important}.ps-md-0{padding-left:0!important}.ps-md-1{padding-left:.25rem!important}.ps-md-2{padding-left:.5rem!important}.ps-md-3{padding-left:1rem!important}.ps-md-4{padding-left:1.5rem!important}.ps-md-5{padding-left:3rem!important}.gap-md-0{gap:0!important}.gap-md-1{gap:.25rem!important}.gap-md-2{gap:.5rem!important}.gap-md-3{gap:1rem!important}.gap-md-4{gap:1.5rem!important}.gap-md-5{gap:3rem!important}.row-gap-md-0{row-gap:0!important}.row-gap-md-1{row-gap:.25rem!important}.row-gap-md-2{row-gap:.5rem!important}.row-gap-md-3{row-gap:1rem!important}.row-gap-md-4{row-gap:1.5rem!important}.row-gap-md-5{row-gap:3rem!important}.column-gap-md-0{column-gap:0!important}.column-gap-md-1{column-gap:.25rem!important}.column-gap-md-2{column-gap:.5rem!important}.column-gap-md-3{column-gap:1rem!important}.column-gap-md-4{column-gap:1.5rem!important}.column-gap-md-5{column-gap:3rem!important}.text-md-start{text-align:left!important}.text-md-end{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width: 992px){.float-lg-start{float:left!important}.float-lg-end{float:right!important}.float-lg-none{float:none!important}.object-fit-lg-contain{object-fit:contain!important}.object-fit-lg-cover{object-fit:cover!important}.object-fit-lg-fill{object-fit:fill!important}.object-fit-lg-scale{object-fit:scale-down!important}.object-fit-lg-none{object-fit:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-grid{display:grid!important}.d-lg-inline-grid{display:inline-grid!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}.d-lg-none{display:none!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.justify-content-lg-evenly{justify-content:space-evenly!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}.order-lg-first{order:-1!important}.order-lg-0{order:0!important}.order-lg-1{order:1!important}.order-lg-2{order:2!important}.order-lg-3{order:3!important}.order-lg-4{order:4!important}.order-lg-5{order:5!important}.order-lg-last{order:6!important}.m-lg-0{margin:0!important}.m-lg-1{margin:.25rem!important}.m-lg-2{margin:.5rem!important}.m-lg-3{margin:1rem!important}.m-lg-4{margin:1.5rem!important}.m-lg-5{margin:3rem!important}.m-lg-auto{margin:auto!important}.mx-lg-0{margin-right:0!important;margin-left:0!important}.mx-lg-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-lg-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-lg-3{margin-right:1rem!important;margin-left:1rem!important}.mx-lg-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-lg-5{margin-right:3rem!important;margin-left:3rem!important}.mx-lg-auto{margin-right:auto!important;margin-left:auto!important}.my-lg-0{margin-top:0!important;margin-bottom:0!important}.my-lg-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-lg-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-lg-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-lg-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-lg-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-lg-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-lg-0{margin-top:0!important}.mt-lg-1{margin-top:.25rem!important}.mt-lg-2{margin-top:.5rem!important}.mt-lg-3{margin-top:1rem!important}.mt-lg-4{margin-top:1.5rem!important}.mt-lg-5{margin-top:3rem!important}.mt-lg-auto{margin-top:auto!important}.me-lg-0{margin-right:0!important}.me-lg-1{margin-right:.25rem!important}.me-lg-2{margin-right:.5rem!important}.me-lg-3{margin-right:1rem!important}.me-lg-4{margin-right:1.5rem!important}.me-lg-5{margin-right:3rem!important}.me-lg-auto{margin-right:auto!important}.mb-lg-0{margin-bottom:0!important}.mb-lg-1{margin-bottom:.25rem!important}.mb-lg-2{margin-bottom:.5rem!important}.mb-lg-3{margin-bottom:1rem!important}.mb-lg-4{margin-bottom:1.5rem!important}.mb-lg-5{margin-bottom:3rem!important}.mb-lg-auto{margin-bottom:auto!important}.ms-lg-0{margin-left:0!important}.ms-lg-1{margin-left:.25rem!important}.ms-lg-2{margin-left:.5rem!important}.ms-lg-3{margin-left:1rem!important}.ms-lg-4{margin-left:1.5rem!important}.ms-lg-5{margin-left:3rem!important}.ms-lg-auto{margin-left:auto!important}.p-lg-0{padding:0!important}.p-lg-1{padding:.25rem!important}.p-lg-2{padding:.5rem!important}.p-lg-3{padding:1rem!important}.p-lg-4{padding:1.5rem!important}.p-lg-5{padding:3rem!important}.px-lg-0{padding-right:0!important;padding-left:0!important}.px-lg-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-lg-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-lg-3{padding-right:1rem!important;padding-left:1rem!important}.px-lg-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-lg-5{padding-right:3rem!important;padding-left:3rem!important}.py-lg-0{padding-top:0!important;padding-bottom:0!important}.py-lg-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-lg-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-lg-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-lg-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-lg-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-lg-0{padding-top:0!important}.pt-lg-1{padding-top:.25rem!important}.pt-lg-2{padding-top:.5rem!important}.pt-lg-3{padding-top:1rem!important}.pt-lg-4{padding-top:1.5rem!important}.pt-lg-5{padding-top:3rem!important}.pe-lg-0{padding-right:0!important}.pe-lg-1{padding-right:.25rem!important}.pe-lg-2{padding-right:.5rem!important}.pe-lg-3{padding-right:1rem!important}.pe-lg-4{padding-right:1.5rem!important}.pe-lg-5{padding-right:3rem!important}.pb-lg-0{padding-bottom:0!important}.pb-lg-1{padding-bottom:.25rem!important}.pb-lg-2{padding-bottom:.5rem!important}.pb-lg-3{padding-bottom:1rem!important}.pb-lg-4{padding-bottom:1.5rem!important}.pb-lg-5{padding-bottom:3rem!important}.ps-lg-0{padding-left:0!important}.ps-lg-1{padding-left:.25rem!important}.ps-lg-2{padding-left:.5rem!important}.ps-lg-3{padding-left:1rem!important}.ps-lg-4{padding-left:1.5rem!important}.ps-lg-5{padding-left:3rem!important}.gap-lg-0{gap:0!important}.gap-lg-1{gap:.25rem!important}.gap-lg-2{gap:.5rem!important}.gap-lg-3{gap:1rem!important}.gap-lg-4{gap:1.5rem!important}.gap-lg-5{gap:3rem!important}.row-gap-lg-0{row-gap:0!important}.row-gap-lg-1{row-gap:.25rem!important}.row-gap-lg-2{row-gap:.5rem!important}.row-gap-lg-3{row-gap:1rem!important}.row-gap-lg-4{row-gap:1.5rem!important}.row-gap-lg-5{row-gap:3rem!important}.column-gap-lg-0{column-gap:0!important}.column-gap-lg-1{column-gap:.25rem!important}.column-gap-lg-2{column-gap:.5rem!important}.column-gap-lg-3{column-gap:1rem!important}.column-gap-lg-4{column-gap:1.5rem!important}.column-gap-lg-5{column-gap:3rem!important}.text-lg-start{text-align:left!important}.text-lg-end{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width: 1200px){.float-xl-start{float:left!important}.float-xl-end{float:right!important}.float-xl-none{float:none!important}.object-fit-xl-contain{object-fit:contain!important}.object-fit-xl-cover{object-fit:cover!important}.object-fit-xl-fill{object-fit:fill!important}.object-fit-xl-scale{object-fit:scale-down!important}.object-fit-xl-none{object-fit:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-grid{display:grid!important}.d-xl-inline-grid{display:inline-grid!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}.d-xl-none{display:none!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.justify-content-xl-evenly{justify-content:space-evenly!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}.order-xl-first{order:-1!important}.order-xl-0{order:0!important}.order-xl-1{order:1!important}.order-xl-2{order:2!important}.order-xl-3{order:3!important}.order-xl-4{order:4!important}.order-xl-5{order:5!important}.order-xl-last{order:6!important}.m-xl-0{margin:0!important}.m-xl-1{margin:.25rem!important}.m-xl-2{margin:.5rem!important}.m-xl-3{margin:1rem!important}.m-xl-4{margin:1.5rem!important}.m-xl-5{margin:3rem!important}.m-xl-auto{margin:auto!important}.mx-xl-0{margin-right:0!important;margin-left:0!important}.mx-xl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xl-auto{margin-right:auto!important;margin-left:auto!important}.my-xl-0{margin-top:0!important;margin-bottom:0!important}.my-xl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xl-0{margin-top:0!important}.mt-xl-1{margin-top:.25rem!important}.mt-xl-2{margin-top:.5rem!important}.mt-xl-3{margin-top:1rem!important}.mt-xl-4{margin-top:1.5rem!important}.mt-xl-5{margin-top:3rem!important}.mt-xl-auto{margin-top:auto!important}.me-xl-0{margin-right:0!important}.me-xl-1{margin-right:.25rem!important}.me-xl-2{margin-right:.5rem!important}.me-xl-3{margin-right:1rem!important}.me-xl-4{margin-right:1.5rem!important}.me-xl-5{margin-right:3rem!important}.me-xl-auto{margin-right:auto!important}.mb-xl-0{margin-bottom:0!important}.mb-xl-1{margin-bottom:.25rem!important}.mb-xl-2{margin-bottom:.5rem!important}.mb-xl-3{margin-bottom:1rem!important}.mb-xl-4{margin-bottom:1.5rem!important}.mb-xl-5{margin-bottom:3rem!important}.mb-xl-auto{margin-bottom:auto!important}.ms-xl-0{margin-left:0!important}.ms-xl-1{margin-left:.25rem!important}.ms-xl-2{margin-left:.5rem!important}.ms-xl-3{margin-left:1rem!important}.ms-xl-4{margin-left:1.5rem!important}.ms-xl-5{margin-left:3rem!important}.ms-xl-auto{margin-left:auto!important}.p-xl-0{padding:0!important}.p-xl-1{padding:.25rem!important}.p-xl-2{padding:.5rem!important}.p-xl-3{padding:1rem!important}.p-xl-4{padding:1.5rem!important}.p-xl-5{padding:3rem!important}.px-xl-0{padding-right:0!important;padding-left:0!important}.px-xl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xl-0{padding-top:0!important;padding-bottom:0!important}.py-xl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xl-0{padding-top:0!important}.pt-xl-1{padding-top:.25rem!important}.pt-xl-2{padding-top:.5rem!important}.pt-xl-3{padding-top:1rem!important}.pt-xl-4{padding-top:1.5rem!important}.pt-xl-5{padding-top:3rem!important}.pe-xl-0{padding-right:0!important}.pe-xl-1{padding-right:.25rem!important}.pe-xl-2{padding-right:.5rem!important}.pe-xl-3{padding-right:1rem!important}.pe-xl-4{padding-right:1.5rem!important}.pe-xl-5{padding-right:3rem!important}.pb-xl-0{padding-bottom:0!important}.pb-xl-1{padding-bottom:.25rem!important}.pb-xl-2{padding-bottom:.5rem!important}.pb-xl-3{padding-bottom:1rem!important}.pb-xl-4{padding-bottom:1.5rem!important}.pb-xl-5{padding-bottom:3rem!important}.ps-xl-0{padding-left:0!important}.ps-xl-1{padding-left:.25rem!important}.ps-xl-2{padding-left:.5rem!important}.ps-xl-3{padding-left:1rem!important}.ps-xl-4{padding-left:1.5rem!important}.ps-xl-5{padding-left:3rem!important}.gap-xl-0{gap:0!important}.gap-xl-1{gap:.25rem!important}.gap-xl-2{gap:.5rem!important}.gap-xl-3{gap:1rem!important}.gap-xl-4{gap:1.5rem!important}.gap-xl-5{gap:3rem!important}.row-gap-xl-0{row-gap:0!important}.row-gap-xl-1{row-gap:.25rem!important}.row-gap-xl-2{row-gap:.5rem!important}.row-gap-xl-3{row-gap:1rem!important}.row-gap-xl-4{row-gap:1.5rem!important}.row-gap-xl-5{row-gap:3rem!important}.column-gap-xl-0{column-gap:0!important}.column-gap-xl-1{column-gap:.25rem!important}.column-gap-xl-2{column-gap:.5rem!important}.column-gap-xl-3{column-gap:1rem!important}.column-gap-xl-4{column-gap:1.5rem!important}.column-gap-xl-5{column-gap:3rem!important}.text-xl-start{text-align:left!important}.text-xl-end{text-align:right!important}.text-xl-center{text-align:center!important}}@media (min-width: 1400px){.float-xxl-start{float:left!important}.float-xxl-end{float:right!important}.float-xxl-none{float:none!important}.object-fit-xxl-contain{object-fit:contain!important}.object-fit-xxl-cover{object-fit:cover!important}.object-fit-xxl-fill{object-fit:fill!important}.object-fit-xxl-scale{object-fit:scale-down!important}.object-fit-xxl-none{object-fit:none!important}.d-xxl-inline{display:inline!important}.d-xxl-inline-block{display:inline-block!important}.d-xxl-block{display:block!important}.d-xxl-grid{display:grid!important}.d-xxl-inline-grid{display:inline-grid!important}.d-xxl-table{display:table!important}.d-xxl-table-row{display:table-row!important}.d-xxl-table-cell{display:table-cell!important}.d-xxl-flex{display:flex!important}.d-xxl-inline-flex{display:inline-flex!important}.d-xxl-none{display:none!important}.flex-xxl-fill{flex:1 1 auto!important}.flex-xxl-row{flex-direction:row!important}.flex-xxl-column{flex-direction:column!important}.flex-xxl-row-reverse{flex-direction:row-reverse!important}.flex-xxl-column-reverse{flex-direction:column-reverse!important}.flex-xxl-grow-0{flex-grow:0!important}.flex-xxl-grow-1{flex-grow:1!important}.flex-xxl-shrink-0{flex-shrink:0!important}.flex-xxl-shrink-1{flex-shrink:1!important}.flex-xxl-wrap{flex-wrap:wrap!important}.flex-xxl-nowrap{flex-wrap:nowrap!important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-xxl-start{justify-content:flex-start!important}.justify-content-xxl-end{justify-content:flex-end!important}.justify-content-xxl-center{justify-content:center!important}.justify-content-xxl-between{justify-content:space-between!important}.justify-content-xxl-around{justify-content:space-around!important}.justify-content-xxl-evenly{justify-content:space-evenly!important}.align-items-xxl-start{align-items:flex-start!important}.align-items-xxl-end{align-items:flex-end!important}.align-items-xxl-center{align-items:center!important}.align-items-xxl-baseline{align-items:baseline!important}.align-items-xxl-stretch{align-items:stretch!important}.align-content-xxl-start{align-content:flex-start!important}.align-content-xxl-end{align-content:flex-end!important}.align-content-xxl-center{align-content:center!important}.align-content-xxl-between{align-content:space-between!important}.align-content-xxl-around{align-content:space-around!important}.align-content-xxl-stretch{align-content:stretch!important}.align-self-xxl-auto{align-self:auto!important}.align-self-xxl-start{align-self:flex-start!important}.align-self-xxl-end{align-self:flex-end!important}.align-self-xxl-center{align-self:center!important}.align-self-xxl-baseline{align-self:baseline!important}.align-self-xxl-stretch{align-self:stretch!important}.order-xxl-first{order:-1!important}.order-xxl-0{order:0!important}.order-xxl-1{order:1!important}.order-xxl-2{order:2!important}.order-xxl-3{order:3!important}.order-xxl-4{order:4!important}.order-xxl-5{order:5!important}.order-xxl-last{order:6!important}.m-xxl-0{margin:0!important}.m-xxl-1{margin:.25rem!important}.m-xxl-2{margin:.5rem!important}.m-xxl-3{margin:1rem!important}.m-xxl-4{margin:1.5rem!important}.m-xxl-5{margin:3rem!important}.m-xxl-auto{margin:auto!important}.mx-xxl-0{margin-right:0!important;margin-left:0!important}.mx-xxl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xxl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xxl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xxl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xxl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xxl-auto{margin-right:auto!important;margin-left:auto!important}.my-xxl-0{margin-top:0!important;margin-bottom:0!important}.my-xxl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xxl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xxl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xxl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xxl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xxl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xxl-0{margin-top:0!important}.mt-xxl-1{margin-top:.25rem!important}.mt-xxl-2{margin-top:.5rem!important}.mt-xxl-3{margin-top:1rem!important}.mt-xxl-4{margin-top:1.5rem!important}.mt-xxl-5{margin-top:3rem!important}.mt-xxl-auto{margin-top:auto!important}.me-xxl-0{margin-right:0!important}.me-xxl-1{margin-right:.25rem!important}.me-xxl-2{margin-right:.5rem!important}.me-xxl-3{margin-right:1rem!important}.me-xxl-4{margin-right:1.5rem!important}.me-xxl-5{margin-right:3rem!important}.me-xxl-auto{margin-right:auto!important}.mb-xxl-0{margin-bottom:0!important}.mb-xxl-1{margin-bottom:.25rem!important}.mb-xxl-2{margin-bottom:.5rem!important}.mb-xxl-3{margin-bottom:1rem!important}.mb-xxl-4{margin-bottom:1.5rem!important}.mb-xxl-5{margin-bottom:3rem!important}.mb-xxl-auto{margin-bottom:auto!important}.ms-xxl-0{margin-left:0!important}.ms-xxl-1{margin-left:.25rem!important}.ms-xxl-2{margin-left:.5rem!important}.ms-xxl-3{margin-left:1rem!important}.ms-xxl-4{margin-left:1.5rem!important}.ms-xxl-5{margin-left:3rem!important}.ms-xxl-auto{margin-left:auto!important}.p-xxl-0{padding:0!important}.p-xxl-1{padding:.25rem!important}.p-xxl-2{padding:.5rem!important}.p-xxl-3{padding:1rem!important}.p-xxl-4{padding:1.5rem!important}.p-xxl-5{padding:3rem!important}.px-xxl-0{padding-right:0!important;padding-left:0!important}.px-xxl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xxl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xxl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xxl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xxl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xxl-0{padding-top:0!important;padding-bottom:0!important}.py-xxl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xxl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xxl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xxl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xxl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xxl-0{padding-top:0!important}.pt-xxl-1{padding-top:.25rem!important}.pt-xxl-2{padding-top:.5rem!important}.pt-xxl-3{padding-top:1rem!important}.pt-xxl-4{padding-top:1.5rem!important}.pt-xxl-5{padding-top:3rem!important}.pe-xxl-0{padding-right:0!important}.pe-xxl-1{padding-right:.25rem!important}.pe-xxl-2{padding-right:.5rem!important}.pe-xxl-3{padding-right:1rem!important}.pe-xxl-4{padding-right:1.5rem!important}.pe-xxl-5{padding-right:3rem!important}.pb-xxl-0{padding-bottom:0!important}.pb-xxl-1{padding-bottom:.25rem!important}.pb-xxl-2{padding-bottom:.5rem!important}.pb-xxl-3{padding-bottom:1rem!important}.pb-xxl-4{padding-bottom:1.5rem!important}.pb-xxl-5{padding-bottom:3rem!important}.ps-xxl-0{padding-left:0!important}.ps-xxl-1{padding-left:.25rem!important}.ps-xxl-2{padding-left:.5rem!important}.ps-xxl-3{padding-left:1rem!important}.ps-xxl-4{padding-left:1.5rem!important}.ps-xxl-5{padding-left:3rem!important}.gap-xxl-0{gap:0!important}.gap-xxl-1{gap:.25rem!important}.gap-xxl-2{gap:.5rem!important}.gap-xxl-3{gap:1rem!important}.gap-xxl-4{gap:1.5rem!important}.gap-xxl-5{gap:3rem!important}.row-gap-xxl-0{row-gap:0!important}.row-gap-xxl-1{row-gap:.25rem!important}.row-gap-xxl-2{row-gap:.5rem!important}.row-gap-xxl-3{row-gap:1rem!important}.row-gap-xxl-4{row-gap:1.5rem!important}.row-gap-xxl-5{row-gap:3rem!important}.column-gap-xxl-0{column-gap:0!important}.column-gap-xxl-1{column-gap:.25rem!important}.column-gap-xxl-2{column-gap:.5rem!important}.column-gap-xxl-3{column-gap:1rem!important}.column-gap-xxl-4{column-gap:1.5rem!important}.column-gap-xxl-5{column-gap:3rem!important}.text-xxl-start{text-align:left!important}.text-xxl-end{text-align:right!important}.text-xxl-center{text-align:center!important}}@media (min-width: 1200px){.fs-1{font-size:2.5rem!important}.fs-2{font-size:2rem!important}.fs-3{font-size:1.75rem!important}.fs-4{font-size:1.5rem!important}}@media print{.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-grid{display:grid!important}.d-print-inline-grid{display:inline-grid!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}.d-print-none{display:none!important}}.myspinner{position:fixed;top:0;left:0;opacity:70%;width:100%;height:100%;z-index:9999;display:flex;justify-content:end;align-items:end} diff --git a/clinguin/client/presentation/frontends/tkinter_frontend/tkinter_elements/__init__.py b/clinguin/client/presentation/frontends/tkinter_frontend/tkinter_elements/__init__.py index 3f03df3a..e7e8237f 100644 --- a/clinguin/client/presentation/frontends/tkinter_frontend/tkinter_elements/__init__.py +++ b/clinguin/client/presentation/frontends/tkinter_frontend/tkinter_elements/__init__.py @@ -1,6 +1,7 @@ """ This package contains all tkinter_elements that are provided in clinguin. """ + from .button import Button from .canvas import Canvas from .container import Container diff --git a/clinguin/client/presentation/frontends/tkinter_frontend/tkinter_elements/button.py b/clinguin/client/presentation/frontends/tkinter_frontend/tkinter_elements/button.py index f0f602df..ec1fd271 100644 --- a/clinguin/client/presentation/frontends/tkinter_frontend/tkinter_elements/button.py +++ b/clinguin/client/presentation/frontends/tkinter_frontend/tkinter_elements/button.py @@ -81,7 +81,10 @@ def _get_callbacks(cls, callbacks=None): if callbacks is None: callbacks = {} - callbacks[CallbackNames.click] = {"policy": None, "policy_type": SymbolType} + callbacks[CallbackNames.click] = { + "operation": None, + "operation_type": SymbolType, + } return callbacks @@ -142,11 +145,11 @@ def leave(event): def _define_click_event(self, elements): self._logger.debug(str(elements)) key = CallbackNames.click - if self._callbacks[key] and self._callbacks[key]["policy"]: + if self._callbacks[key] and self._callbacks[key]["operation"]: def click_event(event): self._logger.debug(str(event)) - self._base_engine.post_with_policy(self._callbacks[key]["policy"]) + self._base_engine.post_with_operation(self._callbacks[key]["operation"]) self._button.bind("", click_event) diff --git a/clinguin/client/presentation/frontends/tkinter_frontend/tkinter_elements/canvas.py b/clinguin/client/presentation/frontends/tkinter_frontend/tkinter_elements/canvas.py index 71c98926..6f387ff4 100644 --- a/clinguin/client/presentation/frontends/tkinter_frontend/tkinter_elements/canvas.py +++ b/clinguin/client/presentation/frontends/tkinter_frontend/tkinter_elements/canvas.py @@ -1,6 +1,7 @@ """ Contains the canvas class. """ + import base64 import io import tkinter as tk diff --git a/clinguin/client/presentation/frontends/tkinter_frontend/tkinter_elements/container.py b/clinguin/client/presentation/frontends/tkinter_frontend/tkinter_elements/container.py index ac94186d..cc70e3e3 100644 --- a/clinguin/client/presentation/frontends/tkinter_frontend/tkinter_elements/container.py +++ b/clinguin/client/presentation/frontends/tkinter_frontend/tkinter_elements/container.py @@ -59,7 +59,7 @@ def _get_callbacks(cls, callbacks=None): if callbacks is None: callbacks = {} - callbacks["click"] = {"policy": None, "policy_type": SymbolType} + callbacks["click"] = {"operation": None, "operation_type": SymbolType} return callbacks @@ -110,10 +110,10 @@ def leave(event): def _define_click_event(self, elements, key=CallbackNames.click): self._logger.debug(str(elements)) - if self._callbacks[key] and self._callbacks[key]["policy"]: + if self._callbacks[key] and self._callbacks[key]["operation"]: def dropdown_menu_item_click(event): self._logger.debug(str(event)) - self._base_engine.assume(self._callbacks[key]["policy"]) + self._base_engine.assume(self._callbacks[key]["operation"]) self._element.bind("", dropdown_menu_item_click) diff --git a/clinguin/client/presentation/frontends/tkinter_frontend/tkinter_elements/dropdownmenu.py b/clinguin/client/presentation/frontends/tkinter_frontend/tkinter_elements/dropdownmenu.py index ee0f0cc2..11fd9452 100644 --- a/clinguin/client/presentation/frontends/tkinter_frontend/tkinter_elements/dropdownmenu.py +++ b/clinguin/client/presentation/frontends/tkinter_frontend/tkinter_elements/dropdownmenu.py @@ -81,17 +81,20 @@ def _get_callbacks(cls, callbacks=None): if callbacks is None: callbacks = {} - callbacks[CallbackNames.clear] = {"policy": None, "policy_type": SymbolType} + callbacks[CallbackNames.clear] = { + "operation": None, + "operation_type": SymbolType, + } return callbacks - def _clear_select(self, cid, parent_id, click_policy, elements): + def _clear_select(self, cid, parent_id, click_operation, elements): parent = elements[str(parent_id)] if hasattr(parent, "get_variable"): variable = getattr(parent, "get_variable")() variable.set(cid) - if click_policy is not None: - self._base_engine.post_with_policy(click_policy) + if click_operation is not None: + self._base_engine.post_with_operation(click_operation) else: self._logger.warning( "Could not set variable for dropdownmenu. Item id: %s, dropdown-menu-id: %s", @@ -99,21 +102,21 @@ def _clear_select(self, cid, parent_id, click_policy, elements): str(parent_id), ) - def _dropdown_clear(self, click_policy): + def _dropdown_clear(self, click_operation): variable = self.get_variable() variable.set("") - self._base_engine.post_with_policy(click_policy) + self._base_engine.post_with_operation(click_operation) def _define_clear_event( self, elements, key=CallbackNames.clear ): # pylint: disable=W0613 - if self._callbacks[key]["policy"] is None: + if self._callbacks[key]["operation"] is None: return def change(*args): # pylint: disable=W0613 if self._variable.get() == "": self._logger.info("Will remove previous selections") - self._dropdown_clear(self._callbacks[key]["policy"]) + self._dropdown_clear(self._callbacks[key]["operation"]) self._variable.trace("w", change) diff --git a/clinguin/client/presentation/frontends/tkinter_frontend/tkinter_elements/dropdownmenu_item.py b/clinguin/client/presentation/frontends/tkinter_frontend/tkinter_elements/dropdownmenu_item.py index 9034182f..d71ed137 100644 --- a/clinguin/client/presentation/frontends/tkinter_frontend/tkinter_elements/dropdownmenu_item.py +++ b/clinguin/client/presentation/frontends/tkinter_frontend/tkinter_elements/dropdownmenu_item.py @@ -41,7 +41,10 @@ def _get_callbacks(cls, callbacks=None): if callbacks is None: callbacks = {} - callbacks[CallbackNames.click] = {"policy": None, "policy_type": SymbolType} + callbacks[CallbackNames.click] = { + "operation": None, + "operation_type": SymbolType, + } return callbacks @@ -52,19 +55,19 @@ def _define_click_event(self, elements, key=CallbackNames.click): command=CallBackDefinition( self._id, self._parent, - self._callbacks[key]["policy"], + self._callbacks[key]["operation"], elements, self._dropdownmenuitem_click, ), ) - def _dropdownmenuitem_click(self, cid, parent_id, click_policy, elements): + def _dropdownmenuitem_click(self, cid, parent_id, click_operation, elements): parent = elements[str(parent_id)] if hasattr(parent, "get_variable"): variable = getattr(parent, "get_variable")() variable.set(cid) - if click_policy is not None: - self._base_engine.post_with_policy(click_policy) + if click_operation is not None: + self._base_engine.post_with_operation(click_operation) else: self._logger.warning( "Could not set variable for dropdownmenu. Item id: %s, dropdown-menu-id: %s", diff --git a/clinguin/client/presentation/frontends/tkinter_frontend/tkinter_elements/label.py b/clinguin/client/presentation/frontends/tkinter_frontend/tkinter_elements/label.py index 5aea0abe..24db6fd0 100644 --- a/clinguin/client/presentation/frontends/tkinter_frontend/tkinter_elements/label.py +++ b/clinguin/client/presentation/frontends/tkinter_frontend/tkinter_elements/label.py @@ -75,7 +75,10 @@ def _get_callbacks(cls, callbacks=None): if callbacks is None: callbacks = {} - callbacks[CallbackNames.click] = {"policy": None, "policy_type": SymbolType} + callbacks[CallbackNames.click] = { + "operation": None, + "operation_type": SymbolType, + } return callbacks @@ -140,10 +143,10 @@ def leave(event): # pylint: disable=W0613 def _define_click_event(self, elements): # pylint: disable=W0613 key = CallbackNames.click - if self._callbacks[key] and self._callbacks[key]["policy"]: + if self._callbacks[key] and self._callbacks[key]["operation"]: def click_event(event): # pylint: disable=W0613 - self._base_engine.post_with_policy(self._callbacks[key]["policy"]) + self._base_engine.post_with_operation(self._callbacks[key]["operation"]) self._label.bind("", click_event) diff --git a/clinguin/client/presentation/frontends/tkinter_frontend/tkinter_elements/menu_bar.py b/clinguin/client/presentation/frontends/tkinter_frontend/tkinter_elements/menu_bar.py index 137df60b..b24fae6d 100644 --- a/clinguin/client/presentation/frontends/tkinter_frontend/tkinter_elements/menu_bar.py +++ b/clinguin/client/presentation/frontends/tkinter_frontend/tkinter_elements/menu_bar.py @@ -1,6 +1,7 @@ """ This module features the MenuBar class. """ + import tkinter as tk from .root_cmp import RootCmp diff --git a/clinguin/client/presentation/frontends/tkinter_frontend/tkinter_elements/menu_bar_section.py b/clinguin/client/presentation/frontends/tkinter_frontend/tkinter_elements/menu_bar_section.py index 8d82f550..7893406e 100644 --- a/clinguin/client/presentation/frontends/tkinter_frontend/tkinter_elements/menu_bar_section.py +++ b/clinguin/client/presentation/frontends/tkinter_frontend/tkinter_elements/menu_bar_section.py @@ -1,6 +1,7 @@ """ Module contains the menu bar section class. """ + import tkinter as tk from clinguin.utils.attribute_types import StringType diff --git a/clinguin/client/presentation/frontends/tkinter_frontend/tkinter_elements/menu_bar_section_item.py b/clinguin/client/presentation/frontends/tkinter_frontend/tkinter_elements/menu_bar_section_item.py index b7fd016d..bb178758 100644 --- a/clinguin/client/presentation/frontends/tkinter_frontend/tkinter_elements/menu_bar_section_item.py +++ b/clinguin/client/presentation/frontends/tkinter_frontend/tkinter_elements/menu_bar_section_item.py @@ -66,7 +66,10 @@ def _get_callbacks(cls, callbacks=None): if callbacks is None: callbacks = {} - callbacks[CallbackNames.click] = {"policy": None, "policy_type": SymbolType} + callbacks[CallbackNames.click] = { + "operation": None, + "operation_type": SymbolType, + } return callbacks @@ -74,11 +77,11 @@ def _define_click_event(self, elements): key = CallbackNames.click text = self._attributes[AttributeNames.label]["value"] accelerator = self._attributes[AttributeNames.accelerator]["value"] - if self._callbacks[key] and self._callbacks[key]["policy"]: + if self._callbacks[key] and self._callbacks[key]["operation"]: cb = CallBackDefinition( self._id, self._parent, - self._callbacks[key]["policy"], + self._callbacks[key]["operation"], elements, self._menubar_item_click, ) @@ -91,13 +94,13 @@ def _define_click_event(self, elements): else: self._element.add_command(label=text) - def _menubar_item_click(self, cid, parent, click_policy, elements): + def _menubar_item_click(self, cid, parent, click_operation, elements): self._logger.debug(str(cid)) self._logger.debug(str(parent)) self._logger.debug(str(elements)) - if click_policy is not None: - self._base_engine.post_with_policy(click_policy) + if click_operation is not None: + self._base_engine.post_with_operation(click_operation) def _add_component_to_elements(self, elements): elements[str(self._id)] = self diff --git a/clinguin/client/presentation/frontends/tkinter_frontend/tkinter_elements/message.py b/clinguin/client/presentation/frontends/tkinter_frontend/tkinter_elements/message.py index bdb24223..05d5e28e 100644 --- a/clinguin/client/presentation/frontends/tkinter_frontend/tkinter_elements/message.py +++ b/clinguin/client/presentation/frontends/tkinter_frontend/tkinter_elements/message.py @@ -1,6 +1,7 @@ """ Contains the Message class. """ + import tkinter as tk from tkinter import messagebox diff --git a/clinguin/client/presentation/frontends/tkinter_frontend/tkinter_elements/root_cmp.py b/clinguin/client/presentation/frontends/tkinter_frontend/tkinter_elements/root_cmp.py index 2c04d0c9..df4d6d24 100644 --- a/clinguin/client/presentation/frontends/tkinter_frontend/tkinter_elements/root_cmp.py +++ b/clinguin/client/presentation/frontends/tkinter_frontend/tkinter_elements/root_cmp.py @@ -127,24 +127,26 @@ def _fill_attributes(self): def _fill_callbacks(self): for callback in self._json_callbacks: - if callback["interaction_type"] not in ["call", "callback"]: + if callback["action"] not in ["call", "callback"]: self._logger.warning( "Only interaction type call and callback are available in the Tkinter frontend.\ Interactivity: '%s' was ignored", - callback["interaction_type"], + callback["action"], ) key = callback["event"] - value = callback["policy"] - if key in self._callbacks and "policy_type" in self._callbacks[key]: - value_type = self._callbacks[key]["policy_type"] + value = callback["operation"] + if key in self._callbacks and "operation_type" in self._callbacks[key]: + value_type = self._callbacks[key]["operation_type"] else: value_type = SymbolType - if key in self._callbacks and "policy" in self._callbacks[key]: - self._callbacks[key]["policy"] = value_type.parse(value, self._logger) + if key in self._callbacks and "operation" in self._callbacks[key]: + self._callbacks[key]["operation"] = value_type.parse( + value, self._logger + ) else: self._logger.warning( - "Undefined Command: %s, or policy item missing in command.", key + "Undefined Command: %s, or operation item missing in command.", key ) def _get_methods(self, start_string): diff --git a/clinguin/client/presentation/frontends/tkinter_frontend/tkinter_frontend.py b/clinguin/client/presentation/frontends/tkinter_frontend/tkinter_frontend.py index d3f45900..faf0a876 100644 --- a/clinguin/client/presentation/frontends/tkinter_frontend/tkinter_frontend.py +++ b/clinguin/client/presentation/frontends/tkinter_frontend/tkinter_frontend.py @@ -1,6 +1,7 @@ """ Contains the tkinter-gui class. """ + import networkx as nx from clinguin.client import AbstractFrontend @@ -60,7 +61,7 @@ def append_dict(description, d, type_name): description = ( description + ": " - + colored_text(AttributeNames.descriptions[key], "GRAY") + + colored_text(AttributeNames.descriptions[key], "MAGENTA") ) description = description + "\n" elif key in CallbackNames.descriptions: @@ -68,14 +69,14 @@ def append_dict(description, d, type_name): description = ( description + ": " - + colored_text(CallbackNames.descriptions[key], "GRAY") + + colored_text(CallbackNames.descriptions[key], "MAGENTA") ) description = description + "\n" if type_name in d[key]: description = description + " Possible-Values: " description = description + colored_text( - d[key][type_name].description() + "\n", "GRAY" + d[key][type_name].description() + "\n", "MAGENTA" ) return description @@ -100,7 +101,7 @@ def append_dict(description, d, type_name): callbacks = c.get_callbacks() if len(callbacks.keys()) > 0: description = description + colored_text(" events\n", "YELLOW") - description = append_dict(description, callbacks, "policy_type") + description = append_dict(description, callbacks, "operation_type") description = description + "--------------------------------\n" return description @@ -246,10 +247,10 @@ def postprocessing_size_setter(self, cid, cur_element, attributes): if pack: if AttributeNames.child_layout in attributes: - policy = cur_element.get_attributes_list()[AttributeNames.child_layout][ - "value" - ] - if policy == ChildLayoutType.FLEX: + operation = cur_element.get_attributes_list()[ + AttributeNames.child_layout + ]["value"] + if operation == ChildLayoutType.FLEX: cur_element.get_element().pack_propagate(0) else: cur_element.get_element().pack_propagate(0) diff --git a/clinguin/client/presentation/frontends/tkinter_frontend/tkinter_utils/__init__.py b/clinguin/client/presentation/frontends/tkinter_frontend/tkinter_utils/__init__.py index 6621e221..0871bc68 100644 --- a/clinguin/client/presentation/frontends/tkinter_frontend/tkinter_utils/__init__.py +++ b/clinguin/client/presentation/frontends/tkinter_frontend/tkinter_utils/__init__.py @@ -1,6 +1,7 @@ """ This module contains various utils for tkinter-elements, which reduce code size, etc. """ + from .attribute_names import AttributeNames from .call_back_definition import CallBackDefinition from .callback_names import CallbackNames diff --git a/clinguin/client/presentation/frontends/tkinter_frontend/tkinter_utils/call_back_definition.py b/clinguin/client/presentation/frontends/tkinter_frontend/tkinter_utils/call_back_definition.py index b264ba8e..31f47efa 100644 --- a/clinguin/client/presentation/frontends/tkinter_frontend/tkinter_utils/call_back_definition.py +++ b/clinguin/client/presentation/frontends/tkinter_frontend/tkinter_utils/call_back_definition.py @@ -8,12 +8,12 @@ class CallBackDefinition: Some elements use this class to define their callbacks (others just do it locally, which is the preferred method). """ - def __init__(self, cid, parent, click_policy, elements, callback): + def __init__(self, cid, parent, click_operation, elements, callback): self._id = cid self._parent = parent - self._click_policy = click_policy + self._click_operation = click_operation self._elements = elements self._callback = callback def __call__(self, *args): - self._callback(self._id, self._parent, self._click_policy, self._elements) + self._callback(self._id, self._parent, self._click_operation, self._elements) diff --git a/clinguin/client_helper.py b/clinguin/client_helper.py index c46f0be2..ceb9556b 100644 --- a/clinguin/client_helper.py +++ b/clinguin/client_helper.py @@ -1,6 +1,7 @@ """ Helper for the client-startup-process """ + from clinguin.client import ClientBase from clinguin.utils import Logger diff --git a/clinguin/parse_input.py b/clinguin/parse_input.py index dc1810c0..aa9b0d1c 100644 --- a/clinguin/parse_input.py +++ b/clinguin/parse_input.py @@ -1,6 +1,7 @@ """ Responsible for parsing the command line attributes """ + import argparse import importlib import inspect @@ -306,7 +307,7 @@ def _create_client_server_subparser(self, subparsers): return parser_server_client def _add_default_arguments_to_backend_parser(self, parser): - sub_classes = self._get_sub_classes(ClingoBackend) + sub_classes = [ClingoBackend] + self._get_sub_classes(ClingoBackend) sub_class_as_options = "|".join([s.__name__ for s in sub_classes]) sub_classes_str = "=> Available options: {" + sub_class_as_options + "}" parser.add_argument( @@ -411,7 +412,7 @@ def _get_sub_classes(self, cur_class): def _select_subclass_and_add_custom_arguments( self, parser, parent, class_name, default_class ): - sub_classes = self._get_sub_classes(parent) + sub_classes = [parent] + self._get_sub_classes(parent) selected_class = None @@ -435,4 +436,8 @@ def _select_subclass_and_add_custom_arguments( sys.exit() selected_class = sub_class + + if not selected_class: + raise RuntimeError(f"Invalid class name provided: {class_name}") + return selected_class diff --git a/clinguin/server/__init__.py b/clinguin/server/__init__.py index d32fdc02..14893b24 100644 --- a/clinguin/server/__init__.py +++ b/clinguin/server/__init__.py @@ -1,6 +1,7 @@ """ Server module, contains core-program classes. """ + from .application.standard_json_encoder import StandardJsonEncoder from .data.ui_state import UIState from .presentation.endpoints import Endpoints diff --git a/clinguin/server/application/attribute.py b/clinguin/server/application/attribute.py index 87a1e5b4..93d07cb3 100644 --- a/clinguin/server/application/attribute.py +++ b/clinguin/server/application/attribute.py @@ -1,6 +1,7 @@ """ Module contains the AttributeDto class. """ + import json diff --git a/clinguin/server/application/backends/__init__.py b/clinguin/server/application/backends/__init__.py index d513615c..c979e114 100644 --- a/clinguin/server/application/backends/__init__.py +++ b/clinguin/server/application/backends/__init__.py @@ -1,6 +1,7 @@ """ -Module that contains the default backends ClingoMultishotBackend, ClingraphBackend and TemporalBackend. +Module that contains the backends """ + # pylint: disable=cyclic-import from clinguin.server.application.backends.clingo_backend import ClingoBackend from clinguin.server.application.backends.clingo_multishot_backend import ( diff --git a/clinguin/server/application/backends/clingo_backend.py b/clinguin/server/application/backends/clingo_backend.py index b3fc54ae..6b0ba8b9 100644 --- a/clinguin/server/application/backends/clingo_backend.py +++ b/clinguin/server/application/backends/clingo_backend.py @@ -2,9 +2,13 @@ """ Module that contains the ClingoMultishotBackend. """ +import functools import logging +import textwrap +import time from functools import cached_property from pathlib import Path +from typing import Any from clingo import Control, parse_term from clingo.script import enable_python @@ -12,50 +16,39 @@ from clinguin.server import StandardJsonEncoder, UIState from clinguin.server.data.domain_state import solve, tag +from ....utils.logger import domctl_log +from ....utils.transformer import UsesSignatureTransformer + enable_python() # pylint: disable=attribute-defined-outside-init class ClingoBackend: """ - The ClingoBackend contains the basic clingo functionality for a backend using clingo. - - When started it sets up all the arguments provided via the command line, - and creates a control object (domain-control) with the provided domain files. - It grounds the program and creates an empty UI state. + This backend contains the basic clingo functionality for a backend using clingo. """ def __init__(self, args): """ - Creates the Backend with the given arguments. It will setup the context, files and constants. - It will define all domain-state constructors and their cache. - Finally, it calls all the setup methods: (_init_setup, _outdate,_init_ctl) and grounds the control + Creates the Backend with the given arguments. + It will setup all attributes by calling :func:`~_init_ds_constructors()` and :func:`~_restart()`. + + Generally this method should NOT be overwritten by custom backends. + Instead, custom backends should overwrite specialized methods. Arguments: args (ArgumentParser): The arguments from the argument parser that are given for the registered options. + """ + self._args = args + self._logger = logging.getLogger(args.log_args["name"]) - self.context = [] - self.args = args - self._domain_files = [] if args.domain_files is None else args.domain_files - self._ui_files = args.ui_files - self._constants = [f"-c {v}" for v in args.const] if args.const else [] + # Setup static attributes that might be changed by custom backends and must be preserved after restarts + self._init_ds_constructors() - self._domain_state_constructors = [] - self._backup_ds_cache = {} - - self._init_setup() - self._outdate() - self._init_ctl() - self._ground() - - self._add_domain_state_constructor("_ds_model") - self._add_domain_state_constructor("_ds_brave") - self._add_domain_state_constructor("_ds_cautious") - self._add_domain_state_constructor("_ds_context") - self._add_domain_state_constructor("_ds_unsat") - self._add_domain_state_constructor("_ds_browsing") + # Restart the backend to initialize all attributes + self._restart() # --------------------------------------------- # Class methods @@ -64,10 +57,27 @@ def __init__(self, args): @classmethod def register_options(cls, parser): """ - Registers options in the command line for the domain files and ui files. + Registers options in the command line. + + It can be extended by custom backends to add custom command-line options. Arguments: parser (ArgumentParser): A group of the argparse argument parser + + Example: + + .. code-block:: python + + @classmethod + def register_options(cls, parser): + ClingoMultishotBackend.register_options(parser) + + parser.add_argument( + "--my-custom-option", + help="Help message", + nargs="*", + ) + """ parser.add_argument( "--domain-files", @@ -84,58 +94,268 @@ def register_options(cls, parser): parser.add_argument( "-c", "--const", - nargs="+", + action="append", help="Constant passed to clingo, = replaces term occurrences of with ", metavar="", ) + parser.add_argument( + "--clingo-ctl-arg", + action="append", + help="""Argument that will be passed to clingo control object for the domain. + Should have format =, for example parallel-mode=2 will become --parallel-mode=2.""", + metavar="", + ) + parser.add_argument( + "--default-opt-mode", + type=str, + help="Default optimization mode for computing a model", + default="ignore", + metavar="", + ) + + parser.add_argument( + "--opt-timeout", + help=textwrap.dedent( + """\ + Optional timeout for searching for optimal models. + The timeout is not exactly enforced (might take longer) + but only checked after each solution is found. + """ + ), + type=int, + metavar="", + ) # --------------------------------------------- - # Context + # Properties # --------------------------------------------- - def _set_context(self, context): + @property + def _is_browsing(self): + """ + Property to tell if clinguin is in browsing mode. """ - Sets the context + return self._iterator is not None - Arguments: - context: The context dictionary + @property + def _constants_argument_list(self) -> list: + """ + Gets the constants as a list of strings in the format "-c =" """ - self.context = context + return [f"-c {k}={v}" for k, v in self._constants.items()] + + @property + def _ctl_arguments_list(self) -> list: + """ + Gets the list of arguments used for creating a control object + """ + return ( + ["0"] + + self._constants_argument_list + + [f"--{o}" for o in self._clingo_ctl_arg] + ) + + @property + def _assumption_list(self) -> list: + """ + A list of assumptions in the format [(a, True)] + """ + return [(a, True) for a in self._assumptions] # --------------------------------------------- - # Setups + # Initialization # --------------------------------------------- - def _init_setup(self): + def _restart(self): """ - Initializes the arguments when the server starts or after a restart. - These arguments include, the handler and iterator for browsing answer sets, - as well as the domain control and the atoms. + Restarts the backend by setting all attributes, + initializing controls and grounding. + It is automatically called when the server starts. + + See Also: + :func:`~_init_command_line`, :func:`~_init_interactive`, + :func:`~_outdate`, :func:`~_init_ctl`, :func:`~_ground` """ - # For browising - self._handler = None - self._iterator = None + self._init_command_line() + self._init_interactive() + self._outdate() + self._init_ctl() + self._ground() - # To make static linters happy - self._atoms = set() + def _init_ds_constructors(self): + """ + This method initializes the domain state constructors list and the backup cache dictionary. + It also adds the default domain state constructors to the list. + This method is called only when the server starts. + + Attributes: + _domain_state_constructors (list): A list to store the domain state constructors. + _backup_ds_cache (dict): A dictionary to store the backup domain state cache. + + + It can be extended by custom backends to add/edit domain state constructors. + Adding a domain state constructor should be done by calling :func:`~_add_domain_state_constructor()`. + + Example: + + .. code-block:: python + + @property + def _ds_my_custom_constructor(self): + # Creates custom program + return "my_custom_program." + + def _init_ds_constructors(self): + super()._init_ds_constructors() + self._add_domain_state_constructor("_ds_my_custom_constructor") + + """ + self._domain_state_constructors = [] + self._backup_ds_cache = {} + self._add_domain_state_constructor("_ds_context") + self._add_domain_state_constructor("_ds_unsat") + self._add_domain_state_constructor("_ds_browsing") + self._add_domain_state_constructor("_ds_cautious_optimal") + self._add_domain_state_constructor("_ds_brave_optimal") + self._add_domain_state_constructor("_ds_cautious") + self._add_domain_state_constructor("_ds_brave") + self._add_domain_state_constructor("_ds_model") # Keep after brave and cautious + self._add_domain_state_constructor("_ds_opt") + + def _init_command_line(self): + """ + Initializes the attributes based on the command-line arguments provided. + This method is called when the server starts or after a restart. + + Attributes: + + _domain_files (list): The list of domain files provided via command line. + _ui_files (list): The list of UI files provided via command line. + _constants (dict): The dictionary of constants provided via command line. + _clingo_ctl_arg (list): The list of clingo control arguments provided via command line. + + If any command line arguments are added in :meth:`~ClingoBackend.register_options`, + they should be initialized here. + + Example: + + .. code-block:: python + + def _init_command_line(self): + super()._init_command_line() + self._my_custom_attr = self._args.my_custom_option + + + """ + + self._domain_files = self._args.domain_files or [] + + if not self._args.ui_files: + raise RuntimeError("UI files need to be provided under --ui-files") + self._ui_files = self._args.ui_files + + self._constants = {} + if self._args.const is not None: + for c in self._args.const: + if "=" not in c: + raise ValueError("Invalid constant format. Expected name=value.") + name, value = c.split("=") + self._constants[name] = value + + self._clingo_ctl_arg = self._args.clingo_ctl_arg or [] + + self._default_opt_mode = self._args.default_opt_mode + + self._opt_timeout = self._args.opt_timeout + + def _init_interactive(self): + """ + Initializes the attributes that will change during the interaction. + This method is called when the server starts or after a restart. + + Attributes: + _context (list): A list to store the context set by the general handler of requests. + _handler (clingo.SolveHandle): The handler set while browsing in the `next_solution` operation. + _iterator (iter): The iterator set while browsing in the `next_solution` operation. + _ctl (clingo.Control): The domain control set in `_init_ctl`. + _ui_state (:class:`UIState`): A UIState object used to handle the UI construction, + set in every call to `_update_ui_state`. + _atoms (set[str]): A set to store the atoms set dynamically in operations during the interaction. + _assumptions (set[str]): A set to store the assumptions set dynamically in operations during the + interaction. + _externals (dict): A dictionary with true, false and released sets of external atoms + _model (list[clingo.Symbol]): The model set in `on_model`. + _unsat_core (list[int]): The unsatisfiable core set in `on_model`. + _cost (list): A list to store the cost set in `on_model`. + _optimal (bool): A boolean indicating if the solution is optimal, set in `on_model`. + _optimizing (bool): A boolean indicating if the solver is currently optimizing, set in `on_model`. + _messages (list[tuple[str,str,str]]): A list to store the messages (title, content, type) to be shown in + the UI, set dynamically in operations during the interaction. + """ + # Context: Set by the general handler of requests + self._context = [] + + # Domain Control: Set in _init_ctl self._ctl = None - self._model = None + # UIState object to handle the UI construction: Set in every time in _update_ui_state + self._ui_state = None + + # Atoms and assumptions: Set dynamically in operations during the interaction + self._atoms = set() self._assumptions = set() + self._externals = {"true": set(), "false": set(), "released": set()} + + # Handler and Iterator: Set while browsing in next_solution operation + self._handler = None + self._iterator = None + + # Attributes from the model: Set in on_model + self._model = None self._unsat_core = None + self._cost = [] + self._optimal = False + self._optimizing = False - self._ui_state = None + # Messages to be shown in the UI: Set dynamically in operations during the interaction self._messages = [] def _init_ctl(self): + """ + Creates the domain control and loads the domain files. + + See Also: + :func:`~_create_ctl`, :func:`~_load_and_add` + """ + self._create_ctl() + self._load_and_add() + + def _create_ctl(self) -> None: """ Initializes the control object (domain-control). It is used when the server is started or after a restart. - Uses the provided constants and domain files. - It adds the atoms. + + See Also: + :func:`~_load_file` """ - self._ctl = Control(["0"] + self._constants) + self._logger.debug( + domctl_log(f"domain_ctl = Control({self._ctl_arguments_list})") + ) + self._ctl = Control(self._ctl_arguments_list) + + def _load_and_add(self) -> None: + """ + Loads domain files and atoms into the control. + + This method iterates over the domain files and atoms specified in the instance and loads them into the control. + It raises an exception if a domain file does not exist or if there is a syntax error in the logic program file. + Raises: + Exception: If a domain file does not exist or if there is a syntax error in the logic program file. + + See Also: + :func:`~_load_file` + """ for f in self._domain_files: path = Path(f) if not path.is_file(): @@ -143,7 +363,7 @@ def _init_ctl(self): raise Exception(f"File {f} does not exist") try: - self._ctl.load(str(f)) + self._load_file(f) except Exception as e: self._logger.critical( "Failed to load file %s (there is likely a syntax error in this logic program file).", @@ -153,12 +373,26 @@ def _init_ctl(self): raise e for atom in self._atoms: + self._logger.debug(domctl_log('domctl.add("base", [], {str(atom)} + ".")')) self._ctl.add("base", [], str(atom) + ".") + def _load_file(self, f): + """ + Loads a file into the control. This method can be overwritten if any pre-processing is needed. + + Arguments: + f (str): The file path + """ + self._logger.debug(domctl_log(f"domctl.load({str(f)})")) + self._ctl.load(str(f)) + def _outdate(self): """ Outdates all the dynamic values when a change has been made. Any current interaction in the models wil be terminated by canceling the search and removing the iterator. + + See Also: + :func:`~_clear_cache` """ if self._handler: self._handler.cancel() @@ -167,12 +401,53 @@ def _outdate(self): self._model = None self._clear_cache() - @property - def _is_browsing(self): + # --------------------------------------------- + # Setters + # --------------------------------------------- + + def _add_domain_state_constructor(self, method: str): """ - Property to tell if clinguin is in browsing mode. + Adds a method name to the domain constructors. + The provided method needs to be annotated with ``@property`` or ``@cached_property`` + + Arguments: + method (str): Name of the property method """ - return self._iterator is not None + + self._domain_state_constructors.append(method) + + def _set_context(self, context): + """ + Sets the context. Used by general endpoint handler after a request. + + Arguments: + context: The context dictionary + """ + self._context = context + + def _set_constant(self, name: str, value: Any) -> None: + """ + Sets a constant in the backend and restarts the control. + + Args: + name (str): name of the constant + value (Any): value of the constant + """ + self._constants[name] = value + name = name.strip('"') + value = str(value).strip('"') + self._constants[name] = value + self._logger.debug("Constant %s updated successfully to %s", name, value) + + def _add_atom(self, predicate_symbol): + """ + Adds an atom if it hasn't been already added + + Arguments: + predicate_symbol (clingo.Symbool): The symbol for the atom + """ + if predicate_symbol not in self._atoms: + self._atoms.add(predicate_symbol) # --------------------------------------------- # Solving @@ -185,6 +460,7 @@ def _ground(self, program="base"): Arguments: program (str): The name of the program to ground (defaults to "base") """ + self._logger.debug(domctl_log(f"domctl.ground([({program}, [])])")) self._ctl.ground([(program, [])]) def _prepare(self): @@ -195,33 +471,31 @@ def _prepare(self): def _on_model(self, model): """ This method is called each time a model is obtained by the domain control. - It can be used to extend the given model in Theory Solving. + It sets the model, and optimization attributes. + It can be extended to add custom features of the model. Arguments: model (clingo.Model): The found clingo model """ - - def _add_atom(self, predicate_symbol): - """ - Adds an atom if it hasn't been already aded - - Arguments: - predicate_symbol (clingo.Symbool): The symbol for the atom - """ - if predicate_symbol not in self._atoms: - self._atoms.add(predicate_symbol) + self._optimizing = len(model.cost) > 0 + if len(model.cost) > 0: + self._logger.debug(" Cost: %s", model.cost) + self._optimal = model.optimality_proven + self._cost = model.cost # --------------------------------------------- - # UI update + # UI state # --------------------------------------------- def _update_ui_state(self): """ Updates the UI state by calling all domain state methods - and creating a new control object (ui_control) using the ui_files provided + and creating a new control object (ui_control) using the UI files provided """ domain_state = self._domain_state - self._ui_state = UIState(self._ui_files, domain_state, self._constants) + self._ui_state = UIState( + self._ui_files, domain_state, self._constants_argument_list + ) self._ui_state.update_ui_state() self._ui_state.replace_images_with_b64() for m in self._messages: @@ -232,17 +506,6 @@ def _update_ui_state(self): # Domain state # --------------------------------------------- - def _add_domain_state_constructor(self, method: str): - """ - Adds a method name to the domain constructors. - This method needs to be annotated with ``@property`` or ``@cached_property`` - - Arguments: - method (str): Name of the property method - """ - - self._domain_state_constructors.append(method) - def _clear_cache(self, methods=None): """ Clears the cache of domain state constructor methods @@ -258,15 +521,81 @@ def _clear_cache(self, methods=None): self._backup_ds_cache[m] = self.__dict__[m] del self.__dict__[m] + def _call_solver_with_cache( + self, ds_id: str, ds_tag: str, models: int, opt_mode: str, enum_mode: str + ): + """ + Generic function to call the using exiting cache on browsing. + Un UNSAT it returns the output saved in the cache + + Arguments: + ds_id: Identifier used in the cache + Returns: + The program tagged + """ + if self._is_browsing: + self._logger.debug("Returning cache for %s", ds_id) + return ( + self._backup_ds_cache[ds_id] if ds_id in self._backup_ds_cache else "" + ) + self._logger.debug(domctl_log(f'domctl.configuration.solve.models = {models}"')) + self._logger.debug( + domctl_log(f'domctl.configuration.solve.opt_mode = {opt_mode}"') + ) + self._logger.debug( + domctl_log(f'domctl.configuration.solve.enum_mode = {enum_mode}"') + ) + self._ctl.configuration.solve.models = models + self._ctl.configuration.solve.opt_mode = opt_mode + self._ctl.configuration.solve.enum_mode = enum_mode + self._prepare() + self._logger.debug( + domctl_log( + f"domctl.solve({[(str(a),b) for a,b in self._assumption_list]}, yield_=True)" + ) + ) + symbols, ucore = solve( + self._ctl, + self._assumption_list, + self._on_model, + ) + self._unsat_core = ucore + if symbols is None: + self._logger.warning("Got an UNSAT result with the given domain encoding.") + return ( + self._backup_ds_cache[ds_id] if ds_id in self._backup_ds_cache else "" + ) + return " ".join([str(s) + "." for s in list(tag(symbols, ds_tag))]) + "\n" + + @functools.lru_cache(maxsize=None) # pylint: disable=[method-cache-max-size-none] + def _ui_uses_predicate(self, name: str, arity: int): + """ + Returns a truth value of weather the ui_files contain the given signature. + + Args: + name (str): Predicate name + arity (int): Predicate arity + """ + transformer = UsesSignatureTransformer(name, arity) + self._logger.debug("Transformer parsing UI files to find %s/%s", name, arity) + transformer.parse_files(self._ui_files) + if not transformer.contained: + self._logger.debug( + "Predicate NOT contained. Domain constructor will be skipped" + ) + return transformer.contained + @property def _domain_state(self): """ Gets the domain state by calling all the domain constructor methods + + Some domain state constructors might skip the computation if the UI does not require them. """ ds = "" for f in self._domain_state_constructors: + ds += f"\n%%%%%%%% {f} %%%%%%%\n" ds += getattr(self, f) - self._logger.debug("\nDomain state:\n==========\n %s", str(ds)) return ds # -------- Domain state methods @@ -274,10 +603,12 @@ def _domain_state(self): @property def _ds_context(self): """ - Gets the context as facts ``_clinguin_context(KEY, VALUE)`` + Adds context information from the client. + + Includes predicate ``_clinguin_context/2`` indicating each key and value in the context. """ prg = "#defined _clinguin_context/2. " - for a in self.context: + for a in self._context: value = str(a.value) try: symbol = parse_term(value) @@ -288,81 +619,31 @@ def _ds_context(self): prg += f"_clinguin_context({str(a.key)},{value})." return prg + "\n" - @cached_property - def _ds_brave(self): - """ - Computes brave consequences adds them as predicates ``_any/1``. - - It uses a cache that is erased after an operation makes changes in the control. - """ - if self._is_browsing: - return ( - self._backup_ds_cache["_ds_brave"] - if "_ds_brave" in self._backup_ds_cache - else "" - ) - self._ctl.configuration.solve.models = 0 - self._ctl.configuration.solve.opt_mode = "ignore" - self._ctl.configuration.solve.enum_mode = "brave" - self._prepare() - symbols, ucore = solve( - self._ctl, [(a, True) for a in self._assumptions], self._on_model - ) - self._unsat_core = ucore - if symbols is None: - self._logger.warning("Got an UNSAT result with the given domain encoding.") - return ( - self._backup_ds_cache["_ds_brave"] - if "_ds_brave" in self._backup_ds_cache - else "" - ) - return "\n".join([str(s) + "." for s in list(tag(symbols, "_any"))]) + "\n" - - @cached_property - def _ds_cautious(self): - """ - Computes cautious consequences adds them as predicates ``_all/1``. - - It uses a cache that is erased after an operation makes changes in the control. - """ - if self._is_browsing: - return ( - self._backup_ds_cache["_ds_cautious"] - if "_ds_cautious" in self._backup_ds_cache - else "" - ) - self._ctl.configuration.solve.models = 0 - self._ctl.configuration.solve.opt_mode = "ignore" - self._ctl.configuration.solve.enum_mode = "cautious" - self._prepare() - symbols, ucore = solve( - self._ctl, [(a, True) for a in self._assumptions], self._on_model - ) - self._unsat_core = ucore - if symbols is None: - self._logger.warning("Got an UNSAT result with the given domain encoding.") - return ( - self._backup_ds_cache["_ds_cautious"] - if "_ds_cautious" in self._backup_ds_cache - else "" - ) - return "\n".join([str(s) + "." for s in list(tag(symbols, "_all"))]) + "\n" - @cached_property def _ds_model(self): """ - Computes a model if one has not been set yet. + Computes model and adds all atoms as facts. When the model is being iterated by the user, the current model is returned. + It will use as optimality the mode set in the command line as `default-opt-mode` (`ignore` by default). + It uses a cache that is erased after an operation makes changes in the control. """ if self._model is None: + self._logger.debug( + domctl_log('domctl.configuration.solve.enum_mode = "auto"') + ) self._ctl.configuration.solve.models = 1 - self._ctl.configuration.solve.opt_mode = "ignore" + self._ctl.configuration.solve.opt_mode = self._default_opt_mode self._ctl.configuration.solve.enum_mode = "auto" + self._prepare() - symbols, ucore = solve( - self._ctl, [(a, True) for a in self._assumptions], self._on_model + self._logger.debug( + domctl_log( + f"domctl.solve({[(str(a),b) for a,b in self._assumption_list]}, yield_=True)" + ) ) + + symbols, ucore = solve(self._ctl, self._assumption_list, self._on_model) self._unsat_core = ucore if symbols is None: self._logger.warning( @@ -376,7 +657,69 @@ def _ds_model(self): ) self._model = symbols - return "\n".join([str(s) + "." for s in self._model]) + "\n" + return " ".join([str(s) + "." for s in self._model]) + "\n" + + @cached_property + def _ds_brave(self): + """ + Computes brave consequences adds them as predicates ``_any/1``. + This are atoms that appear in some model. + If it is not used in the UI files then the computation is not performed. + + It uses a cache that is erased after an operation makes changes in the control. + """ + if not self._ui_uses_predicate("_any", 1): + return "% NOT USED\n" + + return self._call_solver_with_cache("_ds_brave", "_any", 0, "ignore", "brave") + + @cached_property + def _ds_cautious(self): + """ + Computes cautious consequences adds them as predicates ``_all/1``. + This are atoms that appear in all models. + If it is not used in the UI files then the computation is not performed. + + It uses a cache that is erased after an operation makes changes in the control. + """ + if not self._ui_uses_predicate("_all", 1): + return "% NOT USED\n" + + return self._call_solver_with_cache( + "_ds_cautious", "_all", 0, "ignore", "cautious" + ) + + @cached_property + def _ds_brave_optimal(self): + """ + Computes brave consequences for only optimal solutions adds them as predicates ``_any_opt/1``. + This are atoms that appear in some optimal model. + If it is not used in the UI files then the computation is not performed. + + It uses a cache that is erased after an operation makes changes in the control. + """ + if not self._ui_uses_predicate("_any_opt", 1): + return "% NOT USED\n" + + return self._call_solver_with_cache( + "_ds_brave_optimal", "_any_opt", 0, "optN", "brave" + ) + + @cached_property + def _ds_cautious_optimal(self): + """ + Computes cautious consequences of optimal models adds them as predicates ``_all_opt/1``. + This are atoms that appear in all optimal models. + If it is not used in the UI files then the computation is not performed. + + It uses a cache that is erased after an operation makes changes in the control. + """ + if not self._ui_uses_predicate("_all_opt", 1): + return "% NOT USED\n" + + return self._call_solver_with_cache( + "_ds_cautious_optimal", "_all_opt", 0, "optN", "cautious" + ) @property def _ds_unsat(self): @@ -402,20 +745,42 @@ def _ds_browsing(self): prg += "_clinguin_browsing." return prg + "\n" - # --------------------------------------------- - # Output - # --------------------------------------------- - @property - def _output_prg(self): + def _ds_opt(self): """ - Generates the output program used when downloading into a file + Adds program to pass with optimality information. + + Includes predicates: + - ``_clinguin_cost/1``: With a single tuple indicating the cost + - ``_clinguin_cost/2``: With the index and cost value, linearizing predicate ``_clinguin_cost/1`` + - ``_clinguin_optimal/0``: If the solution is optimal + - ``_clinguin_optimizing/0``: If there is an optimization in the program """ - prg = "" - for a in self._atoms: - prg = prg + f"{str(a)}.\n" + prg = "#defined _clinguin_cost/2. #defined _clinguin_cost/1. #defined _clinguin_optimal/1. " + + for i, c in enumerate(self._cost): + prg += f"_clinguin_cost({i},{c}). " + if self._optimal: + prg += "_clinguin_optimal. " + if self._optimizing: + prg += "_clinguin_optimizing. " + + prg += f"_clinguin_cost({tuple(self._cost)}).\n" return prg + @property + def _ds_constants(self): + """ + Adds constants values. + + Includes predicate ``_clinguin_const/2`` for each constant provided + in the command line and used in the domain files. + """ + prg = "#defined _clinguin_const/2. " + for k, v in self._constants.items(): + prg += f"_clinguin_const({k},{v})." + return prg + "\n" + ######################################################################################################## # --------------------------------------------- @@ -426,69 +791,54 @@ def get(self): """ Updates the UI and transforms the facts into a JSON. This method will be automatically called after executing all the operations. - Thus, it needs to be implemented by all backends. """ self._update_ui_state() - self._logger.debug(self._ui_state) json_structure = StandardJsonEncoder.encode(self._ui_state) return json_structure def restart(self): """ - Restarts the backend by initializing parameters, controls, ending the browsing grounding and updating the UI + Restarts the backend. It will initialize all attributes, remove atoms, assumptions and externals, + restart the control object by initializing all parameters, controls, ending the browsing and grounding. """ - self._init_setup() - self._outdate() - self._init_ctl() - self._ground() + self._restart() def update(self): """ - Updates the UI and transforms the output into a JSON. + Updates the UI by clearing the cache and computing the models again. """ self._clear_cache() - def download( - self, show_prg=None, file_name="clinguin_download.lp", domain_files=True - ): + def download(self, show_prg=None, file_name="clinguin_download.lp"): """ - Downloads the current state of the backend. All added atoms and assumptions - are put together as a list of facts. + Downloads the current model. It must be selected first via :func:`~select` . Arguments: show_prg (_type_, optional): Program to filter output using show statements. Defaults to None. file_name (str, optional): The name of the file for the download. Defaults to "clinguin_download.lp". - domain_files (bool, optional): If the domain files should be included. Defaults to True - """ - prg = self._output_prg - was_browsing = self._is_browsing - self._outdate() - if was_browsing: - self._messages.append( - ( - "Warning", - "Browsing was active during download, only selected solutions will be present on the file.", - "warning", - ) - ) - if show_prg is not None: - ctl = Control() - ctl.add("base", [], prg) - if domain_files: - for f in self._domain_files: - ctl.load(f) + if self._model is None: + raise RuntimeError("Cant download when there is no model") + show_prg = show_prg or "" + prg = "\n".join([f"{s}." for s in self._model]) + ctl = Control() + ctl.add("base", [], prg) + try: ctl.add("base", [], show_prg.replace('"', "")) - ctl.ground([("base", [])]) - with ctl.solve(yield_=True) as hnd: - for m in hnd: - atoms = [f"{str(s)}." for s in m.symbols(shown=True)] + except RuntimeError as exc: + raise Exception( + "Show program can't be parsed. Make sure it is a valid clingo program." + ) from exc + ctl.ground([("base", [])]) + with ctl.solve(yield_=True) as hnd: + for m in hnd: + atoms = [f"{str(s)}." for s in m.symbols(shown=True)] - prg = "\n".join(atoms) + final_prg = "\n".join(atoms) file_name = file_name.strip('"') with open(file_name, "w", encoding="UTF-8") as file: - file.write(prg) + file.write(final_prg) self._messages.append( ( "Download successful", @@ -499,7 +849,7 @@ def download( def clear_atoms(self): """ - Removes all atoms and resets the backend (i.e. it regrounds, etc.) + Removes all atoms and resets the backend. and finally updates the model and returns the updated gui as a Json structure. """ self._outdate() @@ -509,7 +859,7 @@ def clear_atoms(self): def add_atom(self, predicate): """ - Adds an assumption, restarts the control and grounds again + Adds an atom, restarts the control and grounds Arguments: @@ -524,7 +874,7 @@ def add_atom(self, predicate): def remove_atom(self, predicate): """ - Removes an assumption, restarts the control and grounds again + Removes an atom (if present), restarts the control and grounds again Arguments: @@ -540,7 +890,7 @@ def remove_atom(self, predicate): def next_solution(self, opt_mode="ignore"): """ Obtains the next solution. If a no browsing has been started yet, then it calls solve, - otherwise it iterates the models in the last call. + otherwise it iterates the models in the last call. To keep the atoms shown in the solution, use :func:`~select`. Arguments: opt_mode: The clingo optimization mode, bu default is 'ignore', to browse only optimal models use 'optN' @@ -550,22 +900,56 @@ def next_solution(self, opt_mode="ignore"): self._outdate() optimizing = opt_mode in ["optN", "opt"] if not self._iterator: + self._logger.debug( + domctl_log(f"domctl.configuration.solve.opt_mode = {opt_mode}") + ) self._ctl.configuration.solve.enum_mode = "auto" self._ctl.configuration.solve.opt_mode = opt_mode self._ctl.configuration.solve.models = 0 + self._prepare() - self._handler = self._ctl.solve( - [(a, True) for a in self._assumptions], yield_=True + self._logger.debug( + domctl_log( + f"domctl.solve({[(str(a),b) for a,b in self._assumption_list]}, yield_=True)" + ) ) + self._handler = self._ctl.solve(self._assumption_list, yield_=True) + self._iterator = iter(self._handler) try: + start = time.time() model = next(self._iterator) - while optimizing and not model.optimality_proven: - self._logger.info("Skipping non-optimal model") - model = next(self._iterator) self._clear_cache(["_ds_model"]) self._on_model(model) - self._model = model.symbols(shown=True, atoms=True) + self._model = model.symbols(shown=True, atoms=True, theory=True) + while optimizing and not model.optimality_proven: + if len(model.cost) == 0: + self._messages.append( + ( + "Browsing Warning", + "No optimization provided", + "warning", + ) + ) + self._logger.warning( + "No optimization statement provided in encoding but optimization condition provided\ + in 'next_solution' operation. Exiting browsing." + ) + break + if ( + self._opt_timeout is not None + and time.time() - start > self._opt_timeout + ): + self._logger.warning( + "Timeout for finding optimal model was reached. Returning model without proving optimality." + ) + break + self._logger.debug("Skipping non-optimal model!") + model = next(self._iterator) + self._clear_cache(["_ds_model"]) + self._on_model(model) + + self._model = model.symbols(shown=True, atoms=True, theory=True) except StopIteration: self._logger.info("No more solutions") self._outdate() @@ -583,3 +967,19 @@ def select(self): ) for s in self._model: # pylint: disable=E1133 self._add_atom(s) + + def stop_browsing(self): + """ + Stops the current browsing. + """ + self._outdate() + + def set_constant(self, name: str, value: Any): + """ + Sets a constant value. Will reinitialize the control, ground and set arguments + """ + self._set_constant(name, value) + self._init_interactive() + self._outdate() + self._init_ctl() + self._ground() diff --git a/clinguin/server/application/backends/clingo_multishot_backend.py b/clinguin/server/application/backends/clingo_multishot_backend.py index c866fe99..02129759 100644 --- a/clinguin/server/application/backends/clingo_multishot_backend.py +++ b/clinguin/server/application/backends/clingo_multishot_backend.py @@ -3,10 +3,13 @@ Module that contains the ClingoMultishotBackend. """ -from clingo import parse_term +from clingo import Control, parse_term from clingo.script import enable_python from clinguin.server.application.backends import ClingoBackend +from clinguin.utils.annotations import extends, overwrites + +from ....utils.logger import domctl_log enable_python() @@ -18,34 +21,66 @@ class ClingoMultishotBackend(ClingoBackend): It is selected as the default Backend """ - def __init__(self, args): - super().__init__(args) - + # --------------------------------------------- + # Initialization + # --------------------------------------------- + @extends(ClingoBackend) + def _init_ds_constructors(self): + super()._init_ds_constructors() self._add_domain_state_constructor("_ds_assume") # --------------------------------------------- - # Setups + # Setters # --------------------------------------------- - def _init_setup(self): + def _set_external(self, symbol, name): """ - Initializes the arguments when the server starts or after a restart. - These arguments include, the handler and iterator for browsing answer sets, - as well as the domain control, the atoms, assumptions and externals + Sets the external value of a symbol. + + Args: + symbol (clingo.Symbol): The clingo symbol to be set + name (str): Either "true", "false" or "release" """ - super()._init_setup() - # To make static linters happy - self._externals = {"true": set(), "false": set(), "released": set()} + if name == "release": + self._logger.debug(domctl_log(f"ctl.release_external({symbol})")) + self._ctl.release_external(symbol) + self._externals["released"].add(symbol) - # --------------------------------------------- - # Solving - # --------------------------------------------- + if symbol in self._externals["true"]: + self._externals["true"].remove(symbol) + + if symbol in self._externals["false"]: + self._externals["false"].remove(symbol) + + elif name == "true": + self._logger.debug(domctl_log(f"ctl.assign_external({symbol}, True)")) + self._ctl.assign_external(symbol, True) + self._externals["true"].add(symbol) - def _add_assumption(self, predicate_symbol): + if symbol in self._externals["false"]: + self._externals["false"].remove(symbol) + + elif name == "false": + self._logger.debug(domctl_log(f"ctl.assign_external({symbol}, False)")) + self._ctl.assign_external(symbol, False) + self._externals["false"].add(symbol) + + if symbol in self._externals["true"]: + self._externals["true"].remove(symbol) + + else: + raise ValueError( + f"Invalid external value {name}. Must be true, false or relase" + ) + + def _add_assumption(self, symbol): """ - Adds an assumption to the set + Adds an assumption to the list of assumptions. + + Args: + symbol (clingo.Symbol): The clingo symbol to be added as a True assumption """ - self._assumptions.add(predicate_symbol) + self._assumptions.add(symbol) # --------------------------------------------- # Domain state @@ -59,25 +94,10 @@ def _ds_assume(self): Includes predicate ``_clinguin_assume/1`` for every atom that was assumed. """ prg = "#defined _clinguin_assume/1. " - for a in self._assumptions: + for a, _ in self._assumption_list: prg += f"_clinguin_assume({str(a)}). " return prg + "\n" - # --------------------------------------------- - # Output - # --------------------------------------------- - - @property - def _output_prg(self): - """ - Generates the output program used when downloading into a file. - Includes all assumptions as facts. - """ - prg = super()._output_prg - for a in self._assumptions: - prg = prg + f"{str(a)}.\n" - return prg - ######################################################################################################## # --------------------------------------------- @@ -92,49 +112,53 @@ def clear_assumptions(self): self._outdate() self._assumptions = set() - def add_assumption(self, predicate): + def add_assumption(self, atom): """ - Adds an assumption + Adds an atom `a` as an assumption. + This assumption can be considered as an integrity constraint: + `:- not a.` forcing the program to entail the given atom. Arguments: - predicate (str): The clingo symbol to be added + atom (str): The clingo symbol to be added as a true assumption """ - predicate_symbol = parse_term(predicate) - if predicate_symbol not in self._assumptions: - self._add_assumption(predicate_symbol) + atom_symbol = parse_term(atom) + if atom_symbol not in self._assumptions: + self._add_assumption(atom_symbol) self._outdate() - def remove_assumption(self, predicate): + def remove_assumption(self, atom): """ - Removes an assumption + Removes an atom from the assumptions list. Arguments: - predicate (str): The clingo symbol to be removed + atom (str): The clingo symbol to be removed """ - predicate_symbol = parse_term(predicate) - if predicate_symbol in self._assumptions: - self._assumptions.remove(predicate_symbol) + atom_symbol = parse_term(atom) + if atom_symbol in self._assumptions: + self._assumptions.remove(atom_symbol) self._outdate() - def remove_assumption_signature(self, predicate): + def remove_assumption_signature(self, atom): """ - Removes predicates matching the predicate description. + Removes from the list of assumptions those matching the given atom. + Unlike function remove_assumption, this one allows for partial matches using the + placeholder constant `any` Arguments: - predicate (str): The predicate description as a symbol, + atom (str): The atom description as a symbol, where the reserver word `any` is used to state that anything can take part of that position. For instance, `person(anna,any)`, - will remove all assumptions of predicate person, where the first argument is anna. + will remove all assumptions of atom person, where the first argument is anna. """ - predicate_symbol = parse_term(predicate) - arity = len(predicate_symbol.arguments) + atom_symbol = parse_term(atom) + arity = len(atom_symbol.arguments) to_remove = [] for s in self._assumptions: - if s.match(predicate_symbol.name, arity): - for i, a in enumerate(predicate_symbol.arguments): + if s.match(atom_symbol.name, arity): + for i, a in enumerate(atom_symbol.arguments): if str(a) != "any" and s.arguments[i] != a: break else: @@ -145,52 +169,32 @@ def remove_assumption_signature(self, predicate): if len(to_remove) > 0: self._outdate() - def set_external(self, predicate, value): + def set_external(self, atom, value): """ - Sets the value of an external. + Sets the value of an external. Externals must be defined in the domain files using `#external`. + The truth value of external atoms can then be provided by the user via this function. Arguments: - predicate (str): The clingo symbol to be set + atom (str): The clingo symbol to be set value (str): The value (release, true or false) """ - symbol = parse_term(predicate) + symbol = parse_term(atom) name = value self._outdate() - if name == "release": - self._ctl.release_external(parse_term(predicate)) - self._externals["released"].add(symbol) - - if symbol in self._externals["true"]: - self._externals["true"].remove(symbol) - - if symbol in self._externals["false"]: - self._externals["false"].remove(symbol) - - elif name == "true": - self._ctl.assign_external(parse_term(predicate), True) - self._externals["true"].add(symbol) - - if symbol in self._externals["false"]: - self._externals["false"].remove(symbol) - - elif name == "false": - self._ctl.assign_external(parse_term(predicate), False) - self._externals["false"].add(symbol) + self._set_external(symbol, name) - if symbol in self._externals["true"]: - self._externals["true"].remove(symbol) - - else: - raise ValueError( - f"Invalid external value {name}. Must be true, false or relase" - ) - - def select(self): + @overwrites(ClingoBackend) + def select(self, show_prg: str = ""): """ Select the current solution during browsing. All atoms in the solution are added as assumptions in the backend. + + Arguments: + + show_program (str): An optional show program to filter atoms + """ if self._model is None: self._messages.append( @@ -202,7 +206,27 @@ def select(self): else: symbols_to_ignore = self._externals["true"] symbols_to_ignore.union(self._externals["false"]) - for s in self._model: # pylint: disable=E1133 + if show_prg == "": + model = self._model + else: + model = [] + ctl = Control(["--warn=none"]) + try: + ctl.add("base", [], show_prg.strip('"')) + except RuntimeError as exc: + raise Exception( + "Show program can't be parsed. Make sure it is a valid clingo program." + ) from exc + prg = "\n".join([f"{str(s)}." for s in self._model]) + ctl.add("base", [], prg) + ctl.ground([("base", [])]) + + def add_shown(m): + for s in m.symbols(shown=True): + model.append(s) + + ctl.solve(on_model=add_shown) + for s in model: # pylint: disable=E1133 if s not in symbols_to_ignore: self._add_assumption(s) self._outdate() diff --git a/clinguin/server/application/backends/clingodl_backend.py b/clinguin/server/application/backends/clingodl_backend.py index 0b2f34df..50ddc6c9 100644 --- a/clinguin/server/application/backends/clingodl_backend.py +++ b/clinguin/server/application/backends/clingodl_backend.py @@ -2,10 +2,8 @@ Module that contains the ClingoDL Backend. """ +import textwrap -from pathlib import Path - -from clingo import Control from clingo.ast import ProgramBuilder, parse_files from clingo.script import enable_python from clingodl import ClingoDLTheory @@ -13,6 +11,7 @@ from clinguin.server.application.backends.clingo_multishot_backend import ( ClingoMultishotBackend, ) +from clinguin.utils.annotations import extends enable_python() # pylint: disable=attribute-defined-outside-init @@ -24,42 +23,60 @@ class ClingoDLBackend(ClingoMultishotBackend): It also includes the assignment in the domain state. """ - def __init__(self, args): - super().__init__(args) - - self._add_domain_state_constructor("_ds_assign") - # --------------------------------------------- # Setups # --------------------------------------------- - def _init_ctl(self): - self._ctl = Control(["0"] + self._constants) + @extends(ClingoMultishotBackend) + def _init_command_line(self): + """ + Sets the dl configuration + """ + super()._init_command_line() + dl_config = ( + [a.split("=") for a in self._args.dl_config] if self._args.dl_config else [] + ) + self._dl_conf = [(a[0], a[1]) for a in dl_config] + + @extends(ClingoMultishotBackend) + def _init_interactive(self): + """ + Initializes the list of the assignments + + Attributes: + _assignment (List[Tuple[str, int]]): The list of assignments + """ + super()._init_interactive() + self._assignment = [] + + @extends(ClingoMultishotBackend) + def _init_ds_constructors(self): + super()._init_ds_constructors() + self._add_domain_state_constructor("_ds_assign") + + @extends(ClingoMultishotBackend) + def _create_ctl(self): + """ + Registers the ClingoDLTheory. + """ + super()._create_ctl() self._theory = ClingoDLTheory() + for k, v in self._dl_conf: + self._theory.configure(k, v) self._theory.register(self._ctl) + @extends(ClingoMultishotBackend) + def _load_file(self, f): + """ + Uses the program builder to rewrite the theory atoms. + """ with ProgramBuilder(self._ctl) as bld: - for f in self._domain_files: - path = Path(f) - if not path.is_file(): - self._logger.critical("File %s does not exist", f) - raise Exception(f"File {f} does not exist") - try: - parse_files([f], lambda ast: self._theory.rewrite_ast(ast, bld.add)) - except Exception as a: - self._logger.critical( - "Failed to load file %s (there is likely a syntax error in this logic program file).", - f, - ) - raise a - - for atom in self._atoms: - self._ctl.add("base", [], str(atom) + ".") + parse_files([f], lambda ast: self._theory.rewrite_ast(ast, bld.add)) + @extends(ClingoMultishotBackend) def _outdate(self): """ - Outdates all the dynamic values when a change has been made. - Any current interaction in the models wil be terminated by canceling the search and removing the iterator. + Sets the assignment to empty. """ super()._outdate() self._assignment = [] @@ -67,16 +84,47 @@ def _outdate(self): # --------------------------------------------- # Solving # --------------------------------------------- - + @extends(ClingoMultishotBackend) def _prepare(self): + """ + Prepares the theory before solving + """ # pylint: disable=attribute-defined-outside-init self._theory.prepare(self._ctl) + @extends(ClingoMultishotBackend) def _on_model(self, model): + """ + Sets the assignment from the model + """ + super()._on_model(model) self._theory.on_model(model) # pylint: disable=attribute-defined-outside-init self._assignment = list( - (key, val) for key, val in self._theory.assignment(model.thread_id)) + (key, val) for key, val in self._theory.assignment(model.thread_id) + ) + + # --------------------------------------------- + # Class methods + # --------------------------------------------- + + @classmethod + @extends(ClingoMultishotBackend) + def register_options(cls, parser): + """ + Adds the `dl-config` option. + """ + ClingoMultishotBackend.register_options(parser) + + parser.add_argument( + "--dl-config", + help=textwrap.dedent( + """\ + Clingo-dl options list of =. + """ + ), + nargs="*", + ) # --------------------------------------------- # Domain state @@ -85,8 +133,14 @@ def _on_model(self, model): @property def _ds_assign(self): """ - Additional program to pass to the UI computation with assignments + Adds program with assignments + + Includes predicate ``_clinguin_assign/2`` with the assignments. + """ + if not self._ui_uses_predicate("_clinguin_assign", 2): + return "% NOT USED\n" + prg = "" for key, val in self._assignment: prg += f"_clinguin_assign({key},{val})." diff --git a/clinguin/server/application/backends/clingraph_backend.py b/clinguin/server/application/backends/clingraph_backend.py index dbbadef7..517cb1ab 100644 --- a/clinguin/server/application/backends/clingraph_backend.py +++ b/clinguin/server/application/backends/clingraph_backend.py @@ -2,6 +2,7 @@ """ Module that contains the ClingraphBackend. """ +import functools import textwrap from pathlib import Path @@ -18,6 +19,9 @@ # Self defined from clinguin.utils import StandardTextProcessing, image_to_b64 +from clinguin.utils.annotations import extends, overwrites + +from ....utils.transformer import UsesSignatureTransformer class ClingraphBackend(ClingoMultishotBackend): @@ -27,18 +31,23 @@ class ClingraphBackend(ClingoMultishotBackend): Then, they are sent the client as Base64 encoding. """ - def __init__(self, args): - super().__init__(args) - - self._clingraph_files = args.clingraph_files - self._select_model = args.select_model - self._type = args.type - self._select_graph = args.select_graph - self._dir = args.dir - self._name_format = args.name_format - self._engine = args.engine + @extends(ClingoMultishotBackend) + def _init_command_line(self): + """ + Sets the arguments for computing clingraph images. + """ + super()._init_command_line() + # pylint: disable= attribute-defined-outside-init + self._clingraph_files = self._args.clingraph_files + self._select_model = self._args.select_model + self._type = self._args.type + self._select_graph = self._args.select_graph + self._dir = self._args.dir + self._name_format = self._args.name_format + self._engine = self._args.engine + + self._intermediate_format = self._args.intermediate_format - self._intermediate_format = args.intermediate_format self._attribute_image_key = "image_type" self._attribute_image_value = "clingraph" @@ -192,10 +201,26 @@ def register_options(cls, parser): help="Intermediate format. Use 'svg' for angular fronted and 'png' tkinter. (default: %(default)s)", ) + @functools.lru_cache(maxsize=None) # pylint: disable=[method-cache-max-size-none] + @overwrites(ClingoMultishotBackend) + def _ui_uses_predicate(self, name: str, arity: int): + """ + Returns a truth value of weather the ui_files contain the given signature. + + Args: + name (str): Predicate name + arity (int): Predicate arity + """ + transformer = UsesSignatureTransformer(name, arity) + self._logger.debug("Transformer parsing UI files to find %s/%s", name, arity) + transformer.parse_files(self._ui_files + self._clingraph_files) + return transformer.contained + # --------------------------------------------- # UI update # --------------------------------------------- + @extends(ClingoMultishotBackend) def _update_ui_state(self): """ Updates the UI state by calling all domain state methods @@ -313,5 +338,4 @@ def _create_image_from_graph(self, graphs, position=None, key=None): graph.format = self._intermediate_format img = graph.pipe(engine=self._engine) - return img diff --git a/clinguin/server/application/backends/explanation_backend.py b/clinguin/server/application/backends/explanation_backend.py index 4687e0e2..c6fcecf5 100644 --- a/clinguin/server/application/backends/explanation_backend.py +++ b/clinguin/server/application/backends/explanation_backend.py @@ -5,11 +5,16 @@ import textwrap from functools import cached_property +from clingexplaid.mus import CoreComputer +from clingexplaid.transformers import AssumptionTransformer from clingo.script import enable_python from clinguin.server.application.backends.clingo_multishot_backend import ( ClingoMultishotBackend, ) +from clinguin.utils.annotations import extends + +from ....utils.logger import domctl_log enable_python() @@ -21,174 +26,151 @@ class ExplanationBackend(ClingoMultishotBackend): the faulty assumptions. """ - def __init__(self, args): - self._muc = None - self._lit2symbol = {} - self._mc_base_assumptions = set() - super().__init__(args) - - self._add_domain_state_constructor("_ds_muc") - - if args.assumption_signature: - for a in args.assumption_signature: - try: - name = a.split(",")[0] - arity = int(a.split(",")[1]) - except Exception as ex: - raise ValueError( - "Argument assumption_signature must have format name,arity" - ) from ex - for s in self._ctl.symbolic_atoms: - if s.symbol.match(name, arity): - self._mc_base_assumptions.add(s.symbol) - self._add_symbol_to_dict(s.symbol) - self._assumptions = self._mc_base_assumptions.copy() - # --------------------------------------------- - # Class methods + # Properties # --------------------------------------------- - @classmethod - def register_options(cls, parser): + @property + def _assumption_list(self): """ - Registers command line options for ClingraphBackend. - """ - ClingoMultishotBackend.register_options(parser) - - parser.add_argument( - "--assumption-signature", - help=textwrap.dedent( - """\ - Signatures that will be considered as assumtions. Must be have format name,arity""" - ), - nargs="+", - metavar="", - ) + Gets the set of assumptions used for solving. + It includes the assumptions from the assumption signatures provided. - # --------------------------------------------- - # Setups - # --------------------------------------------- + Warning: - def _outdate(self): - """ - Outdates all the dynamic values when a change has been made. - Any current interaction in the models wil be terminated by canceling the search and removing the iterator. + Overwrites :meth:`ClingoBackend._assumption_list` """ - super()._outdate() - self._clear_cache(["_ds_muc"]) + return [ + (a, True) for a in self._assumptions.union(self._assumptions_from_signature) + ] # --------------------------------------------- - # Solving + # Initialization # --------------------------------------------- - def _add_assumption(self, predicate_symbol): + @extends(ClingoMultishotBackend) + def _init_interactive(self): """ - Adds an assumption by also including in the mapping to literals. - """ - super()._add_assumption(predicate_symbol) - self._add_symbol_to_dict(predicate_symbol) + Adds the MUS property - def _ground(self, program: str = "base"): + Attributes: + _mus (str): The list of assumptions in the MUS property """ - Grounds the provided program, takes care of finding the new literals for the assumptions + super()._init_interactive() + # pylint: disable= attribute-defined-outside-init + self._mus = None - Arguments: - program (str): The name of the program to ground (defaults to "base") + @extends(ClingoMultishotBackend) + def _init_command_line(self): """ - self._lit2symbol = {} - super()._ground(program=program) - for a in self._assumptions: - self._add_symbol_to_dict(a) - - # --------------------------------------------- - # Domain state - # --------------------------------------------- + Sets the assumption signature and the transformer used for the input files - @cached_property - def _ds_muc(self): - """ - Adds information about the Minimal Unsat Core (MUC) - Includes predicate ``_clinguin_muc/1`` for every assumption in the MUC - It uses a cache that is erased after an operation makes changes in the control. + Attributes: + _assumption_sig (List[Tuple[str, int]]): The list of assumption signatures + _assumption_transformer (clingexplaid.AssumptionTransformer): The transformer used for the input files """ - prg = "#defined _clinguin_muc/1. " - if self._unsat_core is not None: - self._logger.info("UNSAT Answer, will add explanation") - clingo_core = self._unsat_core - clingo_core_symbols = [self._lit2symbol[s] for s in clingo_core if s != -1] - muc_core = self._get_minimum_uc(clingo_core_symbols) - for s in muc_core: - prg = prg + f"_clinguin_muc({str(s)}).\n" - return prg - - # --------------------------------------------- - # Private methods - # --------------------------------------------- + super()._init_command_line() + # pylint: disable= attribute-defined-outside-init + self._assumption_sig = [] + for a in self._args.assumption_signature or []: + try: + self._assumption_sig.append((a.split(",")[0], int(a.split(",")[1]))) + except Exception as ex: + raise ValueError( + "Argument assumption_signature must have format name,arity" + ) from ex + self._assumption_transformer = AssumptionTransformer( + signatures=self._assumption_sig + ) - def _add_symbol_to_dict(self, symbol): - """ - Adds a list of symbols to the mapping of symbols to literals - """ - try: - lit = self._ctl.symbolic_atoms[symbol].literal - self._lit2symbol[lit] = symbol - except Exception: - self._logger.error( - "Could not find symbol %s literal in control. Symbol ignored,", symbol - ) + @extends(ClingoMultishotBackend) + def _init_ds_constructors(self): + super()._init_ds_constructors() + self._add_domain_state_constructor("_ds_mus") - def _solve_core(self, assumptions): + @extends(ClingoMultishotBackend) + def _load_file(self, f): """ - Solves and gets the core with the basic faulty assumptions. + Loads a file into the control. Transforms the program to add choices around assumption signatures. Arguments: + f (str): The file path - assumptions (list[int]): List of assumption literals - """ - with self._ctl.solve( - assumptions=[(a, True) for a in assumptions], yield_=True - ) as solve_handle: - satisfiable = solve_handle.get().satisfiable - core = [self._lit2symbol[s] for s in solve_handle.core() if s != -1] - return satisfiable, core - - def _get_minimum_uc(self, different_assumptions): """ - Computes the MUC from the assumptions - Arguments: + transformed_program = self._assumption_transformer.parse_files([f]) + self._logger.debug(domctl_log(f'domctl.add("base", [], {transformed_program})')) + self._ctl.add("base", [], transformed_program) - different_assumptions (list[int]): List of assumption literals that is being minimized + # --------------------------------------------- + # Solving + # --------------------------------------------- + @extends(ClingoMultishotBackend) + def _ground(self, program="base"): """ - sat, _ = self._solve_core(assumptions=different_assumptions) + Sets the list of assumptions that were taken from the input files using the assumption_signature. - if sat: - return [] + Attributes: + _assumptions_from_signature (Set[clingo.Symbol]): The set of assumptions from the assumption signatures + """ + super()._ground(program) + # pylint: disable= attribute-defined-outside-init + self._assumptions_from_signature = ( + self._assumption_transformer.get_assumption_symbols( + self._ctl, arguments=self._ctl_arguments_list + ) + ) - assumption_set = different_assumptions - probe_set = [] + # --------------------------------------------- + # Class methods + # --------------------------------------------- - for i, assumption in enumerate(assumption_set): - working_set = assumption_set[i + 1 :] - sat, _ = self._solve_core(assumptions=working_set + probe_set) - if sat: - probe_set.append(assumption) + @classmethod + @extends(ClingoMultishotBackend) + def register_options(cls, parser): + """ + Registers command line options for ClingraphBackend. + """ + ClingoMultishotBackend.register_options(parser) - if not self._solve_core(assumptions=probe_set)[0]: - break + parser.add_argument( + "--assumption-signature", + help=textwrap.dedent( + """\ + Signatures that will be considered as true assumptions. Must be have format name,arity""" + ), + nargs="+", + metavar="", + ) - return probe_set + # def _outdate(self): + # """ + # Outdates all the dynamic values when a change has been made. + # Any current interaction in the models wil be terminated by canceling the search and removing the iterator. + # It also clears the cache for the MUS. - ######################################################################################################## + # Calls: :func:`~_clear_cache` + # """ + # super()._outdate() + # self._clear_cache(["_ds_mus"]) # --------------------------------------------- - # Public operations + # Domain state # --------------------------------------------- - def clear_assumptions(self): + @cached_property + def _ds_mus(self): """ - Removes all assumptions. Overwrites the parent method by keeping as assumptions - the ones provided as input via the command line. + Adds information about the Minimal Unsatisfiable Set (MUS) + Includes predicate ``_clinguin_mus/1`` for every assumption in the MUC + It uses a cache that is erased after an operation makes changes in the control. """ - self._outdate() - self._assumptions = self._mc_base_assumptions.copy() + prg = "#defined _clinguin_mus/1.\n" + if self._unsat_core is not None: + self._logger.info("UNSAT Answer, will add explanation") + cc = CoreComputer(self._ctl, self._assumption_list) + cc.shrink() + mus_core = cc.minimal + for s, _ in mus_core: + prg = prg + f"_clinguin_mus({str(s)}).\n" + return prg diff --git a/clinguin/server/application/backends/standard_utils/clingo_logger.py b/clinguin/server/application/backends/standard_utils/clingo_logger.py index fa4b3fcb..a94318b8 100644 --- a/clinguin/server/application/backends/standard_utils/clingo_logger.py +++ b/clinguin/server/application/backends/standard_utils/clingo_logger.py @@ -2,6 +2,7 @@ Clingo logger. TODO """ + from clingo import MessageCode diff --git a/clinguin/server/application/callback.py b/clinguin/server/application/callback.py index 4648fa14..df89812e 100644 --- a/clinguin/server/application/callback.py +++ b/clinguin/server/application/callback.py @@ -1,6 +1,7 @@ """ Module contains the CallbackDto class. """ + import json @@ -11,11 +12,11 @@ class CallbackDto: endpoints on sending the reply. """ - def __init__(self, cid, event, interaction_type, policy): + def __init__(self, cid, event, action, operation): self.id = str(cid) # pylint: disable=C0103 self.event = str(event) - self.interaction_type = str(interaction_type) - self.policy = str(policy) + self.action = str(action) + self.operation = str(operation) def to_JSON(self): # pylint: disable=C0103 """ @@ -27,4 +28,4 @@ def clone(self): """ Creates a new CallbackDto object with the same properties. """ - return CallbackDto(self.id, self.event, self.interaction_type, self.policy) + return CallbackDto(self.id, self.event, self.action, self.operation) diff --git a/clinguin/server/application/element.py b/clinguin/server/application/element.py index 3a889f85..915c58d4 100644 --- a/clinguin/server/application/element.py +++ b/clinguin/server/application/element.py @@ -1,6 +1,7 @@ """ Module that contains the ElementDto class. """ + import json diff --git a/clinguin/server/application/standard_json_encoder.py b/clinguin/server/application/standard_json_encoder.py index 4e93e5f3..ba3ece50 100644 --- a/clinguin/server/application/standard_json_encoder.py +++ b/clinguin/server/application/standard_json_encoder.py @@ -1,6 +1,7 @@ """ Module which contains the StandardJsonEncoder """ + import logging import networkx as nx @@ -91,7 +92,7 @@ def _generate_hierarchy(cls, ui_state, hierarchy_root, elements_dict): element.set_attributes(elem_attributes) if element_id in cbs: elem_callbacks = [ - CallbackDto(a.id, a.event, a.interaction_type, a.policy) + CallbackDto(a.id, a.event, a.action, a.operation) for a in cbs[element_id] ] element.set_callbacks(elem_callbacks) diff --git a/clinguin/server/data/attribute.py b/clinguin/server/data/attribute.py index 4f5934bf..04999105 100644 --- a/clinguin/server/data/attribute.py +++ b/clinguin/server/data/attribute.py @@ -7,9 +7,15 @@ class AttributeDao(Predicate): """ - Class for CLORM (clingo-object-relational-mapping), i.e. for accessing attributes in a factbase. + Attributes define the style of the UI. + + - id: Identifier of the element that the attribute will be set to. + - key: The name of the attribute. Available attributes depend on the element type and the frontend. + - value: The value of the attribute. """ + # pylint: disable=abstract-method + id = RawField key = RawField value = RawField diff --git a/clinguin/server/data/callback.py b/clinguin/server/data/callback.py index 3b87230c..9b046930 100644 --- a/clinguin/server/data/callback.py +++ b/clinguin/server/data/callback.py @@ -7,13 +7,26 @@ class WhenDao(Predicate): """ - Class for CLORM (clingo-object-relational-mapping), i.e. for accessing 'when' in a factbase. + Actions define the interactivity of the UI. Multiple actions are allowed, as explained below. + + - id: Identifier of the element that the user interacted with. + - event: The event that is being triggered, such as click, hover, input, etc. + Each element type allows different events. + - action: The action performed. + - call: Calls the server to perform an operation. + - update: Updates the attribute of another element without any calls to the server. + - context: Updates the internal context that will be passed to the server on the following call actions. + See Context for more details. + - operation: The operation accounts for the information that the action requires for its execution. + """ + # pylint: disable=abstract-method + id = RawField event = RawField - interaction_type = RawField - policy = RawField + action = RawField + operation = RawField class Meta: """ diff --git a/clinguin/server/data/domain_state.py b/clinguin/server/data/domain_state.py index 351fd77d..5b022dab 100644 --- a/clinguin/server/data/domain_state.py +++ b/clinguin/server/data/domain_state.py @@ -27,7 +27,7 @@ def solve(ctl, assumptions, on_model=lambda m: None): model_symbols = None for m in result: on_model(m) - model_symbols = m.symbols(shown=True, atoms=True) + model_symbols = m.symbols(shown=True, atoms=True, theory=True) if model_symbols is None: return None, result.core() return model_symbols, None diff --git a/clinguin/server/data/element.py b/clinguin/server/data/element.py index 89c1d28a..7533fe58 100644 --- a/clinguin/server/data/element.py +++ b/clinguin/server/data/element.py @@ -7,9 +7,16 @@ class ElementDao(Predicate): """ - Class for CLORM (clingo-object-relational-mapping), i.e. for accessing elements in a factbase. + Elements define building blocks of the UI. + + - id: Identifies the element for further references. + - type: The type of element (window, container, button etc). + - parent: The id of the parent element. The identifier root is used as the root element of the UI. + """ + # pylint: disable=abstract-method + id = RawField type = RawField parent = RawField diff --git a/clinguin/server/data/ui_state.py b/clinguin/server/data/ui_state.py index 504683a3..2a173602 100644 --- a/clinguin/server/data/ui_state.py +++ b/clinguin/server/data/ui_state.py @@ -7,13 +7,14 @@ from pathlib import Path import clorm -from clingo import Control +from clingo import Control, parse_term from clingo.symbol import Function, Number, String from clingraph.clingo_utils import ClingraphContext from clorm import Raw from clinguin.utils import StandardTextProcessing, image_to_b64 +from ...utils.logger import uictl_log from .attribute import AttributeDao from .callback import WhenDao from .element import ElementDao @@ -28,11 +29,11 @@ class UIState: unifiers = [ElementDao, AttributeDao, WhenDao] - def __init__(self, ui_files, domain_state, constants): + def __init__(self, ui_files, domain_state, constants_arg_list): self._factbase = None self._ui_files = ui_files self._domain_state = domain_state - self._constants = constants + self._constants_arg_list = constants_arg_list def __str__(self): s = "\nUI State:\n=========\n" @@ -55,8 +56,12 @@ def ui_control(self): Generates a ClingoControl Object to compute the UI state """ - uictl = Control(["0", "--warn=none"] + self._constants) - + log.debug( + uictl_log( + f'uictl = Control(["0", "--warn=none"] + {self._constants_arg_list})' + ) + ) + uictl = Control(["0", "--warn=none"] + self._constants_arg_list) for f in self._ui_files: path = Path(f) if not path.is_file(): @@ -72,10 +77,24 @@ def ui_control(self): log.critical(str(e)) raise e - uictl.add("base", [], self._domain_state) + log.debug(uictl_log(f'uictl.add("base", [], {self._domain_state})')) + try: + uictl.add("base", [], self._domain_state) + except RuntimeError as e: + message = """The domain state is not well constructed.\ + Make sure there are no #show statements in the domain files that have tuples as output (without function name).\ + Consider turing on the debug logs with server-log-level=DEBUG to inspect the domain state""" + log.critical(message) + raise e + log.debug( + uictl_log( + 'uictl.add("base", [], "#show elem/3. #show attr/3. #show when/4.")' + ) + ) uictl.add("base", [], "#show elem/3. #show attr/3. #show when/4.") - uictl.ground([("base", [])], ClingraphContext()) + log.debug(uictl_log('uictl.ground([("base", [])], ClingraphContext())')) + uictl.ground([("base", [])], ClingraphContext()) return uictl def update_ui_state(self): @@ -85,12 +104,19 @@ def update_ui_state(self): log.debug("Computing UI state\n") uictl = self.ui_control() + defined = False + log.debug(uictl_log("uictl.solve(yield_=True)")) with uictl.solve(yield_=True) as result: for m in result: model_symbols = m.symbols(shown=True, atoms=True) + defined = True break - + if not defined: + log.critical("UI encoding was UNSATISFIABLE") + raise RuntimeError("UI encoding was UNSATISFIABLE") self._factbase = clorm.unify(self.__class__.unifiers, model_symbols) + # log.debug(uictl_log(". ".join([str(s) for s in model_symbols]))) + log.debug(uictl_log(self._factbase.asp_str(width=100000, commented=True))) def add_message(self, title, message, attribute_type="info"): """ @@ -225,7 +251,7 @@ def replace_images_with_b64(self, image_attribute_key="image"): with open(attribute_value, "rb") as image_file: encoded_string = image_to_b64(image_file.read()) new_attribute = AttributeDao( - Raw(Function(str(attribute.id), [])), + Raw(parse_term(str(attribute.id))), Raw(Function(str(attribute.key), [])), Raw(String(str(encoded_string))), ) diff --git a/clinguin/server/presentation/backend_policy_dto.py b/clinguin/server/presentation/backend_operation_dto.py similarity index 82% rename from clinguin/server/presentation/backend_policy_dto.py rename to clinguin/server/presentation/backend_operation_dto.py index 6b225b36..11f125e0 100644 --- a/clinguin/server/presentation/backend_policy_dto.py +++ b/clinguin/server/presentation/backend_operation_dto.py @@ -1,5 +1,5 @@ """ -Module that contains the BackendPolicyDto +Module that contains the BackendOperationDto """ from typing import List, Optional @@ -16,7 +16,7 @@ class ContextDto(BaseModel): value: str -class BackendPolicyDto(BaseModel): +class BackendOperationDto(BaseModel): """ Needed by the endpoints to get convert the transported json into something useful for the backend. """ diff --git a/clinguin/server/presentation/endpoints.py b/clinguin/server/presentation/endpoints.py index c68f1153..feae484e 100644 --- a/clinguin/server/presentation/endpoints.py +++ b/clinguin/server/presentation/endpoints.py @@ -1,6 +1,7 @@ """ Module for the Endpoints class. """ + import logging import traceback from importlib.metadata import metadata @@ -11,7 +12,8 @@ from clinguin.utils import Logger from ...utils import get_server_error_alert -from .backend_policy_dto import BackendPolicyDto +from ...utils.logger import colored_text +from .backend_operation_dto import BackendOperationDto # Self Defined from .endpoints_helper import EndpointsHelper @@ -26,7 +28,7 @@ class Endpoints: Methods: health -> Json : Returns name, version and description of clinguin. standard_executor -> Json : Returns the default GUI representation as Json that the Backend provides. - policy_executor -> Json : Executes a policy defined by the Json passed with the Post request. + operation_executor -> Json : Executes a operation defined by the Json passed with the Post request. """ last_response = None @@ -40,7 +42,7 @@ def __init__(self, args) -> None: # Definition of endpoints self.router.add_api_route("/health", self.health, methods=["GET"]) self.router.add_api_route("/", self.standard_executor, methods=["GET"]) - self.router.add_api_route("/backend", self.policy_executor, methods=["POST"]) + self.router.add_api_route("/backend", self.operation_executor, methods=["POST"]) self._backend = args.backend(args) @@ -63,10 +65,12 @@ async def standard_executor(self): calls the get() method of the respective backend (clinguin/clingo/clingraph/etc.). The get() method is implemented by every backend. """ - self._logger.info("--> %s: get()", self._backend.__class__.__name__) + self._logger.info(colored_text("=>=>=>=>=>=>=>=>=> GET", "GREEN")) + self._logger.info("%s get()", colored_text("-->", "GREEN")) try: json = self._backend.get() self.last_response = json + self._logger.info(colored_text("--------------------", "GREEN")) return json except Exception as e: self._logger.error("Handling global exception in endpoint") @@ -74,7 +78,7 @@ async def standard_executor(self): self._logger.error(traceback.format_exc()) return get_server_error_alert(str(e), self.last_response) - async def policy_executor(self, backend_call_string: BackendPolicyDto): + async def operation_executor(self, backend_call_string: BackendOperationDto): """ Post endpoint (/backend) of the server-backend, which can be used to call specific methods/functions of the backend. @@ -82,7 +86,8 @@ async def policy_executor(self, backend_call_string: BackendPolicyDto): including arguments. For example: {'function':'add_assumption(p(1))'} """ - self._logger.debug("Got endpoint") + + self._logger.info(colored_text("=>=>=>=>=>=>=>=>=> POST", "GREEN")) try: try: @@ -93,7 +98,7 @@ async def policy_executor(self, backend_call_string: BackendPolicyDto): raise Exception(msg) from exc if symbol.type != clingo.SymbolType.Function: - raise Exception(f"Policy {symbol} is not a function") + raise Exception(f"Operation {symbol} is not a function") # pylint: disable=protected-access if hasattr(backend_call_string, "context"): @@ -105,7 +110,6 @@ async def policy_executor(self, backend_call_string: BackendPolicyDto): policies = [] if function_name == "": policies = symbol.arguments - self._logger.info("Calling multiple policies") else: policies = [symbol] @@ -116,17 +120,17 @@ async def policy_executor(self, backend_call_string: BackendPolicyDto): call_args = ",".join(function_arguments) self._logger.info( - "--> %s: %s(%s))", - self._backend.__class__.__name__, - function_name, - call_args, + "%s %s(%s)", colored_text("-->", "GREEN"), function_name, call_args ) EndpointsHelper.call_function( self._backend, function_name, function_arguments, {} ) + self._logger.info(" get(%s)", colored_text("-->", "GREEN")) + self.last_response = self._backend.get() + self._logger.info(colored_text("--------------------", "GREEN")) return self.last_response except Exception as e: diff --git a/clinguin/server/presentation/endpoints_helper.py b/clinguin/server/presentation/endpoints_helper.py index 7c7e9066..54c0cba4 100644 --- a/clinguin/server/presentation/endpoints_helper.py +++ b/clinguin/server/presentation/endpoints_helper.py @@ -1,6 +1,7 @@ """ Module that contains the EndpointsHelper class. """ + import logging from ...utils import CaseConverter, Logger @@ -37,6 +38,6 @@ def call_function(cls, backend, name, args, kwargs): if found: result = function(*args, **kwargs) return result - error_string = "Could not find function " + name + " in backend." + error_string = "Could not find function '" + name + "' in backend." logger.error(error_string) raise Exception(error_string) diff --git a/clinguin/server_helper.py b/clinguin/server_helper.py index 243e1d40..ee56adc7 100644 --- a/clinguin/server_helper.py +++ b/clinguin/server_helper.py @@ -1,6 +1,7 @@ """ Responsible for starting the server """ + import uvicorn from fastapi import FastAPI from starlette.middleware.cors import CORSMiddleware diff --git a/clinguin/show_frontend_syntax_enum.py b/clinguin/show_frontend_syntax_enum.py index 70949b9d..89bbb9b9 100644 --- a/clinguin/show_frontend_syntax_enum.py +++ b/clinguin/show_frontend_syntax_enum.py @@ -1,6 +1,7 @@ """ Defines the possibilities how to show the syntax. """ + from enum import Enum, auto diff --git a/clinguin/utils/__init__.py b/clinguin/utils/__init__.py index bbc95fb6..81b06a64 100644 --- a/clinguin/utils/__init__.py +++ b/clinguin/utils/__init__.py @@ -1,6 +1,7 @@ """ The utils module of clinguin - contains some useful tools for clinguin. """ + from .attribute_types.utils.standard_text_processing import StandardTextProcessing from .case_converter import CaseConverter, image_to_b64 from .custom_args import CustomArgs diff --git a/clinguin/utils/annotations.py b/clinguin/utils/annotations.py new file mode 100644 index 00000000..c65661f2 --- /dev/null +++ b/clinguin/utils/annotations.py @@ -0,0 +1,52 @@ +""" +Annotations used to express overwrites and extensions of methods. +They enhance documentation and help to understand the code. +""" + + +def extends(super_cls): + """ + Decorator to indicate that a method extends a method of a super class. + Args: + super_cls (_type_): The super class. + """ + + def decorator(func): + def wrapper(self, *args, **kwargs): + return func(self, *args, **kwargs) + + wrapper.__name__ = func.__name__ + wrapper.__doc__ = ( + (func.__doc__ or "") + + f""" + Important: + Extends :meth:`{super_cls.__name__}.{func.__name__}` + """ + ) + return wrapper + + return decorator + + +def overwrites(super_cls): + """ + Decorates a method to indicate that it overwrites a method of a super class. + Args: + super_cls (_type_): The super class. + """ + + def decorator(func): + def wrapper(self, *args, **kwargs): + return func(self, *args, **kwargs) + + wrapper.__name__ = func.__name__ + wrapper.__doc__ = ( + (func.__doc__ or "") + + f""" + Important: + Overwrites :meth:`{super_cls.__name__}.{func.__name__}` + """ + ) + return wrapper + + return decorator diff --git a/clinguin/utils/attribute_types/__init__.py b/clinguin/utils/attribute_types/__init__.py index 7711caa9..a9262060 100644 --- a/clinguin/utils/attribute_types/__init__.py +++ b/clinguin/utils/attribute_types/__init__.py @@ -1,6 +1,7 @@ """ Module which contains all possible attribute- and callback-types. """ + from .boolean import BooleanType from .child_layout import ChildLayoutType from .color import ColorType diff --git a/clinguin/utils/attribute_types/child_layout.py b/clinguin/utils/attribute_types/child_layout.py index 6ae39990..73154b4b 100644 --- a/clinguin/utils/attribute_types/child_layout.py +++ b/clinguin/utils/attribute_types/child_layout.py @@ -1,6 +1,7 @@ """ Module that contains the ChildLayoutType. """ + from enum import auto from .enum import EnumType diff --git a/clinguin/utils/attribute_types/flex_direction.py b/clinguin/utils/attribute_types/flex_direction.py index e4c2ffca..d77f858b 100644 --- a/clinguin/utils/attribute_types/flex_direction.py +++ b/clinguin/utils/attribute_types/flex_direction.py @@ -1,6 +1,7 @@ """ Module that contains the FlexDirectionType """ + from enum import auto from .enum import EnumType diff --git a/clinguin/utils/attribute_types/font_families.py b/clinguin/utils/attribute_types/font_families.py index 244fc624..87df2f70 100644 --- a/clinguin/utils/attribute_types/font_families.py +++ b/clinguin/utils/attribute_types/font_families.py @@ -2,7 +2,6 @@ Module that contains the FontFamiliesType. """ - from .type import Type from .utils.standard_text_processing import StandardTextProcessing diff --git a/clinguin/utils/attribute_types/font_weight.py b/clinguin/utils/attribute_types/font_weight.py index 4d496380..508ecce8 100644 --- a/clinguin/utils/attribute_types/font_weight.py +++ b/clinguin/utils/attribute_types/font_weight.py @@ -1,6 +1,7 @@ """ Module that contains the FontWeightType. """ + import itertools from enum import auto diff --git a/clinguin/utils/attribute_types/image.py b/clinguin/utils/attribute_types/image.py index 090581e6..f7dd2938 100644 --- a/clinguin/utils/attribute_types/image.py +++ b/clinguin/utils/attribute_types/image.py @@ -1,6 +1,7 @@ """ This module contains the ImageType class. """ + import base64 from .type import Type diff --git a/clinguin/utils/attribute_types/popup_types.py b/clinguin/utils/attribute_types/popup_types.py index 154b33f5..dcbe80c2 100644 --- a/clinguin/utils/attribute_types/popup_types.py +++ b/clinguin/utils/attribute_types/popup_types.py @@ -1,6 +1,7 @@ """ Module that contains the PopupTypesType. """ + from enum import auto from .enum import EnumType diff --git a/clinguin/utils/logger.py b/clinguin/utils/logger.py index c1f7360b..67b5832b 100644 --- a/clinguin/utils/logger.py +++ b/clinguin/utils/logger.py @@ -12,7 +12,8 @@ "GREEN": GREEN, "BLUE": BLUE, "RED": RED, - "GRAY": MAGENTA, + "MAGENTA": MAGENTA, + "CYAN": CYAN, } RESET_SEQ = "\033[0m" @@ -27,6 +28,20 @@ def colored_text(txt, color): return COLOR_SEQ % (30 + COLOR_NAMES[color]) + txt + RESET_SEQ +def uictl_log(text): + """ + Adds the color of the ui control to the given text for logging + """ + return colored_text(text, "CYAN") + + +def domctl_log(text): + """ + Adds the color of the domain control to the given text for logging + """ + return colored_text(text, "MAGENTA") + + class Logger: """ Provides methods to set the logging config appropriatly. In principle two loggers exists - diff --git a/clinguin/utils/transformer.py b/clinguin/utils/transformer.py new file mode 100644 index 00000000..6bcedd7c --- /dev/null +++ b/clinguin/utils/transformer.py @@ -0,0 +1,31 @@ +""" +A clingo transformer that checks if files are using a given predicate signature +""" + +import clingo.ast as _ast + + +class UsesSignatureTransformer(_ast.Transformer): + """ + A transformer that checks if files are using a given predicate signature + """ + + def __init__(self, name: str, arity: int) -> None: + self.name = name + self.arity = arity + self.contained = False + + def visit_Function(self, node: _ast.AST) -> _ast.AST: + """ + Visits a function node and checks if it is the predicate signature we are looking for + """ + if node.name == self.name and len(node.arguments) == self.arity: + self.contained = True + return node + + def parse_files(self, paths) -> str: + """ + Parses the files and returns a string with the transformed program. + """ + # pylint: disable=unnecessary-lambda + _ast.parse_files([str(p) for p in paths], lambda stm: self(stm)) diff --git a/clinguin_download.lp b/clinguin_download.lp new file mode 100644 index 00000000..2e9e4a9a --- /dev/null +++ b/clinguin_download.lp @@ -0,0 +1,18 @@ +person("Max"). +person("Phil"). +person("Anna"). +include("Max"). +include("Phil"). +include("Anna"). +seat(1,1). +seat(2,1). +seat(1,2). +seat(1,3). +seat(2,3). +seat(3,3). +assign(seat(1,3),"Max"). +assign(seat(2,1),"Phil"). +assign(seat(1,2),"Anna"). +table(1,"Table 1"). +table(2,"Table 2"). +table(3,"Table 3"). \ No newline at end of file diff --git a/docs/_static/css/custom.css b/docs/_static/css/custom.css index 85b2076b..1c5b62fc 100644 --- a/docs/_static/css/custom.css +++ b/docs/_static/css/custom.css @@ -1,27 +1,29 @@ div.admonition.example { -border-color: hsl(257, 20%, 50%); -background-color: hsl(257, 20%, 80%); + border-color: hsl(257, 20%, 50%); + background-color: hsl(257, 20%, 80%); } -div.admonition.example > .admonition-title { -color: white; -background-color: hsl(257, 20%, 50%); +div.admonition.example>.admonition-title { + color: white; + background-color: hsl(257, 20%, 50%); } -div.admonition.example > .admonition-title::before { - content: "\f2a7"; - } +div.admonition.example>.admonition-title::before { + content: "\f2a7"; +} .sidebar-logo { margin: inherit; } -.sidebar-logo-container{ - max-width: 20%!important; + +.sidebar-logo-container { + max-width: 20% !important; margin-top: 0.2rem; margin-right: 0.2rem; justify-content: flex-end; display: flex; } + .sidebar-brand-text { text-align: center !important; /* color: #004C6E !important; */ diff --git a/docs/clinguin/backends/ClingoBackend.rst b/docs/clinguin/backends/ClingoBackend.rst index 5cf9061e..4243202d 100644 --- a/docs/clinguin/backends/ClingoBackend.rst +++ b/docs/clinguin/backends/ClingoBackend.rst @@ -11,24 +11,37 @@ Implements all basic clingo functionality for single-shot solving. .. currentmodule:: clinguin.server.application.backends +Public operations ++++++++++++++++++ + +Can be used as `OPERATION` in the actions of the :ref:`ui-state` + .. autoclass:: ClingoBackend :members: :noindex: - :exclude-members: register_options, get + :exclude-members: register_options, get, __init__ + Domain state constructors -+++++++++++++++++++++++++ ++++++++++++++++++++++++++ + + +.. autoproperty:: ClingoBackend._ds_context + +.. autoproperty:: ClingoBackend._ds_model + +.. autoproperty:: ClingoBackend._ds_brave -The domain state also inclues domain constructors from the parent class. +.. autoproperty:: ClingoBackend._ds_cautious -.. automethod:: ClingoBackend._ds_context +.. autoproperty:: ClingoBackend._ds_brave_optimal -.. automethod:: ClingoBackend._ds_brave +.. autoproperty:: ClingoBackend._ds_cautious_optimal -.. automethod:: ClingoBackend._ds_cautious +.. autoproperty:: ClingoBackend._ds_opt -.. automethod:: ClingoBackend._ds_model +.. autoproperty:: ClingoBackend._ds_unsat -.. automethod:: ClingoBackend._ds_unsat +.. autoproperty:: ClingoBackend._ds_browsing -.. automethod:: ClingoBackend._ds_browsing \ No newline at end of file +.. autoproperty:: ClingoBackend._ds_constants \ No newline at end of file diff --git a/docs/clinguin/backends/ClingoDLBackend.rst b/docs/clinguin/backends/ClingoDLBackend.rst index eefc641a..0ffebdbe 100644 --- a/docs/clinguin/backends/ClingoDLBackend.rst +++ b/docs/clinguin/backends/ClingoDLBackend.rst @@ -4,7 +4,7 @@ ClingoDLBackend Extends :ref:`ClingoMultishotBackend` with functionality to accept clingo-dl programs as input. .. admonition:: Examples - + * `jobshop `_ @@ -13,11 +13,11 @@ The :ref:`domain-state` is then enhanced by predicate ``_clinguin_assign/2``. .. admonition:: Examples - + In the jobshop example, the assignment is used for the label of the job. - .. code-block:: + .. code-block:: elem(tctime(T,ST), label, tc(T,ST)):- _clinguin_assign((T,ST),Start). attr(tctime(T,ST), label, @concat("","@",Start,"-",Start+ET)):- _clinguin_assign((T,ST),Start), executionTime(T,ST,ET). @@ -30,14 +30,23 @@ The :ref:`domain-state` is then enhanced by predicate ``_clinguin_assign/2``. .. currentmodule:: clinguin.server.application.backends +Public operations ++++++++++++++++++ + +Can be used as `OPERATION` in the actions of the :ref:`ui-state` +Also includes all public operations from the :ref:`ClingoMultishotBackend`. + .. autoclass:: ClingoDLBackend :members: :noindex: :exclude-members: register_options -**Domain state constructors** +Domain state constructors ++++++++++++++++++++++++++ + +.. important:: -The domain state also inclues domain constructors from the parent class. + The domain state also inclues domain constructors from the :ref:`ClingoMultishotBackend` -.. automethod:: ClingoDLBackend._ds_assign +.. autoproperty:: ClingoDLBackend._ds_assign diff --git a/docs/clinguin/backends/ClingoMultishotBackend.rst b/docs/clinguin/backends/ClingoMultishotBackend.rst index 2079b6cc..050e7ebf 100644 --- a/docs/clinguin/backends/ClingoMultishotBackend.rst +++ b/docs/clinguin/backends/ClingoMultishotBackend.rst @@ -5,21 +5,32 @@ ClingoMultishotBackend Extends :ref:`ClingoBackend` with functionality for multi-shot solving. Adds options to access and store assumptions and externals. .. admonition:: Examples - + * `sudoku `_ * `jobshop `_ * `placement `_ + * `placement_optimized `_ .. currentmodule:: clinguin.server.application.backends +Public operations ++++++++++++++++++ + +Can be used as `OPERATION` in the actions of the :ref:`ui-state` +Also includes all public operations from the :ref:`ClingoBackend`. + .. autoclass:: ClingoMultishotBackend :members: :noindex: :exclude-members: register_options -**Domain state constructors** -The domain state also inclues domain constructors from the parent class. +Domain state constructors ++++++++++++++++++++++++++ + +.. important:: + + The domain state also inclues domain constructors from the :ref:`ClingoBackend` -.. automethod:: ClingoMultishotBackend._ds_assume \ No newline at end of file +.. autoproperty:: ClingoMultishotBackend._ds_assume \ No newline at end of file diff --git a/docs/clinguin/backends/ClingraphBackend.rst b/docs/clinguin/backends/ClingraphBackend.rst index 6403510c..ef066d86 100644 --- a/docs/clinguin/backends/ClingraphBackend.rst +++ b/docs/clinguin/backends/ClingraphBackend.rst @@ -9,7 +9,7 @@ Extends :ref:`ClingoMultishotBackend` with functionality to render and interact To use this backend you might need to manually install Graphviz. See the `clingraph instalaltion `_ for details. .. admonition:: Examples - + * `graph_coloring `_ * `tree_browser `_ @@ -20,25 +20,25 @@ This backend will allow the use of clingraph images inside a canvas element. To use this feature, the user must provide a clingraph visualization encoding via the command line in argument ``--clingraph-files``. The input to this encoding will be the :ref:`domain-state` (same input as for the :ref:`ui-files`). -.. tip:: +.. tip:: - The clingraph encoding will also have information about brave, and cautious consequences. + The clingraph encoding will also have information about brave, and cautious consequences. So dont be afraid to use it in the graphs! -A clinguin ``canvas`` is enhanced with an attribute ``image_type``. +A clinguin ``canvas`` is enhanced with an attribute ``image_type``. When the value for this attirbute starts with ``clingraph`` it will be substituted by the :ref:`ClingraphBackend` for the ``svg`` representation of the graph. By default the graph named ``default`` will be used, another graph with name ``X`` can be used by setting the image type to ``clingraph__X`` -.. note:: +.. note:: To use this backend with the :ref:`TkinterFrontend`, you must provide the option ``--intermediate-format=png``. .. admonition:: Examples - - + + Creates a canvas in a window that will contain the default clingraph graph - .. code-block:: + .. code-block:: elem(c, canvas, window). attr(c, image_type, clingraph). @@ -56,11 +56,11 @@ This type of elements require the identifier of the clingraph node/edge in argum to link the interactivity with the svg element generated by clingraph. .. admonition:: Examples - + Continuation of the previous example. - .. code-block:: + .. code-block:: elem(n(X), svg_node, c). attr(n(X), clingraph_id, X):- node(X). @@ -68,26 +68,41 @@ to link the interactivity with the svg element generated by clingraph. ``node(X)`` is generated in the `ui-files` -.. tip:: +.. tip:: Notice that the clingraph nodes are not accesible by the `ui-files`. Therefore, nodes of the clingraph images have to be generated again in this encoding. - + Consider separating the clingraph node generation into a diferent encoding, and then including it in the UI and clingraph encodings. -.. warning:: +.. warning:: The interactive feature only work in web based frontends, not in Tkinter. .. note:: - ``update`` actions applied to clingraph elements (`svg_nodes`) will update the html style, not the graphviz properties. - Therefore, it can be used to set things like visibility and opacity but not internal clingraph values. + ``update`` actions applied to clingraph elements (`svg_nodes`) will update the html style, not the graphviz properties. + Therefore, it can be used to set things like visibility and opacity but not internal clingraph values. +Public operations ++++++++++++++++++ + +Can be used as `OPERATION` in the actions of the :ref:`ui-state` +Also includes all public operations from the :ref:`ClingoMultishotBackend`. + .. autoclass:: ClingraphBackend :members: :noindex: :exclude-members: register_options + +Domain state constructors ++++++++++++++++++++++++++ + +.. important:: + + The domain state also inclues domain constructors from the :ref:`ClingoMultishotBackend` + + diff --git a/docs/clinguin/backends/Custom.rst b/docs/clinguin/backends/Custom.rst deleted file mode 100644 index 9bb8707f..00000000 --- a/docs/clinguin/backends/Custom.rst +++ /dev/null @@ -1,162 +0,0 @@ -Creating your own backend -------------------------- - -By creating your own backend you can extend functionality and edit the existing server workflow. -If you are using clingo, we highly recomend extending the :ref:`ClingoMultishotBackend` to create your own. -This backend contains multiple functionalities already built in wich can be overwritten and extended. -The following explanation assumes that this is the backend that is being extended. - -.. note:: - - If you will not use multi-shot functionalities, assumptions and exterals - you can also extend the :ref:`ClingoBackend`. - -.. note:: **Using your backend** - - To make your custom backend avaliable to clinguin, you must provide the path via the command line argument ``--custom-classes``. - -In what follows we divide the possible extensions. For more implementation details, look at the -`source code `_ -All the presented methods can be overwritten to your desire. - - -Constructor -++++++++++++ - -In the constructor one can add custom arguments and new domain-state constructors. - -.. admonition:: Examples - - - * `explanation_backend `_ - * `clingraph_backend `_ - * `clingodl_backend `_ - -.. currentmodule:: clinguin.server.application.backends - -.. automethod:: ClingoMultishotBackend.__init__ - - -Register options -++++++++++++++++ - -By overwritting this class method, one can add new arguments to the command line. -These options will be added under a group for the created backend. - -.. admonition:: Examples - - - * `explanation_backend `_ - * `clingraph_backend `_ - -.. automethod:: ClingoMultishotBackend.register_options - -Setups -++++++ - -These methods will handle the arguments depending on the clinguin state. -Some are called at the start after a restart or when a change is done in the solving. -When a custom argument is added to the backend if will likely need to be handled here. - -.. admonition:: Examples - - - * `explanation_backend `_ - * `clingodl_backend `_ - - -.. automethod:: ClingoMultishotBackend._init_setup - -.. automethod:: ClingoMultishotBackend._init_ctl - -.. automethod:: ClingoMultishotBackend._outdate - -.. automethod:: ClingoMultishotBackend._is_browsing - - -Solving -+++++++ - -These methods are involved on how the domain control is solved. -They can be ovweritten for theory extensions among other things. - -.. admonition:: Examples - - - * `explanation_backend `_ - * `clingodl_backend `_ - -.. automethod:: ClingoMultishotBackend._ground - -.. automethod:: ClingoMultishotBackend._prepare - -.. automethod:: ClingoMultishotBackend._on_model - -.. automethod:: ClingoMultishotBackend._add_atom - - -UI updates -++++++++++ - -If any changes want to be made in how the UI state is computed they -can be made by overwritting this method. - -.. admonition:: Examples - - - * `clingraph_backend `_ - - -.. automethod:: ClingoMultishotBackend._update_ui_state - - -Domain state -++++++++++++ - -These methods take care of generating the :ref:`domain-state`. -When new information wants to be added a domain state constructor can be included. -These domain constructors will be automatically called by the `_domain_state` property. -But, they need to be previously registered in the constructor using the functions below. - -.. admonition:: Examples - - - * `explanation_backend `_ - * `clingodl_backend `_ - * `clingraph_backend `_ - -.. note:: - - Some of the domain constructors involve extra work so they are handled as ``@cache_property``. - -.. warning:: - - Make sure any domain constructor added is a property with anotation ``@property`` - -.. automethod:: ClingoMultishotBackend._add_domain_state_constructor - -.. automethod:: ClingoMultishotBackend._clear_cache - -.. note:: - - Domain state constructors for this backend are showed in the section above. - These constructors can also be overwritten if necessary. - -Output -++++++ - -The propery method below is used to generate an output program for downloads - -.. automethod:: ClingoMultishotBackend._output_prg - - -Public operations -+++++++++++++++++ - -Each backend can define any number public operations or overwrite the existing ones. -These operations are any public method of the class and will be accessible to the UI. - -.. admonition:: Examples - - - * `explanation_backend `_ diff --git a/docs/clinguin/backends/ExplanationBackend.rst b/docs/clinguin/backends/ExplanationBackend.rst index 8e039b7b..4a50b8a0 100644 --- a/docs/clinguin/backends/ExplanationBackend.rst +++ b/docs/clinguin/backends/ExplanationBackend.rst @@ -1,51 +1,63 @@ ExplanationBackend ------------------ -Extends :ref:`ClingoMultishotBackend` with functionality to compute Minumal Unsatisfiable Cores (MUC) when there is an UNSAT output. +Extends :ref:`ClingoMultishotBackend` with functionality to compute Minumal Unsatisfiable Sets (MUS) when there is an UNSAT output. .. admonition:: Examples - + * `sudoku_advanced `_ * `sudoku_explained `_ - When the :ref:`domain-control` produces an unsatisfiable output this backend will perform subsequents calls to find the subset minimal assumptions that caused the unsatisfiablity. -These assuptions not only include those selected by the user, but also can be part of the input. -This is needed when some of the input facts also want to be shown to the user. -Therefore, this backend adds an argument to the command line: ``--assumption-signature`` -in which the user can select which signatures will be considered as assumptions in the MUC computation. +The :ref:`domain-state` is then enhanced by the MUS using predicate ``_clinguin_mus/1``. -.. currentmodule:: clinguin.server.application.backends +.. admonition:: MUS Basic Example + For instance in the program ``{a(1..4)}. :-a(1),a(2). :-a(3).`` if it is solved considering ``a(1)`` ``a(3)`` and ``a(4)`` as assumptions, + it will lead to an unsatisfiable output. + The MUS will be a subset of these assumptions such that removing any assumption will make the program satisfiable. + Therefore, ``a(3)`` would be the only member in the MUS since it alone causes the unsatisfiablity with the last constraint. + As such, the atom ``_clinguin_mus(a(3))`` will be added to the :ref:`domain-state`. -.. admonition:: Examples - - The `sudoku_advanced `_ example - provides the argument ``--assumption-signature=initial,3`` so that all the initial values of the sudoku - are also considered in the unsat core and therefore shown to the user. +.. admonition:: Example Sudoku + + + In the sudoku, the MUS information will show in red the faulty assumptions. + + .. code-block:: - .. code-block:: + attr(pos(X,Y),class,"bg-primary"):-pos(X,Y), not _clinguin_mus(sudoku(X,Y,_)), not _clinguin_mus(initial(X,Y,_)). + attr(pos(X,Y),class,"bg-danger"):-pos(X,Y), _clinguin_mus(sudoku(X,Y,_)). + attr(pos(X,Y),class,"bg-danger"):-pos(X,Y), _clinguin_mus(initial(X,Y,_)). - attr(pos(X,Y),class,"bg-primary"):-pos(X,Y), not _clinguin_muc(sudoku(X,Y,_)), not _clinguin_muc(initial(X,Y,_)). - attr(pos(X,Y),class,"bg-danger"):-pos(X,Y), _clinguin_muc(sudoku(X,Y,_)). - attr(pos(X,Y),class,"bg-danger"):-pos(X,Y), _clinguin_muc(initial(X,Y,_)). +**Including instance facts in the MUS** + + +This is needed when some of the input facts also want to be shown to the user. +The ExplanationBackend adds an argument to the command line: ``--assumption-signature`` +in which the user can select which signatures will be considered as assumptions in the MUS computation. +To achive this behaviour, the domain files will be internally transformed, +so that all facts for atoms matching the signatures provided in this arguments are considered choices and automatically added as true assumptions. + +.. currentmodule:: clinguin.server.application.backends -The :ref:`domain-state` is then enhanced by the MUC using predicate ``muc/1``. .. admonition:: Examples - - In the sudoku, the MUC information will show in red the faulty assumptions. - .. code-block:: + The `sudoku_advanced `_ example + provides the argument ``--assumption-signature=initial,3``. By doing so, all the initial values in the instance + of the sudoku are transfored into choices and enforced by considering them as assumptions. + This way, they are also considered in unsatisfiable set and shown to the user. - attr(pos(X,Y),class,"bg-primary"):-pos(X,Y), not _clinguin_muc(sudoku(X,Y,_)), not _clinguin_muc(initial(X,Y,_)). - attr(pos(X,Y),class,"bg-danger"):-pos(X,Y), _clinguin_muc(sudoku(X,Y,_)). - attr(pos(X,Y),class,"bg-danger"):-pos(X,Y), _clinguin_muc(initial(X,Y,_)). +Public operations ++++++++++++++++++ +Can be used as `OPERATION` in the actions of the :ref:`ui-state`. +Also includes all public operations from the :ref:`ClingoMultishotBackend`. .. autoclass:: ExplanationBackend :members: @@ -54,7 +66,11 @@ The :ref:`domain-state` is then enhanced by the MUC using predicate ``muc/1``. Domain state constructors ++++++++++++++++++++++++++ + +.. important:: + + The domain state also inclues domain constructors from the :ref:`ClingoMultishotBackend` -The domain state also inclues domain constructors from the parent class. +.. autoproperty:: ExplanationBackend._ds_mus -.. automethod:: ExplanationBackend._ds_muc \ No newline at end of file diff --git a/docs/clinguin/backends/index.rst b/docs/clinguin/backends/index.rst index 5bee4c4c..279546c6 100644 --- a/docs/clinguin/backends/index.rst +++ b/docs/clinguin/backends/index.rst @@ -1,12 +1,13 @@ -Backends -######## +.. _Backends: -The backends listed here are provided with clinguin. +|:brain:| Backends +################## + +The backends listed here are provided with clinguin. All available functions that can be referenced in the :ref:`ui-state` for each backend are listed below. Notice that all backends will also include the functionalities of the ones they extend. -The source code for the backends can be found in `github `_. .. currentmodule:: clinguin.server.application.backends @@ -22,11 +23,3 @@ Built-in Backends ClingraphBackend.rst ExplanationBackend.rst ClingoDLBackend.rst - -Customization -+++++++++++++ - -.. toctree:: - :maxdepth: 1 - - Custom.rst \ No newline at end of file diff --git a/docs/clinguin/development.rst b/docs/clinguin/development/angular.rst similarity index 90% rename from docs/clinguin/development.rst rename to docs/clinguin/development/angular.rst index 7bbf895b..9f63cc61 100644 --- a/docs/clinguin/development.rst +++ b/docs/clinguin/development/angular.rst @@ -1,34 +1,32 @@ -Contributing -============ - Angular Frontend Development -++++++++++++++++++++++++++++ +============================ This section is for development and contribution in the AngularFrontend. -For instance to create new element types. +For instance to create new element types. Unlike the custom backends, this changes must be done inside the source code of *clinguin*. +Make sure you have installed from source. .. warning:: - + The following is only required for making changes to the web-frontend. Requirements ------------ -- `NPM `_ -- `NODE `_ -- `Angular `_ + - `NPM `_ + - `NODE `_ + - `Angular `_ -Usage ------ +How to run changes +------------------ This process shows changes made on the `angular_fronted` folder in real time. 1. Start the server - - Replace ``clinguin client-server`` by ``python start.py server`` and remove argument ``--frontend=AngularFrontend`` from the command line of the desired example + - Replace ``clinguin client-server`` by ``python start.py server`` on the desired example 2. Start the web client - Open a new tab - - Navigate to the folder `/angular_frontend`. + - Navigate to the folder `/angular_frontend`. - Type ``ng serve`` - Go to the URL `127.0.0.1:4200` in your web-browser. @@ -46,6 +44,8 @@ Be sure that you have `make` and all the dev-tools for the web-frontend installe This builds the frontend, and then installs `clinguin`. + + Internal Workflow ----------------- @@ -79,5 +79,5 @@ Important services and their description: * **ContextMenuService**: Data-store (non-RXJS type) for the context-menus. Needed to ensure the context-menus are closed/opened properly (indirectly) Implements useful methods that are needed for the context. * **ConfigService**: Reads the configuration file, where the *server-url* and *server-port* is stored. * **LocatorService**: Helper service for injecting services into functions. -* **CallbackHelperService**: Handles that the correct event-listener is created for the correct event. Currently handled do-policy-types are *update*, *context*, *call*/*callback*, and *show_context_menu*. +* **CallbackHelperService**: Handles that the correct event-listener is created for the correct event. Currently handled do-operation-types are *update*, *context*, *call*/*callback*, and *show_context_menu*. * **AttributeHelperService**: This service ensures a translation between commonly used attributes in clinguin and their corresponding part in *CSS*. Note that it is possible to set **CSS styles directly**, via the *setAttributesDirectly* method. This method is by default always called for all attributes, just note that the attribute-keys have to be in **camelCase** notation (e.g., *align-items* to *alignItems*). diff --git a/docs/clinguin/development/api.rst b/docs/clinguin/development/api.rst new file mode 100644 index 00000000..bd83102a --- /dev/null +++ b/docs/clinguin/development/api.rst @@ -0,0 +1,16 @@ +API ++++ + +Detailed API for all the classes and functions in the server of the clinguin package. + +.. automodule:: clinguin.server.application.backends + :members: + :undoc-members: + :show-inheritance: + :private-members: + +.. autoclass:: clinguin.server.data.ui_state.UIState + :members: + :undoc-members: + :show-inheritance: + :private-members: diff --git a/docs/clinguin/development/contributing.rst b/docs/clinguin/development/contributing.rst new file mode 100644 index 00000000..6e3d2935 --- /dev/null +++ b/docs/clinguin/development/contributing.rst @@ -0,0 +1,46 @@ +Contributing +============ + +To improve code quality, we use nox to run linters, type checkers, unit +tests, documentation and more. We recommend installing nox using pipx to have +it available globally. + +.. code-block:: console + + # install + python -m pip install pipx + python -m pipx install nox + + # run all sessions + nox + + # list all sessions + nox -l + + # run individual session + nox -s session_name + + # run individual session (reuse install) + nox -Rs session_name + +Note that the nox sessions create [editable] installs. In case there are issues, +try recreating environments by dropping the `-R` option. If your project is +incompatible with editable installs, adjust the `noxfile.py` to disable them. + + +Installing from source ++++++++++++++++++++++++ + +The project is hosted on `github `_ and can +also be installed from source. We recommend this only for development purposes. + +.. note:: + The pip package `setuptools` must be previously installed + +Execute the following command in the top level clinguin directory: + +.. code-block:: console + + $ git clone https://github.com/potassco/clinguin + $ cd clinguin + $ pip install .[all] diff --git a/docs/clinguin/development/customBackend.rst b/docs/clinguin/development/customBackend.rst new file mode 100644 index 00000000..fd5e6b7d --- /dev/null +++ b/docs/clinguin/development/customBackend.rst @@ -0,0 +1,278 @@ +.. _CustomBackend: + +Creating your own backend +------------------------- + +By creating your own backend you can extend functionality and edit the existing server workflow. +If you are using *clingo*, we highly recomend extending the :ref:`ClingoMultishotBackend` to create your own. +This backend contains multiple functionalities already built in wich can be overwritten and extended. +The following explanation assumes that this is the backend that is being extended. + +.. note:: + + If you will not use multi-shot functionalities, assumptions and exterals + you can also extend the :ref:`ClingoBackend`. + +Code structure +============== + +Your code strucure with your custom backend must be the following: + +.. code-block:: + + my_project/ + ├── my_backend.py + └── ui.lp + └── encoding.lp + └── instance.lp + +- ``my_backend.py``: Contains the backend class that extends the :ref:`ClingoMultishotBackend`. + +.. code-block:: python + + from clinguin.server.application.backends import ClingoMultishotBackend + + class MyBackend(ClingoMultishotBackend): + ... + +- ``ui.lp``: Contains the UI encoding. +- ``encoding.lp``: Contains the domain encoding. +- ``instance.lp``: Contains the instance. + +Using this structure the command line, standing insde folder `my_project` would be the following: + +.. code-block:: console + + $ clinguin client-server --domain-files instance.lp encoding.lp --ui-files ui.lp --custom-classes my_backend.py --backend MyBackend + +.. tip:: + + You can make sure your backend class is avaliable by checking the help using ``-h`` with your custom classes: + + .. code-block:: console + + $ clinguin client-server --domain-files instance.lp encoding.lp --ui-files ui.lp --custom-classes my_backend.py -h + + +.. note:: **Using your backend** + + To make your custom backend avaliable to clinguin, you must provide the path via the command line argument ``--custom-classes``. + + +Customizations +============== + +In what follows we divide the possible extensions for explanability. For more implementation details, look at the source code + +.. currentmodule:: clinguin.server.application.backends + +.. autoclass:: ClingoBackend + :exclude-members: __init__, __new__ + +.. autoclass:: ClingoMultishotBackend + :exclude-members: __init__, __new__ + :show-inheritance: + +Register options +++++++++++++++++ + +By overwritting this class method, one can add new arguments to the command line. +These options will be added under a group for the created backend. The value can be set in :meth:`~ClingoBackend._init_command_line`. + +.. admonition:: Examples + + + * `explanation_backend `_ + * `clingraph_backend `_ + + +.. automethod:: ClingoBackend.register_options + +Public operations ++++++++++++++++++ + +Each backend can define any number public operations or overwrite the existing ones. +These operations are any public method of the class and will be accessible to the UI. + +.. admonition:: Examples + + + * `explanation_backend `_ + + + +.. admonition:: Example + + + This example shows how to add a a new public operation in a backend + + .. code-block:: + + class MyBackend(ClingoMultishotBackend): + ... + + def my_operation(self, arg1, arg2)->None: + # Do something using the given arguments + # Does not return anything + + Use it in your :ref:`ui-files` like this: + + .. code-block:: + + when(button1, click, call, my_operation("arg1", "arg2")). + +.. warning:: + + - If the operation made impacts the current broswsing state make sure to call the :meth:`~ClingoBackend._outdate` method. + - If the operation make the current control outdated (for instnce adds an atom or a program), make sure to call the :meth:`~ClingoBackend._init_ctl` method. + + +Initialization +++++++++++++++ + +These methods will handle the arguments depending on the current state of the interaction. +Some are called at the start after a restart or when a change is done in the solving. + + +.. admonition:: Examples + + * `clingodl_backend `_ + * `explanation_backend `_ + * `clingraph_backend `_ + + +.. automethod:: ClingoBackend._restart + +.. automethod:: ClingoBackend._init_ds_constructors + +.. automethod:: ClingoBackend._init_command_line + +.. automethod:: ClingoBackend._init_interactive + +.. automethod:: ClingoBackend._init_ctl + +.. automethod:: ClingoBackend._create_ctl + +.. automethod:: ClingoBackend._load_and_add + +.. automethod:: ClingoBackend._load_file + +.. automethod:: ClingoBackend._outdate + + +Solving ++++++++ + +These methods are involved on how the domain control is solved. +They can be ovweritten for things such as theory extensions. + +.. admonition:: Examples + + + * `explanation_backend `_ + * `clingodl_backend `_ + +.. automethod:: ClingoBackend._ground + +.. automethod:: ClingoBackend._prepare + +.. automethod:: ClingoBackend._on_model + + + +Setters ++++++++ + +These methods will set different attributes of the backend. + +.. automethod:: ClingoBackend._add_domain_state_constructor + +.. automethod:: ClingoBackend._set_context + +.. automethod:: ClingoBackend._set_constant + +.. automethod:: ClingoBackend._add_atom + +.. automethod:: ClingoMultishotBackend._set_external + +.. automethod:: ClingoMultishotBackend._add_assumption + + + +Domain state +++++++++++++ + +The domain state constructors take care of generating the :ref:`domain-state`. +When new information wants to be added a domain state constructor can be included. +These domain constructors will be automatically called by the `_domain_state` property. +But, they need to be previously registered in the constructor using the functions below. + +.. admonition:: Examples + + + * `explanation_backend `_ + * `clingodl_backend `_ + * `clingraph_backend `_ + +.. admonition:: Example + + + This example shows how to add a custom domain constructor + + .. code-block:: + + @property + def _ds_my_custom_constructor(self): + # Creates custom program + return "my_custom_program." + + def _init_ds_constructors(self): + super()._init_ds_constructors() + self._add_domain_state_constructor("_ds_my_custom_constructor") + + +.. warning:: + + Make sure any domain constructor added is a property with anotation ``@property`` or ``@cache_property`` if the computation is costly. + +.. warning:: + + Some domain constructors will be skiped if they are not used in the ui-files. + This can be done in a custom method domain_constructor using the following code: + + .. code-block:: + + @cache_property + def _ds_my_custom_complex_constructor(self): + # Creates custom program + if not self._ui_uses_predicate("_my_ds_predicate", 1): + return "% NOT USED\n" + return "my_custom_program." + + + + +.. note:: + + Domain state constructors for this backend are showed in the :ref:`ClingoMultishotBackend` and :ref:`ClingoBackend` sections. + These constructors can also be overwritten if necessary. + + +UI updates +++++++++++ + +If any changes want to be made in how the UI state is computed they +can be made by overwritting this method. + +.. admonition:: Examples + + + * `clingraph_backend `_ + + +.. automethod:: ClingoMultishotBackend._update_ui_state + +.. currentmodule:: clinguin.server.data.ui_state + +.. autoclass:: UIState + :exclude-members: __init__, __new__ diff --git a/docs/clinguin/development/index.rst b/docs/clinguin/development/index.rst new file mode 100644 index 00000000..6b56772b --- /dev/null +++ b/docs/clinguin/development/index.rst @@ -0,0 +1,49 @@ + +.. _customization: + +|:woman_technologist:| Customization +#################################### + +This section gives detailed information for people that wish to create a customization of *clingun*. + +.. tip:: + + You can also check the :ref:`API` section for a detailed explanation of the classes and functions in the *clinguin* package, + but we suggest you stick to the guides provided here. + + .. toctree:: + :maxdepth: 1 + + api.rst + + +Customizing the Backend +----------------------- + +Customizations of the backend can be done without any additional installations. + +.. toctree:: + :maxdepth: 1 + + customBackend.rst + +Angular development +------------------- + +For angular development you must have the source code. + +.. toctree:: + :maxdepth: 1 + + install.rst + angular.rst + +Contributing +------------ + +If you want to contribute to the *clinguin* project with your changes, check out the following section. + +.. toctree:: + :maxdepth: 1 + + contributing.rst \ No newline at end of file diff --git a/docs/clinguin/development/install.rst b/docs/clinguin/development/install.rst new file mode 100644 index 00000000..7e474d15 --- /dev/null +++ b/docs/clinguin/development/install.rst @@ -0,0 +1,16 @@ +Installing from source ++++++++++++++++++++++++ + +The project is hosted on `github `_ and can +also be installed from source. We recommend this only for development purposes. + +.. note:: + The pip package `setuptools` must be previously installed + +Execute the following command in the top level clinguin directory: + +.. code-block:: console + + $ git clone https://github.com/potassco/clinguin + $ cd clinguin + $ pip install .[all] diff --git a/docs/clinguin/examples_readme.md b/docs/clinguin/examples_readme.md new file mode 120000 index 00000000..6fa53604 --- /dev/null +++ b/docs/clinguin/examples_readme.md @@ -0,0 +1 @@ +../../examples/README.md \ No newline at end of file diff --git a/docs/clinguin/frontends/AngularFrontend.rst b/docs/clinguin/frontends/AngularFrontend.rst index 7f0551fe..4ea22ff5 100644 --- a/docs/clinguin/frontends/AngularFrontend.rst +++ b/docs/clinguin/frontends/AngularFrontend.rst @@ -7,7 +7,7 @@ Thus, providing beautiful components out of the box by giving access to Bootstra For contributing with new components take a look at the :ref:`Development` section. .. admonition:: Examples - + * `Angular Examples `_ @@ -16,210 +16,6 @@ For contributing with new components take a look at the :ref:`Development` secti It implements most of the elements and attributes of the TkinterFrontend. So you can also check the Tkinter Syntax as explaned above and try setting those values. -Atributes -+++++++++ - -.. note:: - - Any attribute that is passed that does not fall under this list or the specific attributes of the element, - will be set as a plain html style in the component - - -Class -..... - -The class atribute ``class`` will add a `bootstrap class `_ -to any element. -This attribute can apear multiple times. - -.. tip:: - - **Simplify, use classes!** - - It is encouranged to use classes for styling with the predefined colors. - Must of the attributes found below can be replaced by a bootstrap class. - - Not only that but you can set multiple classes in the same ASP rule using - - ``attr(ID,class,(C1;C2;...))`` - - - -Positioning -............ - -.. _Child layout: - -**Child layout** - -``child_layout`` - *Description*: With this attribute one can define the layout of the children, i.e. how they are positioned. - - *Values*: For the child-layout four different options exists: - - ``flex`` (default, tries to do it automatically) - - ``grid`` (grid-like-specification) - - ``absstatic`` (if one wants to specify the position with absolute-pixelcoordinates) - - ``relstatic`` (if one wants to specify the position with relative-pixel coordinates(from 0 to 100 percent, where 0 means left/top and 100 means right/bottom)). - - They can either bespecified via a clingo symbol or via a string (string is case-insensitive). - - -.. _Grid: - -**Grid** - -``grid_column`` - *Description*: With this attribute one can define in which column the element shall be positioned. - - *Values*: Integer - -``grid_row`` - *Description*: With this attribute one can define in which row the element shall be positioned. - - *Values*: Integer - -``grid_column_span`` - *Description*: With this attribute one can define, that the elements stretches over several columns. - - *Values*: Integer - -``grid_row_span`` - *Description*: With this attribute one can define, that the elements stretches over several rows. - - *Values*: Integer - - - -.. _Relative and Absolute: - -**Relative and Absolute** - -``pos_x`` - *Description*: With this attribute one sets the x-position of the element - it depends on the parents ``child-layout`` how this is defined (either pixels, relative as a percentage, ...). - - *Values*: Integer - -``pos_y`` - *Description*: With this attribute one sets the y-position of the element - it depends on the parents ``child-layout`` how this is defined (either pixels, relative as a percentage, ...). - - *Values*: Integer - - -.. _Direction: - -**Direction** - -.. tip :: - - Try using `boostrap positioning `_ instead. - - -``flex_direction`` - *Description*: With this attribute one can set the ``direction`` (i.e., where it gets placed) of anelement which root has a specified flex layout. - - *Values*: For the flex-direction type two possible values exist: - - ``column`` (vertical alignment) - - ``row`` (horizontal alignment). - -Style -..... - -.. _Color: - -**Color** - -.. tip :: - - Try using `boostrap colors `_ instead. - - -``background_color`` - *Description*: With this attribute one can define the background-color of the element. - - *Values*: Color - -``foreground_color`` - *Description*: With this attribute one can set the foreground-color of the element. - - *Values*: Color - -``border_color`` - *Description*: With this attribute one may set the border color. - - *Values*: Color - -``on_hover`` - *Description*: With this attribute one can enable or disable on-hover features for the element. - - *Values*: For the boolean type, either true or false are allowed - either as string or as a clingo-symbol. If one provides it as a string, it is case-insensitive. - -``on_hover_background_color`` - *Description*: With this attribute one can set the background color the element shall have, when on_hover is enabled. - - *Values*: Color - -``on_hover_foreground_color`` - *Description*: With this attribute one can set the forground color the element shall have, when on_hover is eneabled. - - *Values*: Color - -``on_hover_border_color`` - *Description*: With this attribute one can set the color the border of the element shall have, when on_hover is enabled. - - *Values*: Color - - -.. _Size: - -**Size** - -``height`` - *Description*: With this attribute one can set the height in pixels of the element. - - *Values*: Integer - -``width`` - *Description*: With this attribute one can set the width in pixels of the element. - - *Values*: Integer - - -.. _Border: - -**Border** - -.. tip :: - - Try using `boostrap borders `_ instead. - -``border_width`` - *Description*: With this attribute one defines the width of the border in pixels. - - *Values*: Integer - -``border_color`` - *Description*: With this attribute one may set the border color. - - *Values*: Color - -.. _Visibility: - -**Visibility** - -``visibility`` - *Description*: Sets the visibility of an element. It can be used to show things like a modal or a container using the update functionality - - *Values*: The visibility, options are: - - ``visible``: To show the element - - ``hidden``: To hide the element - -.. _Text: - -**Text** - -.. tip :: - - Try using `boostrap text `_ style instead. Elements @@ -289,8 +85,8 @@ All buttons inside this element will apear as options. **Attributes** - - :ref:`Visibility ` + +:ref:`Visibility ` ``modal`` ......... @@ -301,7 +97,7 @@ Implemented using `boostrap modals `, :ref:`Visibility ` @@ -317,9 +113,10 @@ A container for defining layout. Implemented using `boostrap modals `_. **Attributes** - + :ref:`Class `, :ref:`Visibility `, +:ref:`Order `, :ref:`Child layout `, :ref:`Grid `, :ref:`Relative and Absolute `, @@ -341,9 +138,10 @@ A button. Implemented using `boostrap buttons `_. **Attributes** - + :ref:`Class `, :ref:`Visibility `, +:ref:`Order `, :ref:`Grid `, :ref:`Relative and Absolute `, :ref:`Direction `, @@ -368,9 +166,10 @@ Implemented using `boostrap buttons `, :ref:`Visibility `, +:ref:`Order `, :ref:`Grid `, :ref:`Relative and Absolute `, :ref:`Direction `, @@ -390,11 +189,12 @@ A label. A text field. The value of the text field can be stored on the context using the event ``input``. See the :ref:`Context` section for more details. - + **Attributes** - + :ref:`Class `, :ref:`Visibility `, +:ref:`Order `, :ref:`Grid `, :ref:`Relative and Absolute `, :ref:`Direction `, @@ -413,11 +213,12 @@ See the :ref:`Context` section for more details. ................. A dropdown menu for single select. - + **Attributes** - + :ref:`Class `, :ref:`Visibility `, +:ref:`Order `, :ref:`Grid `, :ref:`Relative and Absolute `, :ref:`Direction `, @@ -439,6 +240,7 @@ An item inside a dropdown menu. Must be contained in a dropdown menu. :ref:`Class `, :ref:`Visibility `, +:ref:`Order `, :ref:`Grid `, :ref:`Relative and Absolute `, :ref:`Direction `, @@ -459,9 +261,10 @@ A canvas to render images. Canvas can be used to render clingraph images, see :ref:`ClingraphBackend` for details. **Attributes** - + :ref:`Class `, :ref:`Visibility `, +:ref:`Order `, :ref:`Grid `, :ref:`Relative and Absolute `, :ref:`Direction ` @@ -469,4 +272,224 @@ Canvas can be used to render clingraph images, see :ref:`ClingraphBackend` for d ``image`` *Description*: The local path to the image - *Values*: String \ No newline at end of file + *Values*: String + +Atributes ++++++++++ + +.. note:: + + Any attribute that is passed that does not fall under this list or the specific attributes of the element, + will be set as a plain html style in the component + + +Class +..... + +The class atribute ``class`` will add a `bootstrap class `_ +to any element. +This attribute can apear multiple times. + +.. tip:: + + **Simplify, use classes!** + + It is encouranged to use classes for styling with the predefined colors. + Must of the attributes found below can be replaced by a bootstrap class. + + Not only that but you can set multiple classes in the same ASP rule using + + ``attr(ID,class,(C1;C2;...))`` + + + +Positioning +............ + +.. _Order: + +**Order** + +``order`` + *Description*: With this numeric attribute sets the order of appearace for the element inside the parent + + *Values*: Integer + + .. warning:: + + Make sure the order is set to all the children of the same parent, otherwise the order will not be respected. + + + +.. _Child layout: + +**Child layout** + +``child_layout`` + *Description*: With this attribute one can define the layout of the children, i.e. how they are positioned. + + *Values*: For the child-layout four different options exists: + - ``flex`` (default, tries to do it automatically) + - ``grid`` (grid-like-specification) + - ``absstatic`` (if one wants to specify the position with absolute-pixelcoordinates) + - ``relstatic`` (if one wants to specify the position with relative-pixel coordinates(from 0 to 100 percent, where 0 means left/top and 100 means right/bottom)). + + They can either bespecified via a clingo symbol or via a string (string is case-insensitive). + + +.. _Grid: + +**Grid** + +``grid_column`` + *Description*: With this attribute one can define in which column the element shall be positioned. + + *Values*: Integer + +``grid_row`` + *Description*: With this attribute one can define in which row the element shall be positioned. + + *Values*: Integer + +``grid_column_span`` + *Description*: With this attribute one can define, that the elements stretches over several columns. + + *Values*: Integer + +``grid_row_span`` + *Description*: With this attribute one can define, that the elements stretches over several rows. + + *Values*: Integer + + + +.. _Relative and Absolute: + +**Relative and Absolute** + +``pos_x`` + *Description*: With this attribute one sets the x-position of the element - it depends on the parents ``child-layout`` how this is defined (either pixels, relative as a percentage, ...). + + *Values*: Integer + +``pos_y`` + *Description*: With this attribute one sets the y-position of the element - it depends on the parents ``child-layout`` how this is defined (either pixels, relative as a percentage, ...). + + *Values*: Integer + + +.. _Direction: + +**Direction** + +.. tip :: + + Try using `boostrap positioning `_ instead. + + +``flex_direction`` + *Description*: With this attribute one can set the ``direction`` (i.e., where it gets placed) of anelement which root has a specified flex layout. + + *Values*: For the flex-direction type two possible values exist: + - ``column`` (vertical alignment) + - ``row`` (horizontal alignment). + +Style +..... + +.. _Color: + +**Color** + +.. tip :: + + Try using `boostrap colors `_ instead. + + +``background_color`` + *Description*: With this attribute one can define the background-color of the element. + + *Values*: Color + +``foreground_color`` + *Description*: With this attribute one can set the foreground-color of the element. + + *Values*: Color + +``border_color`` + *Description*: With this attribute one may set the border color. + + *Values*: Color + +``on_hover`` + *Description*: With this attribute one can enable or disable on-hover features for the element. + + *Values*: For the boolean type, either true or false are allowed - either as string or as a clingo-symbol. If one provides it as a string, it is case-insensitive. + +``on_hover_background_color`` + *Description*: With this attribute one can set the background color the element shall have, when on_hover is enabled. + + *Values*: Color + +``on_hover_foreground_color`` + *Description*: With this attribute one can set the forground color the element shall have, when on_hover is eneabled. + + *Values*: Color + +``on_hover_border_color`` + *Description*: With this attribute one can set the color the border of the element shall have, when on_hover is enabled. + + *Values*: Color + + +.. _Size: + +**Size** + +``height`` + *Description*: With this attribute one can set the height in pixels of the element. + + *Values*: Integer + +``width`` + *Description*: With this attribute one can set the width in pixels of the element. + + *Values*: Integer + + +.. _Border: + +**Border** + +.. tip :: + + Try using `boostrap borders `_ instead. + +``border_width`` + *Description*: With this attribute one defines the width of the border in pixels. + + *Values*: Integer + +``border_color`` + *Description*: With this attribute one may set the border color. + + *Values*: Color + +.. _Visibility: + +**Visibility** + +``visibility`` + *Description*: Sets the visibility of an element. It can be used to show things like a modal or a container using the update functionality + + *Values*: The visibility, options are: + - ``visible``: To show the element + - ``hidden``: To hide the element + +.. _Text: + +**Text** + +.. tip :: + + Try using `boostrap text `_ style instead. diff --git a/docs/clinguin/frontends/TkinterFrontend.rst b/docs/clinguin/frontends/TkinterFrontend.rst index 9438c948..cb32ceb1 100644 --- a/docs/clinguin/frontends/TkinterFrontend.rst +++ b/docs/clinguin/frontends/TkinterFrontend.rst @@ -3,8 +3,12 @@ TkinterFrontend This frontend uses the standard Python interface `tkinter `_ to generate a UI. +.. tip:: + + We suggest using the :ref:`AngularFrontend` instead. It is more powerful and has a modern look. + .. admonition:: Examples - + * `Tkinter Examples `_ @@ -18,4 +22,5 @@ If one is also interested in what values one might set, one can also look at the .. code-block:: console - $ clinguin client-server --frontend-syntax-full \ No newline at end of file + $ clinguin client-server --frontend-syntax-full + diff --git a/docs/clinguin/frontends/index.rst b/docs/clinguin/frontends/index.rst index d6c0aa9f..a88143bd 100644 --- a/docs/clinguin/frontends/index.rst +++ b/docs/clinguin/frontends/index.rst @@ -1,29 +1,22 @@ -Frontends -######### - -The frontends listed here are provided with clinguin. Each frontend allows different element types, arguments, and events. - -The source code for the frontends can be found on `GitHub `_. +.. _Frontends: +|:art:| Frontends +################# +The frontends listed here are provided with clinguin. Each frontend allows different element types, arguments, and events. Built-in Frontends ++++++++++++++++++ + .. toctree:: :maxdepth: 1 TkinterFrontend.rst AngularFrontend.rst +.. tip:: -Creating Your Own Frontend -+++++++++++++++++++++++++++ - -.. warning:: - Under construction. Sorry :). - - But feel free to contribute to the AngularFrontend with new components! - + We suggest using the :ref:`AngularFrontend`! diff --git a/docs/clinguin/help.rst b/docs/clinguin/help.rst new file mode 100644 index 00000000..78b1bac4 --- /dev/null +++ b/docs/clinguin/help.rst @@ -0,0 +1,66 @@ + +.. _help: + +|:speech_balloon:| Help +======================== + +.. admonition:: **Logging** + :class: tip + + The first thing to try when things are not working as expected is to turn on the logs and inspect the console. + The log level can be set to ``DEBUG`` in the command line by adding the flag ``--server-log-level DEBUG``. + This logs will show the communication between the client and the server, as well as every call that is made to the clingo API internally. + Information regarding the :ref:`domain-control` will be logged in magenta and regarding the :ref:`ui-control` will be logged in cyan. + + This logs will show the atoms that are part of the :ref:`domain-state` which are passed to your UI encoding. + +.. admonition:: **Unexpected atoms in brave/cautious consequences** + :class: tip + + If you inspect the logs, and the :ref:`domain-state` does not have the expected atoms in your brave ``_any`` or cautious ``_all`` consequences, + make sure your :ref:`domain-files` don't have any ``#show`` statements. + + The show statements in your :ref:`domain-files` will impact the atoms present in the :ref:`domain-state`. + If you are using show statements, and you want to use ``_any(a)`` for an atom ``a``, that is not part of your show statements, + then you have to add ``#project a.`` to your :ref:`domain-files` to get the desired output. + Furthermore any show statements that output a tuple (function without name) will lead to syntactic issues so thet should be removed. + +.. admonition:: **Long response time** + :class: tip + + If the server is taking too long to respond, first check the logs to make sure the server has not crashed and it is still processing the request. + With the ``DEBUG`` log level you can see the last call that was made to the clingo API. + + + *Brave or cautious consequences* + If the call is the one to compute the brave or cautious consequences, then the problem might be that your encoding has a very large serach space. + If you can, avoid using ``all`` or ``any`` in your ui encoding, do so. This way these calls will be skipped (similarly for ``all_opt`` and ``any_opt``). + + *Optimizing* + If the problem is finding an optimal model you can pass a timeout to the server in the command line with the flag ``--out-timeout 10``. + This will make the server stop searching for models with a bette cost after ``10`` seconds. Note that the response time might be larget than this timeout + if the solver is already searching when the timeout is reached. If you pass a timeout of ``0`` the server will only get the first model, you can then keep calling the operation ``next_solution(optN)`` to improve the cost, one at a time. + Check out the `placement_optimized example `_. + + +.. admonition:: **Can't manage to place or style things in my UI** + :class: tip + + If you are having trouble placing or styling elements in your UI, first make sure that they are part of your UI state by checking the logs in the command line. + + *Not in my ui-state* + If your expected attribute is not in the :ref:`ui-state`, then you have to check your :ref:`ui-files` to make sure the atom is generated. + If you are using the ``;`` operator for the ``class`` attribute, make sure you did not make a mistake and have ``attr(elem,class,(c1,c2);`` instead of ``attr(elem,class,(c1;c2).``. + + *Is part of my ui-state* + Then we recomend you use the browser's developer tools to inspect the elements and see if the styles are being applied. + You can also move the HTML directly in your browser to find the right settings. Once you found them you can copy them to your :ref:`ui-files`. + + + +.. admonition:: **Still need help** + :class: warning + + If none of the above tips help you solve your problem, please open an issue in the `clinguin repository `_. + + diff --git a/docs/clinguin/installation.rst b/docs/clinguin/installation.rst index b7cbfe5b..c85e9b20 100644 --- a/docs/clinguin/installation.rst +++ b/docs/clinguin/installation.rst @@ -1,5 +1,5 @@ -Installation -############ +|:gear:| Installation +##################### Clinguin requires a Python version between 3.8 and 3.10 (recomend 3.10) @@ -9,7 +9,7 @@ You can check a successfull instalaltion by running $ clinguin -h -Installing with pip +Installing with pip =================== The python clinguin package can be found `here `_. @@ -18,79 +18,11 @@ The python clinguin package can be found `here `_ and can -also be installed from source. We recommend this only for development purposes. .. note:: - The pip package `setuptools` must be previously installed - -Execute the following command in the top level clinguin directory: - -.. code-block:: console - - $ git clone https://github.com/potassco/clinguin - $ cd clinguin - $ pip install .[all] - -Angular Frontend Development -++++++++++++++++++++++++++++ - -This section is for development and contribution in the AngularFrontend. -For instance to create new element types. - - -.. warning:: - - The following is only required for making changes to the web-frontend. - -Requirements ------------- - - - `NPM `_ - - `NODE `_ - - `Angular `_ - -Development ------------ - -This process shows changes made on the `angular_fronted` folder in real time. - -1. Start the server - - Replace ``clinguin client-server`` by ``python start.py server`` on the desired example -2. Start the web client - - Open a new tab - - Navigate to the folder `/angular_frontend`. - - Type ``ng serve`` - - Go to the URL `127.0.0.1:4200` in your web-browser. - - -Compile source code -------------------- - -This allows to use the AngularFrontend by passing the ``--frontend`` argument to the client. - -Be sure that you have `make` and all the dev-tools for the web-frontend installed (`Angular`), as detailed below! Then type: - -.. code-block:: console + If you wish to use tkinter instead of angluar (discouraged), install as follows. - $ make angular + .. code-block:: console -This builds the frontend, and then installs `clinguin`. \ No newline at end of file + $ pip install clinguin[tkinter] diff --git a/docs/clinguin/reference/communication.rst b/docs/clinguin/reference/communication.rst index b41ed249..fde02cd8 100644 --- a/docs/clinguin/reference/communication.rst +++ b/docs/clinguin/reference/communication.rst @@ -25,7 +25,7 @@ Operations .. figure:: ../../operation.png -The operations are defined by the backend. These operations will interact with the domain control while performing all the required changes. +The operations are defined by the backend. These operations will interact with the domain control while performing all the required changes. Each backend will define an available list of operations. These lists can be found in :ref:`Backends`. @@ -39,52 +39,69 @@ Context The context can be used to store information provided by the user before calling the server. For instance, it can store the input of a text field, or the value of a checkbox. Therefore, it is usefull for creating input forms within the UI. Internally, the context is represented by a dictionary in the client and it can be accesed in three ways. .. warning:: - + Context information is only available for web frontends and not for Tkinter. **Updates** -The context information is updated using predicate ``when`` as described above. +The context information is updated using predicate ``when`` as described above. .. admonition:: Example - + The context would be updated with the key-value pair `(agree, true)` when `button1` is clicked. - .. code-block:: + .. code-block:: when(button1, click, context, (agree, true)). -To use a value imputed by the user, such as for text fields, the special constant ``_value`` will hold the value of an input event. +To use a value imputed by the user, such as for text fields, the special constant ``_value`` will hold the value of an input event. .. admonition:: Example - - .. code-block:: - + + .. code-block:: + when(textfield1, input, context, (t1_content, _value)). **Substitution** -The values of the context can be accessed for a direct substitution in the operation of a call. This is done with the special predicates ``_context_value/1`` and ``_context_value_optional/1``. The argument of these predicates is the key which will be substituted by the value before it is processed by the server. While ``_context_value/1`` will show an error in case there is no value for the provided key, ``_context_value_optional/1`` will leave the input optional, and in case there is no value present it is substitued by None. +The values of the context can be accessed for a direct substitution in the operation of a call. This is done with the special predicate ``_context_value`` with arity 1, 2 or 3. + +- The first argument of this predicate is the key which will be substituted by the value before it is processed by the server. +- The second argument is an optional type, which should be ``str``, ``int`` or ``const``. Using this type will type check the input and transform in into the correct type. +If the user provides as input a number 1, it will be trated as a number unless the type is ``str`` in which case it will be transformed to ``"1"``. +If the user provides as input a string that can be an constant, such as ``open``, it will be passed without quotes unless the type is ``str``. +However, if the input is a string that can't be a constant, such as ``Open``, it will quoted even if no type is provided. +- The third argument is an optional default value, this value is taken whenever the key is not present. .. admonition:: Example - + Example from the `ast example `_. The key `selected_node` is set open clicking on a node and then this information is sustituted on the next line when the server is called to add an atom, which yeilds operation ``add_atom(show_children(X,true)))`` after the substitution, with ``X`` being the selected node. - .. code-block:: + .. code-block:: when(node(X), click, context, (selected_node, X)):- node(X). when(button1, click, call, add_atom(show_children(_context_value(selected_node),true))). -**Access** +.. admonition:: Example + + + Example from the `ast example `_. + When this button is clicked, the value of the key ``show_download`` will be accessed and transfoermed into a string. If no value is provided then it is substituted by "#show assign/2.". + + .. code-block:: -All calls to the server will include the context as an argument. All backends will have access to this dictionary and can use its values for any operation. The provadided backends include the context information as part of the :ref:`domain-state` via predicate ``_clinguin_context(KEY,VALUE)``. Thus, giving the UI encoding access to the context at the time the call was made. Beware that changes in the context are not reflected in the UI encoding imidiatley, but only after calling the server and calculating the UI again. + when(b1, click, call, download(_context_value(show_download, str, "#show assign/2."))). +**Access** + +All calls to the server will include the context as an argument. All backends will have access to this dictionary and can use its values for any operation. The provadided backends include the context information as part of the :ref:`domain-state` via predicate ``_clinguin_context(KEY,VALUE)``. Thus, giving the UI encoding access to the context at the time the call was made. Beware that changes in the context are not reflected in the UI encoding imidiatley, but only after calling the server and calculating the UI again. +Notice that the _clinguin_context predicate will only include things after a server call, but not the moment they are set. .. warning:: The context is erased after every call to the server. @@ -93,8 +110,8 @@ All calls to the server will include the context as an argument. All backends wi .. tip:: If some of the context wants to be preserved between calls to the server, it can be done manually in the UI encoding by using the event ``load`` of the ``window``. An example is provided below, which is used in the `ast example `_. - .. code-block:: - + .. code-block:: + when(window, load, context, (selected_node, X)):- _clinguin_context(selected_node, X). @@ -107,7 +124,7 @@ JSON UI .. figure:: ../../json.png -The :ref:`ui-state` is represented by a JSON to comunicate between client and server. This JSON is generated in a herachical fashion where each element apears with the following form. +The :ref:`ui-state` is represented by a JSON to comunicate between client and server. This JSON is generated in a herachical fashion where each element apears with the following form. .. code-block:: @@ -115,7 +132,7 @@ The :ref:`ui-state` is represented by a JSON to comunicate between client and se "id": , "type": , "parent": , - "attributes": + "attributes": [ { "id": , @@ -124,13 +141,13 @@ The :ref:`ui-state` is represented by a JSON to comunicate between client and se }, ... ], - "when": + "when": [ { "id": , "event": , - "interaction_type": , - "policy": + "action": , + "operation": } ], "children": [] @@ -138,7 +155,7 @@ The :ref:`ui-state` is represented by a JSON to comunicate between client and se .. admonition:: Example - + The following :ref:`ui-state` the corresponding JSON UI can be found below. @@ -182,8 +199,8 @@ The :ref:`ui-state` is represented by a JSON to comunicate between client and se { "id":"b1", "event":"click", - "interaction_type":"call", - "policy":"next_solution" + "action":"call", + "operation":"next_solution" } ], "children":[] diff --git a/docs/clinguin/reference/index.rst b/docs/clinguin/reference/index.rst index fff63a02..8f039d70 100644 --- a/docs/clinguin/reference/index.rst +++ b/docs/clinguin/reference/index.rst @@ -1,6 +1,7 @@ -=============== -Reference Guide -=============== +.. _reference guide: + +|:book:| Reference Guide +======================== This guide explains the internal workflow of `clinguin` and all its concepts. The full workflow of the system is shown in the figure below. diff --git a/docs/clinguin/reference/input.rst b/docs/clinguin/reference/input.rst index 54914666..00faee45 100644 --- a/docs/clinguin/reference/input.rst +++ b/docs/clinguin/reference/input.rst @@ -13,6 +13,16 @@ The domain-specific ASP encodings that will generate solutions to the problem (i These files will be used by the :ref:`domain-control`. They are provided when starting the server via the command line in argument ``--domain-files``. +.. warning:: + + **Show statements** + + The show statements in your :ref:`domain-files` will impact the atoms present in the :ref:`domain-state`. + If you are using show statements, and you want to use ``_any(a)`` for an atom ``a``, that is not part of your show statements, + then you have to add ``#project a.`` to your :ref:`domain-files` to get the desired output. + Furthermore any show statements that output a tuple (function without name) will lead to syntactic issues so thet should be removed. + + ************ ui-files ************ diff --git a/docs/clinguin/reference/state.rst b/docs/clinguin/reference/state.rst index cbf4937f..5777b723 100644 --- a/docs/clinguin/reference/state.rst +++ b/docs/clinguin/reference/state.rst @@ -15,11 +15,11 @@ A User Interface is defined in `clinguin` using the three predicates below. These facts are generated by calling clingo with the :ref:`domain-state` and the provided :ref:`ui-files`. .. note:: - + The available element types, attributes, events, and actions will vary depending on the frontend. See the details for each front end in the :ref:`Frontends` section. -- ``elem(ID, TYPE, PARENT)`` +**Elements** ``elem(ID, TYPE, PARENT)`` Elements define building blocks of the UI. @@ -30,7 +30,7 @@ Elements define building blocks of the UI. - ``PARENT`` The id of the parent element. The identifier ``root`` is used as the root element of the UI. -- ``attr(ID, KEY, VALUE)`` +**Attributes** ``attr(ID, KEY, VALUE)`` Attributes define the style of the UI. @@ -41,53 +41,52 @@ Attributes define the style of the UI. - ``VALUE`` The value of the attribute. -- ``when(ID, EVENT, ACTION, OPERATION)`` +**Actions** ``when(ID, EVENT, ACTION, OPERATION)`` Actions define the interactivity of the UI. Multiple actions are allowed, as explained below. - - ``ID`` Identifier of the element that the user interacted with. - ``EVENT`` The event that is being triggered, such as ``click``, ``hover``, ``input``, etc. Each element type allows different events. -- ``ACTION`` The action performed. - - ``call`` Calls the server to perform an operation. +- ``ACTION`` The action performed. + - ``call`` Calls the server to perform an operation. - ``update`` Updates the attribute of another element without any calls to the server. - ``context`` Updates the internal context that will be passed to the server on the following call actions. See :ref:`Context` for more details. - ``OPERATION`` The operation accounts for the information that the action requires for its execution. - - ``ACTION`` = ``call`` The operation corresponds to a function available in the :ref:`Backends`. The function call is represented as a predicate, for instance ``add_assumption(a)`` or ``next_solution``. + - ``ACTION`` = ``call`` The operation corresponds to a public operation from the :ref:`Backends`. The function call is represented as a predicate, for instance ``add_assumption(a)`` or ``next_solution``. - ``ACTION`` = ``update`` The operation will be a tuple of size three ``(ID', KEY, VALUE)`` where ``ID'`` is the identifier of the element whose value for attribute ``KEY`` will be updated to ``VALUE``. Notice that ``ID'`` might be different than ``ID``. - ``ACTION`` = ``context`` The operation will be a tuple ``(KEY, VALUE)``, which will update the key ``KEY`` in the context dictionary to ``VALUE``. See the :ref:`Context` section for detail information on how to use the context. **Multiple actions** -If multiple occurrences of the predicate ``when`` are present for the same element and event. All of them will be executed. First, the updates will be performed, followed by context changes and finally server calls. Within each type of action, no order can be assured. +If multiple occurrences of the predicate ``when`` are present for the same element and event. All of them will be executed. First, the updates will be performed, followed by context changes and finally server calls. Within each type of action, no order can be assured. -In the case of multiple appearances of ``call``, a single call will be placed to the server with the information to execute all actions in any order. +In the case of multiple appearances of ``call``, a single call will be placed to the server with the information to execute all actions in any order. .. admonition:: Example - + When ``button1`` is clicked, the server will receive the instruction to execute two operations: adding assumption ``a`` and adding assumption ``b`` in any order. For a more evolved example of this feature, see the `jobshop example `_. - .. code-block:: + .. code-block:: when(button1, click, call, add_assumption(a)). when(button1, click, call, add_assumption(b)). -To impose an order, the operation provided must be a tuple, in which case the order of execution is defined by the tuple. +To impose an order, the operation provided must be a tuple, in which case the order of execution is defined by the tuple. .. admonition:: Example - + This example below will make sure that assumption ``a`` is added before computing a solution. - .. code-block:: + .. code-block:: - when(button1, click, call, (add_assumption(a), next_solution)). + when(button1, click, call, (add_assumption(a), next_solution)). ************ domain-state @@ -96,10 +95,11 @@ domain-state .. figure:: ../../domstate.png A set of facts defining the state of the domain, which will be used as input to the :ref:`ui-files`. -These facts are generated by multiple domain-state constructors defined by the backend. +These facts are generated by multiple domain-state constructors defined by the backend. Each backend will define its own domain-state constructors which can involve solve calls or any other information. The domain-state constructors can be found in :ref:`backends`. -In what follows we explain in detail the list of base constructors used in the :ref:`ClingoMultishotBackend` +In what follows we explain in detail the list of base constructors used in the :ref:`ClingoMultishotBackend`, +for further details check the API documentation for the backend of your interest. The domain state of :ref:`ClingoMultishotBackend` will provide a model and some useful reasoning information; when creating a UI one usually needs to reason with what is still *possibly* part of the solution and what is *necessarily* in the solution. @@ -107,24 +107,32 @@ In ASP terms, we use the following brave and cautious reasoning to provide this **Model** -The atoms of the first computed model are added directly to the :ref:`domain-state`. When the user is browsing the solutions, this model will change accordingly. +The atoms of the first computed model are added directly to the :ref:`domain-state`. When the user is browsing the solutions, this model will change accordingly. **Brave consequences** Atoms that are in any stable models (Union) of the :ref:`domain-control`. These atoms are part of the :ref:`domain-state` enclosed in predicate ``_any``. We usually employ brave consequences to create elements where we want to provide the user with all the possible options. For instance, in a dropdown menu. By using brave consequences, we make sure that these selections lead to a valid answer. -.. warning:: - +.. warning:: + + **Performance** + + To improve performance these atoms are only obtained if the predicate ``_any`` is part of the :ref:`ui-files`. + + +.. warning:: + **Show statements** - The show statements in your :ref:`domain-files` will impact the atoms present in these consequences. + The show statements in your :ref:`domain-files` will impact the atoms present in these consequences. If you are using show statements, and you want to use ``_any(a)`` for an atom ``a``, that is not part of your show statements, then you have to add ``#project a.`` to your :ref:`domain-files` to get the desired output. + Furthermore any show statements that output a tuple (function without name) will lead to syntactic issues so thet should be removed. .. admonition:: Example - + Consider the following encoding, where either ``p(1)`` or ``p(2)`` can be selected. @@ -146,23 +154,30 @@ We usually employ brave consequences to create elements where we want to provide Atoms that are in all stable models (intersection) of the :ref:`domain-control`. These atoms are part of the :ref:`domain-state` enclosed in predicate ``_all``. We usually employ cautious consequences when we want to show the user any inferences done by the solver. For instance, the selected value of a dropdown menu. Naturally, assumptions made by the user will impact these consequences. -.. warning:: - +.. warning:: + + **Performance** + + To improve performance these atoms are only obtained if the predicate ``_any`` is part of the :ref:`ui-files`. + + +.. warning:: + **Show statements** - The show statements in your :ref:`domain-files` will impact the atoms present in these consequences. + The show statements in your :ref:`domain-files` will impact the atoms present in these consequences. If you are using show statements, and you want to use ``_all(a)`` for an atom ``a``, that is not part of your show statements, then you have to add ``#project a.`` to your :ref:`domain-files` to get the desired output. .. admonition:: Example - - + + Consider the following encoding, where either ``p(1)`` or ``p(2)`` can be selected. .. code-block:: - {p(1);p(2);p(3)}. - :- p(1). + 1{p(1);p(2)}1. + :- p(2). We have one stable model: `{p(1)}`. Therefore the following atoms will be added to the :ref:`domain-state`. @@ -178,26 +193,26 @@ We usually employ cautious consequences when we want to show the user any infere This constant is present when the user is browsing models, meaning that the ``next()`` operation has been requested. It can be used to decide whether the UI must show the current model. .. admonition:: Example - + In the `sudoku example `_, presented in section :ref:`Quick Start`, the following lines define the selected value of a dropdown menu. When browsing is active, the value of the cell in the given model ``sudoku(X,Y,V)`` defines the selected value, otherwise, a selected option will be defined only for values that are forced by the encoding ``_all`` (see :ref:`domain-state`). .. code-block:: - + attr(dd(X,Y),selected,V):-_all(sudoku(X,Y,V)). attr(dd(X,Y),selected,V):-sudoku(X,Y,V), _clinguin_browsing. **_clinguin_unsat/0** -This constant is present if the :ref:`domain-control` gave an unsatisfiable response. +This constant is present if the :ref:`domain-control` gave an unsatisfiable response. **_clinguin_assume/1** -These atoms give information about what has been assumed by the user via the backend instructions. +These atoms give information about what has been assumed by the user via the backend instructions. .. admonition:: Example - + In the `sudoku example `_, presented in section :ref:`Quick Start`, the following lines define the color of the selected value of a dropdown menu. When the value was set by the user, which we can know if ``_clinguin_assume(sudoku(X,Y,V))`` is part of the :ref:`domain-state`, then we show it using the primary color (blue). Otherwise, the value was inferred by the system and we show it using the info color (gray). diff --git a/docs/clinguin/reference/structure.rst b/docs/clinguin/reference/structure.rst index 44657c2d..a388300b 100644 --- a/docs/clinguin/reference/structure.rst +++ b/docs/clinguin/reference/structure.rst @@ -19,7 +19,7 @@ To allow flexibility, further separation is done to have interchangeable functio The part of the server that defines the control and functionality, allowing users to interact with the clingo control in different ways. It offers the option to define and overwrite operations, as well as customize how the UI is updated and the contextual information in the :ref:`domain-state`. -Users can create their own Backend to increase functionality (:ref:`Creating your own backend`). +Users can create their own Backend to increase functionality (:ref:`CustomBackend`). We provide the following :ref:`Backends` with the system: @@ -45,9 +45,9 @@ To allow flexibility, further separation is done to have interchangeable UIs and **Frontend** -The part of the client that generates the layout based on the :ref:`JSON UI` and displays the UI. Users can create their own Frontend to have a different view (:ref:`Creating your own frontend`). +The part of the client that generates the layout based on the :ref:`JSON UI` and displays the UI. We provide the following :ref:`Frontends` with the system: -* *AngularFrontend*: UI using Angular to generate a web interface +* *AngularFrontend*: UI using Angular to generate a web interface * *TkinterFrontend*: UI using Tkinter an OS-dependent interface diff --git a/docs/clinguin/use.rst b/docs/clinguin/use.rst index 2eb6c2ad..59171b87 100644 --- a/docs/clinguin/use.rst +++ b/docs/clinguin/use.rst @@ -1,9 +1,11 @@ -Quick Start -=========== +.. _Quick Start: -We will use the `sudoku example `_ , and run it using the :ref:`ClingoMultishotBackend` and the :ref:`AngularFrontend`. +|:rocket:| Quick Start +====================== +We will use the `sudoku example `_. +The ASP files defining the `instance `_ and `encoding `_ for the sudoku are considered the :ref:`domain-files`. .. image:: ../../examples/angular/sudoku/out1.png :width: 45% @@ -13,7 +15,7 @@ We will use the `sudoku example `_ by sections. For details on the sytax and the creation of elements see the :ref:`ui-state` section. @@ -71,7 +73,7 @@ Then, inside the window we create a container which is identified by ``sudoku`` attr(sudoku,width,100). attr(sudoku,height,100). -In the container we create a dropdown menu for each position in the sudoku and identify it by ``dd(X,Y)``. +In the container we create a dropdown menu for each position in the sudoku and identify it by ``dd(X,Y)``. The first four lines will set the size and position of the dropdown. The special angular attribute ``class`` will set the style of the dropdown depending on the subgrid it belongs to, and if it is an initial value. In the last lines we use the following special predicates. First, ``_clinguin_assume``, and ``_clinguin_browsing`` are part of the domain state (which can be extended by the Backend). Then, we use the predicate ``_all`` for accessing atoms that are in all models (see :ref:`domain-state`). By doing so, the last two lines define the selected value of the dropdown as the value that the sudoku encoding is infering, either by a user assumption or due to the domain constraints. .. code-block:: @@ -90,7 +92,9 @@ The first four lines will set the size and position of the dropdown. The special attr(dd(X,Y),selected,V):-_all(sudoku(X,Y,V)). attr(dd(X,Y),selected,V):-sudoku(X,Y,V), _clinguin_browsing. -As part of the dropdown we add the different dropdown menu items for all possible values the cell can take. In this case we add all values as items by using the ``class`` attribute; those that are not part of the brave consequences will apear in red and disabled. When a click is performed on the item, the server will be called and instructed to perform the operation ``add_assumption(sudoku(X,Y,V))``. +As part of the dropdown we add the different dropdown menu items for all possible values the cell can take. In this case we add all values as items by using the ``class`` attribute; those that are not part of the brave consequences will apear in red and disabled. +When a click is performed on the item, the server will be called and instructed to perform the operation ``add_assumption(sudoku(X,Y,V))``. +The avaliable operations are defined by the selected backend, in this case we use the :ref:`ClingoMultishotBackend` which is the default, and recomended one. .. code-block:: @@ -107,7 +111,7 @@ We add an additional item in each dropdown menu to clear any previous selection. attr(remove(X,Y), icon, ("fa-ban";"text-info")):-pos(X,Y). when(remove(X,Y), click, call, remove_assumption_signature(sudoku(X,Y,any))):-pos(X,Y). -Finally, we use the menu bar component type to add the title and different operations in the top of the UI. Those options include, removing all assumptions and browsing the solutions. +Finally, we use the menu bar component type to add the title and different operations in the top of the UI. Those options include, removing all assumptions and browsing the solutions. .. code-block:: diff --git a/docs/conf.py b/docs/conf.py index 188c7d9e..54970eb2 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -25,8 +25,12 @@ "uvicorn", "clingodl", "clingraph", + "clingexplaid", ] +autodoc_typehints = "none" +autodoc_class_signature = "separated" + # -- Project information ----------------------------------------------------- project = "clinguin" @@ -34,8 +38,7 @@ author = "Susana Hahn, Alexander Beiser" # The full version, including alpha/beta/rc tags -release = "1.0.1" - +release = "1.0.17" # -- General configuration --------------------------------------------------- @@ -47,21 +50,30 @@ "sphinx.ext.extlinks", "sphinx.ext.mathjax", "sphinx.ext.todo", - "sphinx.ext.viewcode", "sphinx.ext.autodoc", "sphinx.ext.napoleon", "sphinx.ext.autosectionlabel", "sphinx.ext.intersphinx", "furo.sphinxext", "sphinx_copybutton", + "sphinx.ext.viewcode", + "sphinxemoji.sphinxemoji", + "myst_parser", # "sphinx_design", # "sphinx_inline_tabs" ] +# autodoc_default_options = { +# "members": True, +# "private-members": True, +# } + napoleon_include_init_with_doc = False -napoleon_use_admonition_for_examples = False +napoleon_use_admonition_for_examples = True +napoleon_use_admonition_for_notes = True napoleon_use_admonition_for_references = True +napoleon_use_ivar = True # Add any paths that contain templates here, relative to this directory. templates_path = ["_templates"] @@ -119,3 +131,8 @@ copybutton_prompt_text = r">>> |\.\.\. |\$ |In \[\d*\]: | {2,5}\.\.\.: | {5,8}: " copybutton_prompt_is_regexp = True + +source_suffix = { + ".rst": "restructuredtext", + ".md": "markdown", +} diff --git a/docs/index.rst b/docs/index.rst index 46a1eeab..6477c0dd 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -9,7 +9,13 @@ Clinguin: Building UIs in ASP Clinguin enables ASP developers to create interactive User Interface (UI) prototypes using only ASP. UIs are defined as sets of facts, which are then rendered by a fronted to provide continuous interaction with ASP solvers based on user-triggered events. -This and more examples are available in our `examples folder `_! +- :ref:`Quick Start`: Step-by-step guide on how to use clinguin using the sudoku. +- :ref:`Reference Guide`: Explanation of the concepts and components of clinguin. +- :ref:`Frontends`: Elements and attributes available to crate your UI. +- :ref:`Backends`: Available operations and the predicates that will be available to create the UI. +- :ref:`Customization`: Create your own backend or contribute with the *clinguin* project. +- :ref:`Help`: If you are having trouble. +- :ref:`💡 Examples`: To get inspiration for your UI. **Here is a motivation example:** @@ -17,7 +23,7 @@ Consider an ASP encoding that solves the sudoku puzzle where cells are defined b Clinguin will use this encoding and the following ui encoding to construct the UI shown bellow. .. code-block:: - + elem(window, window, root). attr(window, child_layout, grid). @@ -43,8 +49,6 @@ Clinguin will use this encoding and the following ui encoding to construct the U .. image:: ../examples/angular/sudoku_basic/out3.png :width: 30% -For a more detailed explanation on how this code works take a look at the :ref:`Quick Start` section. - .. note:: Clinguin is part the Potassco umbrella (which is the home of Clingo and the other ASP tools) @@ -52,11 +56,13 @@ For a more detailed explanation on how this code works take a look at the :ref:` :hidden: clinguin/installation - clinguin/use.rst - clinguin/reference/index.rst - clinguin/frontends/index.rst - clinguin/backends/index.rst - clinguin/development + clinguin/use + clinguin/reference/index + clinguin/frontends/index + clinguin/backends/index + clinguin/development/index + clinguin/examples_readme + clinguin/help diff --git a/docs/requirements.txt b/docs/requirements.txt index 94c28aaa..69c8f202 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -14,4 +14,5 @@ nbsphinx>=0.8.8 jinja2>=3.0.3 clingo-dl furo +clingexplaid diff --git a/examples/README.md b/examples/README.md index d5665a9c..59fd07fd 100644 --- a/examples/README.md +++ b/examples/README.md @@ -1,85 +1,58 @@ -# Clinguin Examples -Our **[examples folder](.)** shows how to use the range of functionalities in different applications. +# 💡 Examples -## [AngularFrontend](./angular) - -An web UI made with angular and bootstrap. Make sure this fronted was installed according to the documentation before running the examples +Our **[examples folder](https://github.com/potassco/clinguin/tree/master/examples)** shows how to use the range of functionalities in different applications. Follow the links and check out their UI encodings in GitHub to get inspiration. All the examples shown here use the AngularFrontend and different backends. -### Multi-Shot Backend +## ClingoMultiShot Backend -- [angular/placement](./angular/placement) +- [angular/placement_optimized](https://github.com/potassco/clinguin/tree/master/examples/angular/placement_optimized) - - + + + -- [angular/jobshop](./angular/jobshop) +- [angular/sudoku](https://github.com/potassco/clinguin/tree/master/examples/angular/sudoku) - + -- [angular/sudoku](./angular/sudoku) +- [angular/study_regulations](https://github.com/potassco/clinguin/tree/master/examples/angular/study_regulations) - + -- [angular/style](./angular/style) +- [angular/style](https://github.com/potassco/clinguin/tree/master/examples/angular/style) -### Clingraph Backend +## Clingraph Backend -- [angular/graph_coloring](./angular/graph_coloring) +- [angular/graph_coloring](https://github.com/potassco/clinguin/tree/master/examples/angular/graph_coloring) -- [angular/tree_browser](./angular/tree_browser) +- [angular/tree_browser](https://github.com/potassco/clinguin/tree/master/examples/angular/tree_browser) - - -- [angular/ast](./angular/ast) - - - -### Explanation Backend - -- [angular/sudoku_advanced](./angular/sudoku_advanced) - - - + ----- -## [TkinterFrontend](./tkinter) - -An OS dependent UI made by [tkinter](https://docs.python.org/3/library/tkinter.html) python interface. +## Explanation Backend -### Single-Shot Backend -- [tkinter/sudoku_single_shot](./tkinter/sudoku_single_shot) +- [angular/catdog](https://github.com/potassco/clinguin/tree/master/examples/angular/catdog) -### Multi-Shot Backend + + -- [tkinter/housing](./tkinter/housing) - +- [angular/sudoku_advanced](https://github.com/potassco/clinguin/tree/master/examples/angular/sudoku_advanced) -- [tkinter/sudoku](./tkinter/sudoku) + + - -- [tkinter/study_regulations](./tkinter/study_regulations) +## ClingoDL Backend - +- [angular/jobshop](https://github.com/potassco/clinguin/tree/master/examples/angular/jobshop) - -### Clingraph Backend - -- [tkinter/graph_coloring](./tkinter/graph_coloring) - - - - -### Explanation Backend - -- [tkinter/sudoku_explained](./tkinter/sudoku_explained) - - + diff --git a/examples/angular/catdog/README.md b/examples/angular/catdog/README.md new file mode 100644 index 00000000..7d4d0a05 --- /dev/null +++ b/examples/angular/catdog/README.md @@ -0,0 +1,18 @@ +## Cat and Dog people placement + +- **Backend**: `ExplanationBackend` +- **Frontend**: `AngularFrontend` + +This example was used in the paper for clinguin in [ICLP 2024](https://www.iclp24.utdallas.edu/). The aim is to place people in tables so that no cat people are sitting with dog people. + + +### Usage + +``` +clinguin client-server --domain-files examples/angular/catdog/{instance.lp,encoding-explain.lp} --ui-files examples/angular/catdog/{ui-tables.lp,ui-menu.lp,ui-people.lp,ui-explain.lp,ui-explain-msg.lp} --backend ExplanationBackend --assumption-signature cons,2 +``` + +![](out1.png) +![](out2.png) +![](out3.png) + diff --git a/examples/angular/catdog/encoding-explain-example.lp b/examples/angular/catdog/encoding-explain-example.lp new file mode 100644 index 00000000..fbfced70 --- /dev/null +++ b/examples/angular/catdog/encoding-explain-example.lp @@ -0,0 +1,4 @@ +:- assign(P,(T,_)), assign(P',(T,_)), person(P,cat), person(P',dog), + cons(different_type, _). + +{cons(different_type, "All people on a table must prefer the same pet")}. diff --git a/examples/angular/catdog/encoding-explain.lp b/examples/angular/catdog/encoding-explain.lp new file mode 100644 index 00000000..d78d02b8 --- /dev/null +++ b/examples/angular/catdog/encoding-explain.lp @@ -0,0 +1,17 @@ +#include "encoding-explain-example.lp". + +{assign(P,S):seat(S)}:- person(P,_). + +:- person(P,_), not assign(P,_), cons(all_assigned, _). +:- assign(P,S), assign(P,S'), S>S', cons(in_only_one, _). +:- assign(P,S), assign(P',S), P'>P, cons(only_one, _). +:- assign(P,(T,_)), assign(P',(T,_)), person(P,cat), person(P',dog), + cons(different_type, _). + +cons(min,"Minimize"). +cons(all_assigned,"All people need an assigned seat"). +cons(in_only_one,"Each person can only have one seat"). +cons(only_one,"Two people can not be seated on the same seat"). +cons(different_type, "All people on a table must prefer the same pet"). + + diff --git a/examples/angular/catdog/instance.lp b/examples/angular/catdog/instance.lp new file mode 100644 index 00000000..a2792837 --- /dev/null +++ b/examples/angular/catdog/instance.lp @@ -0,0 +1,2 @@ +person("Susana",cat). person("Alexander",cat). person("Torsten",dog). +seat((1,1..2)). seat((2,1..3)). diff --git a/examples/angular/catdog/out1.png b/examples/angular/catdog/out1.png new file mode 100644 index 00000000..2b261da9 Binary files /dev/null and b/examples/angular/catdog/out1.png differ diff --git a/examples/angular/catdog/out2.png b/examples/angular/catdog/out2.png new file mode 100644 index 00000000..feb6b5dc Binary files /dev/null and b/examples/angular/catdog/out2.png differ diff --git a/examples/angular/catdog/out3.png b/examples/angular/catdog/out3.png new file mode 100644 index 00000000..4c970f5e Binary files /dev/null and b/examples/angular/catdog/out3.png differ diff --git a/examples/angular/catdog/ui-explain-msg.lp b/examples/angular/catdog/ui-explain-msg.lp new file mode 100644 index 00000000..818f98d5 --- /dev/null +++ b/examples/angular/catdog/ui-explain-msg.lp @@ -0,0 +1,4 @@ +elem(message_unsat(N), message, w):-_clinguin_mus(cons(N,M)). +attr(message_unsat(N), title, "Explanation"):-_clinguin_mus(cons(N,M)). +attr(message_unsat(N), message, M):-_clinguin_mus(cons(N,M)). +attr(message_unsat(N), type, error):-_clinguin_mus(cons(N,M)). diff --git a/examples/angular/catdog/ui-explain.lp b/examples/angular/catdog/ui-explain.lp new file mode 100644 index 00000000..c4a598fb --- /dev/null +++ b/examples/angular/catdog/ui-explain.lp @@ -0,0 +1,9 @@ +elem(seat_ddi(S,P), dropdown_menu_item, seat_dd(S)):- + not _any(assign(P,S)), person(P,_), seat(S). +attr(seat_ddi(S,P), label, P):- + not _any(assign(P,S)), person(P,_), seat(S). +when(seat_ddi(S,P), click, call, add_assumption(assign(P,S))):- + not _any(assign(P,S)), person(P,_), seat(S). +attr(seat_ddi(S,P), class, "text-danger"):- + not _any(assign(P,S)), person(P,_), seat(S). +attr(seat_dd(S), class, ("text-danger")):- _clinguin_mus(assign(P,S)). diff --git a/examples/angular/catdog/ui-menu.lp b/examples/angular/catdog/ui-menu.lp new file mode 100644 index 00000000..6e6f07bf --- /dev/null +++ b/examples/angular/catdog/ui-menu.lp @@ -0,0 +1,38 @@ +elem(menu_bar, menu_bar, w). +attr(menu_bar, title, "Table placement"). +attr(menu_bar, icon, "fa-utensils"). + +elem(menu_bar_next, button, menu_bar). +attr(menu_bar_next, label, "Next"). +attr(menu_bar_next, icon, "fa-forward-step"). +when(menu_bar_next, click, call, next_solution). + +attr(seat_dd(S), selected, P):- assign(P,S), _clinguin_browsing. +attr(seat_dd(S), class, "text-success"):- _clinguin_browsing, + assign(P,S), not _all(assign(P,S)). +attr(seat_dd(S), class, "opacity-75"):- _all(assign(P,S)), + not _clinguin_assume(assign(P,S)). + + + +%------------------------------ +% Extension from the paper +% ----------------------------- + +% Messages and use of domain state _clinguin_unsat (Could be removed but this might be reached when adding more people than seats) +elem(message_unsat,message,w):-_clinguin_unsat. +attr(message_unsat, title, "Error"):-_clinguin_unsat. +attr(message_unsat, message, "Unsatisfiable output."):-_clinguin_unsat. +attr(message_unsat, type, error):-_clinguin_unsat. + +% Download action for instance (We can remove it and just comment that can be used) +elem(menu_bar_download, button, menu_bar). +attr(menu_bar_download, label, "Download instance"). +attr(menu_bar_download, icon, "fa-download"). +when(menu_bar_download, click, call, (download("#show person/2.","listings/dl_instance.lp"))). + +% Download action for solution and multiple actions for call +elem(menu_bar_download_solution, button, menu_bar). +attr(menu_bar_download_solution, label, "Download solution"). +attr(menu_bar_download_solution, icon, "fa-download"). +when(menu_bar_download_solution, click, call, download("#show assign/2.","listings/dl_solution.lp")). diff --git a/examples/angular/catdog/ui-people.lp b/examples/angular/catdog/ui-people.lp new file mode 100644 index 00000000..87014abc --- /dev/null +++ b/examples/angular/catdog/ui-people.lp @@ -0,0 +1,39 @@ +elem(people, container, w). + +elem(person(P), button, people):- person(P,_). +attr(person(P), label, P):- person(P,_). +attr(person(P), class, ("disabled";"m-2";"btn-sm")):- person(P,_). +attr(person(P), class, ("btn-outline-secondary")):- person(P,cat). +attr(person(P), class, ("btn-outline-warning")):- person(P,dog). +attr(person(P), icon, @concat("","fa-",O)):- person(P,O). + +elem(add_person, button, people). +attr(add_person, label, "Add person"). +attr(add_person, icon, "fa-user-plus"). +attr(add_person, class, ("btn-info";"m-2")). +when(add_person, click, update, (add_modal, visible, shown)). + +elem(add_modal, modal, w). +attr(add_modal, title, "Add person"). +elem(modal_content, container, add_modal). +attr(modal_content, class, ("d-flex";"flex-column")). + +elem(name_tf, textfield, modal_content). +attr(name_tf, placeholder, "Enter the name"). +attr(name_tf, order, 1). +attr(name_tf, width, 250). +when(name_tf, input, context, (name, _value)). + +elem(btns_container, container, modal_content). +attr(btns_container, class, ("d-flex";"flex-row";"justify-content-end")). +attr(btns_container, order, 2). + +pet(cat;dog). +elem(add_btn(O), button, btns_container):- pet(O). +attr(add_btn(O), label, "Add"):- pet(O). +attr(add_btn(cat), class, ("m-1";"btn-secondary";"ml-auto")):- pet(O). +attr(add_btn(dog), class, ("m-1";"btn-warning";"ml-auto")):- pet(O). +attr(add_btn(O), icon, @concat("","fa-",O)):- pet(O). +when(add_btn(O), click, context, (pet, O)):- pet(O). +when(add_btn(O), click, call, + add_atom(person(_context_value(name,str), _context_value(pet)))):- pet(O). diff --git a/examples/angular/catdog/ui-tables.lp b/examples/angular/catdog/ui-tables.lp new file mode 100644 index 00000000..c98ae3af --- /dev/null +++ b/examples/angular/catdog/ui-tables.lp @@ -0,0 +1,34 @@ +elem(w, window, root). +attr(w, flex_direction, row). + +elem(tables, container, w). + +elem(table(T), container, tables):- seat((T,_)). +attr(table(T), order, T):- seat((T,_)). +attr(table(T), width, 200):- seat((T,_)). +attr(table(T), class, ("bg-primary";"bg-opacity-25";"rounded"; + "d-flex";"flex-column";"align-items-start"; + "p-2";"m-2" + )):- seat((T,_)). + +elem(table_label(T), label, table(T)):- seat((T,_)). +attr(table_label(T), order, 1):- seat((T,_)). +attr(table_label(T), label, @concat("","Table",T)):- seat((T,_)). + +elem(seat_dd((T,C)), dropdown_menu, table(T)):- seat((T,C)). +attr(seat_dd((T,C)), order, C+1):- seat((T,C)). +attr(seat_dd(S), class, ("btn-sm";"btn-primary";"m-2")):- seat(S). +attr(seat_dd(S), selected, P):- _all(assign(P,S)). + +elem(seat_ddi(S,P), dropdown_menu_item, seat_dd(S)):-_any(assign(P,S)). +attr(seat_ddi(S,P), label, P):- _any(assign(P,S)). +when(seat_ddi(S,P), click, call, add_assumption(assign(P,S))):- + _any(assign(P,S)). + + +%------------------------------ +% Extension from the paper +% ----------------------------- +elem(seat_ddi(S,remove), dropdown_menu_item, seat_dd(S)):- seat(S). +attr(seat_ddi(S,remove), label, "-"):- seat(S). +when(seat_ddi(S,remove), click, call, remove_assumption_signature(assign(any,(S)))):- seat(S). diff --git a/examples/angular/graph_coloring/ui.lp b/examples/angular/graph_coloring/ui.lp index ed8aa48e..64c0035a 100644 --- a/examples/angular/graph_coloring/ui.lp +++ b/examples/angular/graph_coloring/ui.lp @@ -40,7 +40,7 @@ elem(window, window, root). attr(c1, class, "align-items-end"). elem(b1, button, c1). - when(b1, click, call, download(_context_value_optional(show_download))). + when(b1, click, call, download(_context_value(show_download,str,"#show assign/2."))). attr(b1, label, "Download"). attr(b1, class, "m-1"). attr(b1, class, "btn-success"). diff --git a/examples/angular/jobshop/README.md b/examples/angular/jobshop/README.md index 8a22596f..9536ad3f 100644 --- a/examples/angular/jobshop/README.md +++ b/examples/angular/jobshop/README.md @@ -6,7 +6,7 @@ ### Usage ``` -clinguin client-server --frontend AngularFrontend --domain-files examples/angular/jobshop/encoding.lp examples/angular/jobshop/instance.lp --ui-files examples/angular/jobshop/ui.lp --backend ClingoDLBackend +clinguin client-server --domain-files examples/angular/jobshop/encoding.lp examples/angular/jobshop/instance.lp --ui-files examples/angular/jobshop/ui.lp --backend ClingoDLBackend ``` ![](out.png) diff --git a/examples/angular/placement/README.md b/examples/angular/placement/README.md index a24dc352..f5067fd7 100644 --- a/examples/angular/placement/README.md +++ b/examples/angular/placement/README.md @@ -9,7 +9,7 @@ Showcases multiple features of the web fronted in the form of a smart seat place ### Usage ``` -clinguin client-server --frontend AngularFrontend --domain-files examples/angular/placement/instance.lp examples/angular/placement/encoding.lp --ui-files examples/angular/placement/ui.lp +clinguin client-server --domain-files examples/angular/placement/instance.lp examples/angular/placement/encoding.lp --ui-files examples/angular/placement/ui.lp ``` ![](out1.png) diff --git a/examples/angular/placement/ui.lp b/examples/angular/placement/ui.lp index 75e9d409..b832ff2b 100644 --- a/examples/angular/placement/ui.lp +++ b/examples/angular/placement/ui.lp @@ -12,6 +12,7 @@ attr(window, flex_direction, row). elem(modal, modal, window). attr(modal, title, "Add person"). + attr(modal, size, "xl"). elem(c1, container, modal). attr(c1, child_layout, flex). @@ -24,8 +25,8 @@ attr(window, flex_direction, row). when(t1, input, context, (t1_content, _value)). elem(b1, button, c1). - when(b1, click, call, (add_atom(person(_context_value(t1_content))), - set_external(include(_context_value(t1_content)),true))). + when(b1, click, call, (add_atom(person(_context_value(t1_content,str))), + set_external(include(_context_value(t1_content,str)),true))). attr(b1, label, "Add"). attr(b1, class, "m-1"). attr(b1, class, "btn-secondary"). @@ -82,7 +83,7 @@ attr(window, flex_direction, row). elem(included_l(P), container, included(P)):- person(P). attr(included_l(P), class, "w-75"):- person(P). attr(included_l(P), flex_direction, row):- person(P). - + elem(included_btn(P), button, included_l(P)):- person(P). attr(included_btn(P), class, "btn-sm"):- person(P). attr(included_btn(P), class, "rounded-circle"):- person(P). @@ -90,7 +91,7 @@ attr(window, flex_direction, row). attr(included_btn(P), icon, "fa-circle-xmark"):- person(P), not include(P). attr(included_btn(P), class, "text-success"):- person(P), include(P). attr(included_btn(P), class, "text-danger"):- person(P), not include(P). - + elem(included_label(P), label, included_l(P)):- person(P). attr(included_label(P), label, P):- person(P). attr(included_label(P), class, "text-capitalize"):- person(P). diff --git a/examples/angular/placement_optimized/README.md b/examples/angular/placement_optimized/README.md new file mode 100644 index 00000000..d115f6d8 --- /dev/null +++ b/examples/angular/placement_optimized/README.md @@ -0,0 +1,18 @@ +## Placement + +- **Backend**: `ClingoMultishotBackend` +- **Frontend**: `AngularFrontend` + +This example show how to use consequences with optimization statements to have user feedback on optimal models. + +The option ` --opt-timeout 0` makes sure that one model is computed at a time to try to find the optimal one. + +### Usage + +``` +clinguin client-server --domain-files examples/angular/placement_optimized/instance.lp examples/angular/placement_optimized/encoding.lp --ui-files examples/angular/placement_optimized/ui.lp --opt-timeout 0 +``` + +![](out1.png) +![](out2.png) +![](out3.png) diff --git a/examples/angular/placement_optimized/encoding.lp b/examples/angular/placement_optimized/encoding.lp new file mode 100644 index 00000000..4f1d2533 --- /dev/null +++ b/examples/angular/placement_optimized/encoding.lp @@ -0,0 +1,13 @@ + +% #external setting_seats. +#external include(P):person(P). + +1{assign(seat(S,T),P):seat(S,T)}1:-include(P). + +:- assign(B,P1),assign(B,P2),P1=5.6.0 + clingo clorm>=1.4.1 clingo-dl fastapi==0.103.* @@ -20,6 +20,7 @@ install_requires = uvicorn clingraph Pillow + clingexplaid [options.package_data] @@ -27,19 +28,20 @@ install_requires = [options.extras_require] -tkinter = +tkinter = tk - + doc = sphinx==6.2.1 nbsphinx furo sphinx_inline_tabs sphinx_copybutton + sphinxemoji -test = +test = nox - + format = nox autoflake @@ -48,9 +50,9 @@ format = lint_flake8 = nox - flake8 + flake8 -lint_pylint = +lint_pylint = nox pylint diff --git a/tests/reference_json_output/__init__.py b/tests/reference_json_output/__init__.py index 404069e9..5ee42ece 100644 --- a/tests/reference_json_output/__init__.py +++ b/tests/reference_json_output/__init__.py @@ -33,5 +33,5 @@ BasicTest10.__name__, BasicTest11.__name__, BasicTest12.__name__, - Sudoku.__name__ + Sudoku.__name__, ] diff --git a/tests/reference_json_output/basic_test_01.py b/tests/reference_json_output/basic_test_01.py index 4c3d9094..0a6e9eba 100644 --- a/tests/reference_json_output/basic_test_01.py +++ b/tests/reference_json_output/basic_test_01.py @@ -42,8 +42,8 @@ def get_reference_json(cls): { "id": "mi(2)", "event": "click", - "interaction_type": "callback", - "policy": "add_assumption(p(2))", + "action": "callback", + "operation": "add_assumption(p(2))", } ], "children": [], @@ -59,8 +59,8 @@ def get_reference_json(cls): { "id": "mi(1)", "event": "click", - "interaction_type": "callback", - "policy": "add_assumption(p(1))", + "action": "callback", + "operation": "add_assumption(p(1))", } ], "children": [], @@ -129,8 +129,8 @@ def post_p_1_reference_json(cls): { "id": "mi(1)", "event": "click", - "interaction_type": "callback", - "policy": "add_assumption(p(1))", + "action": "callback", + "operation": "add_assumption(p(1))", } ], "children": [], @@ -199,8 +199,8 @@ def get_p_1_reference_json(cls): { "id": "mi(1)", "event": "click", - "interaction_type": "callback", - "policy": "add_assumption(p(1))", + "action": "callback", + "operation": "add_assumption(p(1))", } ], "children": [], @@ -269,8 +269,8 @@ def post_p_2_reference_json(cls): { "id": "mi(2)", "event": "click", - "interaction_type": "callback", - "policy": "add_assumption(p(2))", + "action": "callback", + "operation": "add_assumption(p(2))", } ], "children": [], @@ -338,8 +338,8 @@ def get_p_2_reference_json(cls): { "id": "mi(2)", "event": "click", - "interaction_type": "callback", - "policy": "add_assumption(p(2))", + "action": "callback", + "operation": "add_assumption(p(2))", } ], "children": [], diff --git a/tests/reference_json_output/basic_test_03.py b/tests/reference_json_output/basic_test_03.py index 5f091604..4af7f2aa 100644 --- a/tests/reference_json_output/basic_test_03.py +++ b/tests/reference_json_output/basic_test_03.py @@ -100,8 +100,8 @@ def get_reference_json(cls): { "id": "mi(2)", "event": "click", - "interaction_type": "callback", - "policy": "add_assumption(p(2))", + "action": "callback", + "operation": "add_assumption(p(2))", } ], "children": [], @@ -121,8 +121,8 @@ def get_reference_json(cls): { "id": "mi(1)", "event": "click", - "interaction_type": "callback", - "policy": "add_assumption(p(1))", + "action": "callback", + "operation": "add_assumption(p(1))", } ], "children": [], @@ -518,8 +518,8 @@ def get_reference_json(cls): { "id": "b", "event": "click", - "interaction_type": "callback", - "policy": "clear_assumptions", + "action": "callback", + "operation": "clear_assumptions", } ], "children": [], @@ -562,8 +562,8 @@ def get_reference_json(cls): { "id": "l1", "event": "click", - "interaction_type": "callback", - "policy": "clear_assumptions", + "action": "callback", + "operation": "clear_assumptions", } ], "children": [], @@ -674,8 +674,8 @@ def post_p_1_reference_json(cls): { "id": "mi(1)", "event": "click", - "interaction_type": "callback", - "policy": "add_assumption(p(1))", + "action": "callback", + "operation": "add_assumption(p(1))", } ], "children": [], @@ -1071,8 +1071,8 @@ def post_p_1_reference_json(cls): { "id": "b", "event": "click", - "interaction_type": "callback", - "policy": "clear_assumptions", + "action": "callback", + "operation": "clear_assumptions", } ], "children": [], @@ -1115,8 +1115,8 @@ def post_p_1_reference_json(cls): { "id": "l1", "event": "click", - "interaction_type": "callback", - "policy": "clear_assumptions", + "action": "callback", + "operation": "clear_assumptions", } ], "children": [], @@ -1226,8 +1226,8 @@ def post_p_2_reference_json(cls): { "id": "mi(2)", "event": "click", - "interaction_type": "callback", - "policy": "add_assumption(p(2))", + "action": "callback", + "operation": "add_assumption(p(2))", } ], "children": [], @@ -1247,8 +1247,8 @@ def post_p_2_reference_json(cls): { "id": "mi(1)", "event": "click", - "interaction_type": "callback", - "policy": "add_assumption(p(1))", + "action": "callback", + "operation": "add_assumption(p(1))", } ], "children": [], @@ -1644,8 +1644,8 @@ def post_p_2_reference_json(cls): { "id": "b", "event": "click", - "interaction_type": "callback", - "policy": "clear_assumptions", + "action": "callback", + "operation": "clear_assumptions", } ], "children": [], @@ -1688,8 +1688,8 @@ def post_p_2_reference_json(cls): { "id": "l1", "event": "click", - "interaction_type": "callback", - "policy": "clear_assumptions", + "action": "callback", + "operation": "clear_assumptions", } ], "children": [], @@ -1799,8 +1799,8 @@ def post_p_3_reference_json(cls): { "id": "mi(2)", "event": "click", - "interaction_type": "callback", - "policy": "add_assumption(p(2))", + "action": "callback", + "operation": "add_assumption(p(2))", } ], "children": [], @@ -1820,8 +1820,8 @@ def post_p_3_reference_json(cls): { "id": "mi(1)", "event": "click", - "interaction_type": "callback", - "policy": "add_assumption(p(1))", + "action": "callback", + "operation": "add_assumption(p(1))", } ], "children": [], @@ -2217,8 +2217,8 @@ def post_p_3_reference_json(cls): { "id": "b", "event": "click", - "interaction_type": "callback", - "policy": "clear_assumptions", + "action": "callback", + "operation": "clear_assumptions", } ], "children": [], @@ -2261,8 +2261,8 @@ def post_p_3_reference_json(cls): { "id": "l1", "event": "click", - "interaction_type": "callback", - "policy": "clear_assumptions", + "action": "callback", + "operation": "clear_assumptions", } ], "children": [], diff --git a/tests/reference_json_output/basic_test_04.py b/tests/reference_json_output/basic_test_04.py index 587cd225..c12221b2 100644 --- a/tests/reference_json_output/basic_test_04.py +++ b/tests/reference_json_output/basic_test_04.py @@ -75,8 +75,8 @@ def get_reference_json(cls): { "id": "ms1i2", "event": "click", - "interaction_type": "callback", - "policy": "clear_assumptions", + "action": "callback", + "operation": "clear_assumptions", } ], "children": [], @@ -317,8 +317,8 @@ def get_reference_json(cls): { "id": "b", "event": "click", - "interaction_type": "callback", - "policy": "clear_assumptions", + "action": "callback", + "operation": "clear_assumptions", } ], "children": [], diff --git a/tests/reference_json_output/basic_test_07.py b/tests/reference_json_output/basic_test_07.py index 1906ac22..f2222238 100644 --- a/tests/reference_json_output/basic_test_07.py +++ b/tests/reference_json_output/basic_test_07.py @@ -25,15 +25,15 @@ def get_reference_json(cls): "when": [], "children": [ { - "id": "canv", + "id": "canvis(1)", "type": "canvas", "parent": "window", "attributes": [ - {"id": "canv", "key": "height", "value": "500"}, - {"id": "canv", "key": "width", "value": "450"}, - {"id": "canv", "key": "resize", "value": "true"}, + {"id": "canvis(1)", "key": "height", "value": "500"}, + {"id": "canvis(1)", "key": "width", "value": "450"}, + {"id": "canvis(1)", "key": "resize", "value": "true"}, { - "id": "canv", + "id": "canvis(1)", "key": "image", "value": '"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"', }, diff --git a/tests/reference_json_output/basic_test_09.py b/tests/reference_json_output/basic_test_09.py index 615d7b2d..8980565d 100644 --- a/tests/reference_json_output/basic_test_09.py +++ b/tests/reference_json_output/basic_test_09.py @@ -39,8 +39,8 @@ def get_reference_json(cls): { "id": "dmp(1)", "event": "click", - "interaction_type": "callback", - "policy": "add_assumption(p(1))", + "action": "callback", + "operation": "add_assumption(p(1))", } ], "children": [], @@ -56,8 +56,8 @@ def get_reference_json(cls): { "id": "dmp(2)", "event": "click", - "interaction_type": "callback", - "policy": "add_assumption(p(2))", + "action": "callback", + "operation": "add_assumption(p(2))", } ], "children": [], @@ -92,8 +92,8 @@ def get_reference_json(cls): { "id": "l", "event": "click", - "interaction_type": "callback", - "policy": "clear_assumptions", + "action": "callback", + "operation": "clear_assumptions", } ], "children": [], @@ -144,8 +144,8 @@ def post_p_1_reference_json(cls): { "id": "dmp(2)", "event": "click", - "interaction_type": "callback", - "policy": "add_assumption(p(2))", + "action": "callback", + "operation": "add_assumption(p(2))", } ], "children": [], @@ -180,8 +180,8 @@ def post_p_1_reference_json(cls): { "id": "l", "event": "click", - "interaction_type": "callback", - "policy": "clear_assumptions", + "action": "callback", + "operation": "clear_assumptions", } ], "children": [], @@ -232,8 +232,8 @@ def get_p_2_reference_json(cls): { "id": "dmp(2)", "event": "click", - "interaction_type": "callback", - "policy": "add_assumption(p(2))", + "action": "callback", + "operation": "add_assumption(p(2))", } ], "children": [], @@ -268,8 +268,8 @@ def get_p_2_reference_json(cls): { "id": "l", "event": "click", - "interaction_type": "callback", - "policy": "clear_assumptions", + "action": "callback", + "operation": "clear_assumptions", } ], "children": [], @@ -318,8 +318,8 @@ def post_p_3_reference_json(cls): { "id": "dmp(1)", "event": "click", - "interaction_type": "callback", - "policy": "add_assumption(p(1))", + "action": "callback", + "operation": "add_assumption(p(1))", } ], "children": [], @@ -335,8 +335,8 @@ def post_p_3_reference_json(cls): { "id": "dmp(2)", "event": "click", - "interaction_type": "callback", - "policy": "add_assumption(p(2))", + "action": "callback", + "operation": "add_assumption(p(2))", } ], "children": [], @@ -371,8 +371,8 @@ def post_p_3_reference_json(cls): { "id": "l", "event": "click", - "interaction_type": "callback", - "policy": "clear_assumptions", + "action": "callback", + "operation": "clear_assumptions", } ], "children": [], diff --git a/tests/reference_json_output/basic_test_12.py b/tests/reference_json_output/basic_test_12.py index 12f7839f..2d6bfbed 100644 --- a/tests/reference_json_output/basic_test_12.py +++ b/tests/reference_json_output/basic_test_12.py @@ -53,8 +53,8 @@ def get_reference_json(cls): { "id": "b1", "event": "click", - "interaction_type": "callback", - "policy": "add_atom(name(_context_value(t1_content)))", + "action": "callback", + "operation": "add_atom(name(_context_value(t1_content)))", } ], "children": [], @@ -74,8 +74,8 @@ def get_reference_json(cls): { "id": "t1", "event": "input", - "interaction_type": "context", - "policy": "(t1_content,_value)", + "action": "context", + "operation": "(t1_content,_value)", } ], "children": [], diff --git a/tests/reference_json_output/coloring.py b/tests/reference_json_output/coloring.py index dc427f48..9b2a1002 100644 --- a/tests/reference_json_output/coloring.py +++ b/tests/reference_json_output/coloring.py @@ -66,7 +66,7 @@ def get_reference_json(cls): { "id": "dmc(6)", "action": "clear", - "policy": "remove_assumption_signature(assign(6,any))", + "operation": "remove_assumption_signature(assign(6,any))", } ], "children": [ @@ -85,7 +85,7 @@ def get_reference_json(cls): { "id": "dmi(6,blue)", "action": "click", - "policy": "add_assumption(assign(6,blue))", + "operation": "add_assumption(assign(6,blue))", } ], "children": [], @@ -105,7 +105,7 @@ def get_reference_json(cls): { "id": "dmi(6,green)", "action": "click", - "policy": "add_assumption(assign(6,green))", + "operation": "add_assumption(assign(6,green))", } ], "children": [], @@ -125,7 +125,7 @@ def get_reference_json(cls): { "id": "dmi(6,red)", "action": "click", - "policy": "add_assumption(assign(6,red))", + "operation": "add_assumption(assign(6,red))", } ], "children": [], @@ -190,7 +190,7 @@ def get_reference_json(cls): { "id": "dmc(5)", "action": "clear", - "policy": "remove_assumption_signature(assign(5,any))", + "operation": "remove_assumption_signature(assign(5,any))", } ], "children": [ @@ -209,7 +209,7 @@ def get_reference_json(cls): { "id": "dmi(5,blue)", "action": "click", - "policy": "add_assumption(assign(5,blue))", + "operation": "add_assumption(assign(5,blue))", } ], "children": [], @@ -229,7 +229,7 @@ def get_reference_json(cls): { "id": "dmi(5,green)", "action": "click", - "policy": "add_assumption(assign(5,green))", + "operation": "add_assumption(assign(5,green))", } ], "children": [], @@ -249,7 +249,7 @@ def get_reference_json(cls): { "id": "dmi(5,red)", "action": "click", - "policy": "add_assumption(assign(5,red))", + "operation": "add_assumption(assign(5,red))", } ], "children": [], @@ -314,7 +314,7 @@ def get_reference_json(cls): { "id": "dmc(4)", "action": "clear", - "policy": "remove_assumption_signature(assign(4,any))", + "operation": "remove_assumption_signature(assign(4,any))", } ], "children": [ @@ -333,7 +333,7 @@ def get_reference_json(cls): { "id": "dmi(4,blue)", "action": "click", - "policy": "add_assumption(assign(4,blue))", + "operation": "add_assumption(assign(4,blue))", } ], "children": [], @@ -353,7 +353,7 @@ def get_reference_json(cls): { "id": "dmi(4,green)", "action": "click", - "policy": "add_assumption(assign(4,green))", + "operation": "add_assumption(assign(4,green))", } ], "children": [], @@ -373,7 +373,7 @@ def get_reference_json(cls): { "id": "dmi(4,red)", "action": "click", - "policy": "add_assumption(assign(4,red))", + "operation": "add_assumption(assign(4,red))", } ], "children": [], @@ -438,7 +438,7 @@ def get_reference_json(cls): { "id": "dmc(3)", "action": "clear", - "policy": "remove_assumption_signature(assign(3,any))", + "operation": "remove_assumption_signature(assign(3,any))", } ], "children": [ @@ -457,7 +457,7 @@ def get_reference_json(cls): { "id": "dmi(3,blue)", "action": "click", - "policy": "add_assumption(assign(3,blue))", + "operation": "add_assumption(assign(3,blue))", } ], "children": [], @@ -477,7 +477,7 @@ def get_reference_json(cls): { "id": "dmi(3,green)", "action": "click", - "policy": "add_assumption(assign(3,green))", + "operation": "add_assumption(assign(3,green))", } ], "children": [], @@ -497,7 +497,7 @@ def get_reference_json(cls): { "id": "dmi(3,red)", "action": "click", - "policy": "add_assumption(assign(3,red))", + "operation": "add_assumption(assign(3,red))", } ], "children": [], @@ -562,7 +562,7 @@ def get_reference_json(cls): { "id": "dmc(2)", "action": "clear", - "policy": "remove_assumption_signature(assign(2,any))", + "operation": "remove_assumption_signature(assign(2,any))", } ], "children": [ @@ -581,7 +581,7 @@ def get_reference_json(cls): { "id": "dmi(2,blue)", "action": "click", - "policy": "add_assumption(assign(2,blue))", + "operation": "add_assumption(assign(2,blue))", } ], "children": [], @@ -601,7 +601,7 @@ def get_reference_json(cls): { "id": "dmi(2,green)", "action": "click", - "policy": "add_assumption(assign(2,green))", + "operation": "add_assumption(assign(2,green))", } ], "children": [], @@ -621,7 +621,7 @@ def get_reference_json(cls): { "id": "dmi(2,red)", "action": "click", - "policy": "add_assumption(assign(2,red))", + "operation": "add_assumption(assign(2,red))", } ], "children": [], @@ -686,7 +686,7 @@ def get_reference_json(cls): { "id": "dmc(1)", "action": "clear", - "policy": "remove_assumption_signature(assign(1,any))", + "operation": "remove_assumption_signature(assign(1,any))", } ], "children": [ @@ -705,7 +705,7 @@ def get_reference_json(cls): { "id": "dmi(1,blue)", "action": "click", - "policy": "add_assumption(assign(1,blue))", + "operation": "add_assumption(assign(1,blue))", } ], "children": [], @@ -725,7 +725,7 @@ def get_reference_json(cls): { "id": "dmi(1,green)", "action": "click", - "policy": "add_assumption(assign(1,green))", + "operation": "add_assumption(assign(1,green))", } ], "children": [], @@ -745,7 +745,7 @@ def get_reference_json(cls): { "id": "dmi(1,red)", "action": "click", - "policy": "add_assumption(assign(1,red))", + "operation": "add_assumption(assign(1,red))", } ], "children": [], @@ -852,7 +852,7 @@ def post_assumption_1(cls): { "id": "dmc(6)", "action": "clear", - "policy": "remove_assumption_signature(assign(6,any))", + "operation": "remove_assumption_signature(assign(6,any))", } ], "children": [ @@ -871,7 +871,7 @@ def post_assumption_1(cls): { "id": "dmi(6,blue)", "action": "click", - "policy": "add_assumption(assign(6,blue))", + "operation": "add_assumption(assign(6,blue))", } ], "children": [], @@ -891,7 +891,7 @@ def post_assumption_1(cls): { "id": "dmi(6,green)", "action": "click", - "policy": "add_assumption(assign(6,green))", + "operation": "add_assumption(assign(6,green))", } ], "children": [], @@ -911,7 +911,7 @@ def post_assumption_1(cls): { "id": "dmi(6,red)", "action": "click", - "policy": "add_assumption(assign(6,red))", + "operation": "add_assumption(assign(6,red))", } ], "children": [], @@ -976,7 +976,7 @@ def post_assumption_1(cls): { "id": "dmc(5)", "action": "clear", - "policy": "remove_assumption_signature(assign(5,any))", + "operation": "remove_assumption_signature(assign(5,any))", } ], "children": [ @@ -995,7 +995,7 @@ def post_assumption_1(cls): { "id": "dmi(5,blue)", "action": "click", - "policy": "add_assumption(assign(5,blue))", + "operation": "add_assumption(assign(5,blue))", } ], "children": [], @@ -1015,7 +1015,7 @@ def post_assumption_1(cls): { "id": "dmi(5,green)", "action": "click", - "policy": "add_assumption(assign(5,green))", + "operation": "add_assumption(assign(5,green))", } ], "children": [], @@ -1035,7 +1035,7 @@ def post_assumption_1(cls): { "id": "dmi(5,red)", "action": "click", - "policy": "add_assumption(assign(5,red))", + "operation": "add_assumption(assign(5,red))", } ], "children": [], @@ -1105,7 +1105,7 @@ def post_assumption_1(cls): { "id": "dmc(1)", "action": "clear", - "policy": "remove_assumption_signature(assign(1,any))", + "operation": "remove_assumption_signature(assign(1,any))", } ], "children": [ @@ -1124,7 +1124,7 @@ def post_assumption_1(cls): { "id": "dmi(1,blue)", "action": "click", - "policy": "add_assumption(assign(1,blue))", + "operation": "add_assumption(assign(1,blue))", } ], "children": [], @@ -1189,7 +1189,7 @@ def post_assumption_1(cls): { "id": "dmc(4)", "action": "clear", - "policy": "remove_assumption_signature(assign(4,any))", + "operation": "remove_assumption_signature(assign(4,any))", } ], "children": [ @@ -1208,7 +1208,7 @@ def post_assumption_1(cls): { "id": "dmi(4,green)", "action": "click", - "policy": "add_assumption(assign(4,green))", + "operation": "add_assumption(assign(4,green))", } ], "children": [], @@ -1228,7 +1228,7 @@ def post_assumption_1(cls): { "id": "dmi(4,red)", "action": "click", - "policy": "add_assumption(assign(4,red))", + "operation": "add_assumption(assign(4,red))", } ], "children": [], @@ -1293,7 +1293,7 @@ def post_assumption_1(cls): { "id": "dmc(3)", "action": "clear", - "policy": "remove_assumption_signature(assign(3,any))", + "operation": "remove_assumption_signature(assign(3,any))", } ], "children": [ @@ -1312,7 +1312,7 @@ def post_assumption_1(cls): { "id": "dmi(3,green)", "action": "click", - "policy": "add_assumption(assign(3,green))", + "operation": "add_assumption(assign(3,green))", } ], "children": [], @@ -1332,7 +1332,7 @@ def post_assumption_1(cls): { "id": "dmi(3,red)", "action": "click", - "policy": "add_assumption(assign(3,red))", + "operation": "add_assumption(assign(3,red))", } ], "children": [], @@ -1397,7 +1397,7 @@ def post_assumption_1(cls): { "id": "dmc(2)", "action": "clear", - "policy": "remove_assumption_signature(assign(2,any))", + "operation": "remove_assumption_signature(assign(2,any))", } ], "children": [ @@ -1416,7 +1416,7 @@ def post_assumption_1(cls): { "id": "dmi(2,green)", "action": "click", - "policy": "add_assumption(assign(2,green))", + "operation": "add_assumption(assign(2,green))", } ], "children": [], @@ -1436,7 +1436,7 @@ def post_assumption_1(cls): { "id": "dmi(2,red)", "action": "click", - "policy": "add_assumption(assign(2,red))", + "operation": "add_assumption(assign(2,red))", } ], "children": [], @@ -1543,7 +1543,7 @@ def post_assumption_2(cls): { "id": "dmc(6)", "action": "clear", - "policy": "remove_assumption_signature(assign(6,any))", + "operation": "remove_assumption_signature(assign(6,any))", } ], "children": [ @@ -1562,7 +1562,7 @@ def post_assumption_2(cls): { "id": "dmi(6,blue)", "action": "click", - "policy": "add_assumption(assign(6,blue))", + "operation": "add_assumption(assign(6,blue))", } ], "children": [], @@ -1582,7 +1582,7 @@ def post_assumption_2(cls): { "id": "dmi(6,red)", "action": "click", - "policy": "add_assumption(assign(6,red))", + "operation": "add_assumption(assign(6,red))", } ], "children": [], @@ -1647,7 +1647,7 @@ def post_assumption_2(cls): { "id": "dmc(5)", "action": "clear", - "policy": "remove_assumption_signature(assign(5,any))", + "operation": "remove_assumption_signature(assign(5,any))", } ], "children": [ @@ -1666,7 +1666,7 @@ def post_assumption_2(cls): { "id": "dmi(5,blue)", "action": "click", - "policy": "add_assumption(assign(5,blue))", + "operation": "add_assumption(assign(5,blue))", } ], "children": [], @@ -1686,7 +1686,7 @@ def post_assumption_2(cls): { "id": "dmi(5,red)", "action": "click", - "policy": "add_assumption(assign(5,red))", + "operation": "add_assumption(assign(5,red))", } ], "children": [], @@ -1756,7 +1756,7 @@ def post_assumption_2(cls): { "id": "dmc(1)", "action": "clear", - "policy": "remove_assumption_signature(assign(1,any))", + "operation": "remove_assumption_signature(assign(1,any))", } ], "children": [ @@ -1775,7 +1775,7 @@ def post_assumption_2(cls): { "id": "dmi(1,blue)", "action": "click", - "policy": "add_assumption(assign(1,blue))", + "operation": "add_assumption(assign(1,blue))", } ], "children": [], @@ -1845,7 +1845,7 @@ def post_assumption_2(cls): { "id": "dmc(3)", "action": "clear", - "policy": "remove_assumption_signature(assign(3,any))", + "operation": "remove_assumption_signature(assign(3,any))", } ], "children": [ @@ -1864,7 +1864,7 @@ def post_assumption_2(cls): { "id": "dmi(3,green)", "action": "click", - "policy": "add_assumption(assign(3,green))", + "operation": "add_assumption(assign(3,green))", } ], "children": [], @@ -1934,7 +1934,7 @@ def post_assumption_2(cls): { "id": "dmc(2)", "action": "clear", - "policy": "remove_assumption_signature(assign(2,any))", + "operation": "remove_assumption_signature(assign(2,any))", } ], "children": [ @@ -1953,7 +1953,7 @@ def post_assumption_2(cls): { "id": "dmi(2,green)", "action": "click", - "policy": "add_assumption(assign(2,green))", + "operation": "add_assumption(assign(2,green))", } ], "children": [], @@ -2023,7 +2023,7 @@ def post_assumption_2(cls): { "id": "dmc(4)", "action": "clear", - "policy": "remove_assumption_signature(assign(4,any))", + "operation": "remove_assumption_signature(assign(4,any))", } ], "children": [ @@ -2042,7 +2042,7 @@ def post_assumption_2(cls): { "id": "dmi(4,red)", "action": "click", - "policy": "add_assumption(assign(4,red))", + "operation": "add_assumption(assign(4,red))", } ], "children": [], @@ -2154,7 +2154,7 @@ def post_assumption_3(cls): { "id": "dmc(5)", "action": "clear", - "policy": "remove_assumption_signature(assign(5,any))", + "operation": "remove_assumption_signature(assign(5,any))", } ], "children": [ @@ -2173,7 +2173,7 @@ def post_assumption_3(cls): { "id": "dmi(5,blue)", "action": "click", - "policy": "add_assumption(assign(5,blue))", + "operation": "add_assumption(assign(5,blue))", } ], "children": [], @@ -2243,7 +2243,7 @@ def post_assumption_3(cls): { "id": "dmc(1)", "action": "clear", - "policy": "remove_assumption_signature(assign(1,any))", + "operation": "remove_assumption_signature(assign(1,any))", } ], "children": [ @@ -2262,7 +2262,7 @@ def post_assumption_3(cls): { "id": "dmi(1,blue)", "action": "click", - "policy": "add_assumption(assign(1,blue))", + "operation": "add_assumption(assign(1,blue))", } ], "children": [], @@ -2332,7 +2332,7 @@ def post_assumption_3(cls): { "id": "dmc(3)", "action": "clear", - "policy": "remove_assumption_signature(assign(3,any))", + "operation": "remove_assumption_signature(assign(3,any))", } ], "children": [ @@ -2351,7 +2351,7 @@ def post_assumption_3(cls): { "id": "dmi(3,green)", "action": "click", - "policy": "add_assumption(assign(3,green))", + "operation": "add_assumption(assign(3,green))", } ], "children": [], @@ -2421,7 +2421,7 @@ def post_assumption_3(cls): { "id": "dmc(2)", "action": "clear", - "policy": "remove_assumption_signature(assign(2,any))", + "operation": "remove_assumption_signature(assign(2,any))", } ], "children": [ @@ -2440,7 +2440,7 @@ def post_assumption_3(cls): { "id": "dmi(2,green)", "action": "click", - "policy": "add_assumption(assign(2,green))", + "operation": "add_assumption(assign(2,green))", } ], "children": [], @@ -2510,7 +2510,7 @@ def post_assumption_3(cls): { "id": "dmc(6)", "action": "clear", - "policy": "remove_assumption_signature(assign(6,any))", + "operation": "remove_assumption_signature(assign(6,any))", } ], "children": [ @@ -2529,7 +2529,7 @@ def post_assumption_3(cls): { "id": "dmi(6,red)", "action": "click", - "policy": "add_assumption(assign(6,red))", + "operation": "add_assumption(assign(6,red))", } ], "children": [], @@ -2599,7 +2599,7 @@ def post_assumption_3(cls): { "id": "dmc(4)", "action": "clear", - "policy": "remove_assumption_signature(assign(4,any))", + "operation": "remove_assumption_signature(assign(4,any))", } ], "children": [ @@ -2618,7 +2618,7 @@ def post_assumption_3(cls): { "id": "dmi(4,red)", "action": "click", - "policy": "add_assumption(assign(4,red))", + "operation": "add_assumption(assign(4,red))", } ], "children": [], diff --git a/tests/reference_json_output/health.py b/tests/reference_json_output/health.py index b6da14b2..22d551b8 100644 --- a/tests/reference_json_output/health.py +++ b/tests/reference_json_output/health.py @@ -6,7 +6,7 @@ class Health: def get_reference_json(cls): json_dict = { "name": "clinguin", - "version": "1.0.1", + "version": "1.0.17", "description": "An interactive visualizer for clingo", } diff --git a/tests/reference_json_output/sudoku.py b/tests/reference_json_output/sudoku.py index 30c7b560..2a2ee149 100644 --- a/tests/reference_json_output/sudoku.py +++ b/tests/reference_json_output/sudoku.py @@ -57,7 +57,7 @@ def get_reference_json(cls): { "id": "m(8,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(8,9,any))", + "operation": "remove_assumption_signature(sudoku(8,9,any))", } ], "children": [ @@ -76,7 +76,7 @@ def get_reference_json(cls): { "id": "mi(8,9,9)", "action": "click", - "policy": "add_assumption(sudoku(8,9,9))", + "operation": "add_assumption(sudoku(8,9,9))", } ], "children": [], @@ -96,7 +96,7 @@ def get_reference_json(cls): { "id": "mi(8,9,8)", "action": "click", - "policy": "add_assumption(sudoku(8,9,8))", + "operation": "add_assumption(sudoku(8,9,8))", } ], "children": [], @@ -116,7 +116,7 @@ def get_reference_json(cls): { "id": "mi(8,9,5)", "action": "click", - "policy": "add_assumption(sudoku(8,9,5))", + "operation": "add_assumption(sudoku(8,9,5))", } ], "children": [], @@ -157,7 +157,7 @@ def get_reference_json(cls): { "id": "m(5,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(5,9,any))", + "operation": "remove_assumption_signature(sudoku(5,9,any))", } ], "children": [ @@ -176,7 +176,7 @@ def get_reference_json(cls): { "id": "mi(5,9,9)", "action": "click", - "policy": "add_assumption(sudoku(5,9,9))", + "operation": "add_assumption(sudoku(5,9,9))", } ], "children": [], @@ -196,7 +196,7 @@ def get_reference_json(cls): { "id": "mi(5,9,5)", "action": "click", - "policy": "add_assumption(sudoku(5,9,5))", + "operation": "add_assumption(sudoku(5,9,5))", } ], "children": [], @@ -216,7 +216,7 @@ def get_reference_json(cls): { "id": "mi(5,9,3)", "action": "click", - "policy": "add_assumption(sudoku(5,9,3))", + "operation": "add_assumption(sudoku(5,9,3))", } ], "children": [], @@ -236,7 +236,7 @@ def get_reference_json(cls): { "id": "mi(5,9,1)", "action": "click", - "policy": "add_assumption(sudoku(5,9,1))", + "operation": "add_assumption(sudoku(5,9,1))", } ], "children": [], @@ -277,7 +277,7 @@ def get_reference_json(cls): { "id": "m(2,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(2,9,any))", + "operation": "remove_assumption_signature(sudoku(2,9,any))", } ], "children": [ @@ -296,7 +296,7 @@ def get_reference_json(cls): { "id": "mi(2,9,9)", "action": "click", - "policy": "add_assumption(sudoku(2,9,9))", + "operation": "add_assumption(sudoku(2,9,9))", } ], "children": [], @@ -316,7 +316,7 @@ def get_reference_json(cls): { "id": "mi(2,9,8)", "action": "click", - "policy": "add_assumption(sudoku(2,9,8))", + "operation": "add_assumption(sudoku(2,9,8))", } ], "children": [], @@ -336,7 +336,7 @@ def get_reference_json(cls): { "id": "mi(2,9,7)", "action": "click", - "policy": "add_assumption(sudoku(2,9,7))", + "operation": "add_assumption(sudoku(2,9,7))", } ], "children": [], @@ -356,7 +356,7 @@ def get_reference_json(cls): { "id": "mi(2,9,5)", "action": "click", - "policy": "add_assumption(sudoku(2,9,5))", + "operation": "add_assumption(sudoku(2,9,5))", } ], "children": [], @@ -376,7 +376,7 @@ def get_reference_json(cls): { "id": "mi(2,9,2)", "action": "click", - "policy": "add_assumption(sudoku(2,9,2))", + "operation": "add_assumption(sudoku(2,9,2))", } ], "children": [], @@ -417,7 +417,7 @@ def get_reference_json(cls): { "id": "m(8,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(8,8,any))", + "operation": "remove_assumption_signature(sudoku(8,8,any))", } ], "children": [ @@ -436,7 +436,7 @@ def get_reference_json(cls): { "id": "mi(8,8,9)", "action": "click", - "policy": "add_assumption(sudoku(8,8,9))", + "operation": "add_assumption(sudoku(8,8,9))", } ], "children": [], @@ -456,7 +456,7 @@ def get_reference_json(cls): { "id": "mi(8,8,8)", "action": "click", - "policy": "add_assumption(sudoku(8,8,8))", + "operation": "add_assumption(sudoku(8,8,8))", } ], "children": [], @@ -476,7 +476,7 @@ def get_reference_json(cls): { "id": "mi(8,8,5)", "action": "click", - "policy": "add_assumption(sudoku(8,8,5))", + "operation": "add_assumption(sudoku(8,8,5))", } ], "children": [], @@ -517,7 +517,7 @@ def get_reference_json(cls): { "id": "m(5,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(5,8,any))", + "operation": "remove_assumption_signature(sudoku(5,8,any))", } ], "children": [ @@ -536,7 +536,7 @@ def get_reference_json(cls): { "id": "mi(5,8,9)", "action": "click", - "policy": "add_assumption(sudoku(5,8,9))", + "operation": "add_assumption(sudoku(5,8,9))", } ], "children": [], @@ -556,7 +556,7 @@ def get_reference_json(cls): { "id": "mi(5,8,5)", "action": "click", - "policy": "add_assumption(sudoku(5,8,5))", + "operation": "add_assumption(sudoku(5,8,5))", } ], "children": [], @@ -576,7 +576,7 @@ def get_reference_json(cls): { "id": "mi(5,8,3)", "action": "click", - "policy": "add_assumption(sudoku(5,8,3))", + "operation": "add_assumption(sudoku(5,8,3))", } ], "children": [], @@ -596,7 +596,7 @@ def get_reference_json(cls): { "id": "mi(5,8,1)", "action": "click", - "policy": "add_assumption(sudoku(5,8,1))", + "operation": "add_assumption(sudoku(5,8,1))", } ], "children": [], @@ -637,7 +637,7 @@ def get_reference_json(cls): { "id": "m(2,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(2,8,any))", + "operation": "remove_assumption_signature(sudoku(2,8,any))", } ], "children": [ @@ -656,7 +656,7 @@ def get_reference_json(cls): { "id": "mi(2,8,9)", "action": "click", - "policy": "add_assumption(sudoku(2,8,9))", + "operation": "add_assumption(sudoku(2,8,9))", } ], "children": [], @@ -676,7 +676,7 @@ def get_reference_json(cls): { "id": "mi(2,8,8)", "action": "click", - "policy": "add_assumption(sudoku(2,8,8))", + "operation": "add_assumption(sudoku(2,8,8))", } ], "children": [], @@ -696,7 +696,7 @@ def get_reference_json(cls): { "id": "mi(2,8,7)", "action": "click", - "policy": "add_assumption(sudoku(2,8,7))", + "operation": "add_assumption(sudoku(2,8,7))", } ], "children": [], @@ -716,7 +716,7 @@ def get_reference_json(cls): { "id": "mi(2,8,5)", "action": "click", - "policy": "add_assumption(sudoku(2,8,5))", + "operation": "add_assumption(sudoku(2,8,5))", } ], "children": [], @@ -736,7 +736,7 @@ def get_reference_json(cls): { "id": "mi(2,8,2)", "action": "click", - "policy": "add_assumption(sudoku(2,8,2))", + "operation": "add_assumption(sudoku(2,8,2))", } ], "children": [], @@ -777,7 +777,7 @@ def get_reference_json(cls): { "id": "m(8,7)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(8,7,any))", + "operation": "remove_assumption_signature(sudoku(8,7,any))", } ], "children": [ @@ -796,7 +796,7 @@ def get_reference_json(cls): { "id": "mi(8,7,9)", "action": "click", - "policy": "add_assumption(sudoku(8,7,9))", + "operation": "add_assumption(sudoku(8,7,9))", } ], "children": [], @@ -816,7 +816,7 @@ def get_reference_json(cls): { "id": "mi(8,7,5)", "action": "click", - "policy": "add_assumption(sudoku(8,7,5))", + "operation": "add_assumption(sudoku(8,7,5))", } ], "children": [], @@ -857,7 +857,7 @@ def get_reference_json(cls): { "id": "m(2,7)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(2,7,any))", + "operation": "remove_assumption_signature(sudoku(2,7,any))", } ], "children": [ @@ -876,7 +876,7 @@ def get_reference_json(cls): { "id": "mi(2,7,9)", "action": "click", - "policy": "add_assumption(sudoku(2,7,9))", + "operation": "add_assumption(sudoku(2,7,9))", } ], "children": [], @@ -896,7 +896,7 @@ def get_reference_json(cls): { "id": "mi(2,7,5)", "action": "click", - "policy": "add_assumption(sudoku(2,7,5))", + "operation": "add_assumption(sudoku(2,7,5))", } ], "children": [], @@ -916,7 +916,7 @@ def get_reference_json(cls): { "id": "mi(2,7,2)", "action": "click", - "policy": "add_assumption(sudoku(2,7,2))", + "operation": "add_assumption(sudoku(2,7,2))", } ], "children": [], @@ -962,7 +962,7 @@ def get_reference_json(cls): { "id": "m(6,5)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(6,5,any))", + "operation": "remove_assumption_signature(sudoku(6,5,any))", } ], "children": [ @@ -981,7 +981,7 @@ def get_reference_json(cls): { "id": "mi(6,5,9)", "action": "click", - "policy": "add_assumption(sudoku(6,5,9))", + "operation": "add_assumption(sudoku(6,5,9))", } ], "children": [], @@ -1027,7 +1027,7 @@ def get_reference_json(cls): { "id": "m(4,1)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(4,1,any))", + "operation": "remove_assumption_signature(sudoku(4,1,any))", } ], "children": [ @@ -1046,7 +1046,7 @@ def get_reference_json(cls): { "id": "mi(4,1,9)", "action": "click", - "policy": "add_assumption(sudoku(4,1,9))", + "operation": "add_assumption(sudoku(4,1,9))", } ], "children": [], @@ -1087,7 +1087,7 @@ def get_reference_json(cls): { "id": "m(1,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(1,9,any))", + "operation": "remove_assumption_signature(sudoku(1,9,any))", } ], "children": [ @@ -1106,7 +1106,7 @@ def get_reference_json(cls): { "id": "mi(1,9,8)", "action": "click", - "policy": "add_assumption(sudoku(1,9,8))", + "operation": "add_assumption(sudoku(1,9,8))", } ], "children": [], @@ -1126,7 +1126,7 @@ def get_reference_json(cls): { "id": "mi(1,9,5)", "action": "click", - "policy": "add_assumption(sudoku(1,9,5))", + "operation": "add_assumption(sudoku(1,9,5))", } ], "children": [], @@ -1146,7 +1146,7 @@ def get_reference_json(cls): { "id": "mi(1,9,2)", "action": "click", - "policy": "add_assumption(sudoku(1,9,2))", + "operation": "add_assumption(sudoku(1,9,2))", } ], "children": [], @@ -1166,7 +1166,7 @@ def get_reference_json(cls): { "id": "mi(1,9,1)", "action": "click", - "policy": "add_assumption(sudoku(1,9,1))", + "operation": "add_assumption(sudoku(1,9,1))", } ], "children": [], @@ -1207,7 +1207,7 @@ def get_reference_json(cls): { "id": "m(1,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(1,8,any))", + "operation": "remove_assumption_signature(sudoku(1,8,any))", } ], "children": [ @@ -1226,7 +1226,7 @@ def get_reference_json(cls): { "id": "mi(1,8,8)", "action": "click", - "policy": "add_assumption(sudoku(1,8,8))", + "operation": "add_assumption(sudoku(1,8,8))", } ], "children": [], @@ -1246,7 +1246,7 @@ def get_reference_json(cls): { "id": "mi(1,8,5)", "action": "click", - "policy": "add_assumption(sudoku(1,8,5))", + "operation": "add_assumption(sudoku(1,8,5))", } ], "children": [], @@ -1266,7 +1266,7 @@ def get_reference_json(cls): { "id": "mi(1,8,2)", "action": "click", - "policy": "add_assumption(sudoku(1,8,2))", + "operation": "add_assumption(sudoku(1,8,2))", } ], "children": [], @@ -1286,7 +1286,7 @@ def get_reference_json(cls): { "id": "mi(1,8,1)", "action": "click", - "policy": "add_assumption(sudoku(1,8,1))", + "operation": "add_assumption(sudoku(1,8,1))", } ], "children": [], @@ -1332,7 +1332,7 @@ def get_reference_json(cls): { "id": "m(9,4)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(9,4,any))", + "operation": "remove_assumption_signature(sudoku(9,4,any))", } ], "children": [ @@ -1351,7 +1351,7 @@ def get_reference_json(cls): { "id": "mi(9,4,8)", "action": "click", - "policy": "add_assumption(sudoku(9,4,8))", + "operation": "add_assumption(sudoku(9,4,8))", } ], "children": [], @@ -1392,7 +1392,7 @@ def get_reference_json(cls): { "id": "m(2,3)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(2,3,any))", + "operation": "remove_assumption_signature(sudoku(2,3,any))", } ], "children": [ @@ -1411,7 +1411,7 @@ def get_reference_json(cls): { "id": "mi(2,3,8)", "action": "click", - "policy": "add_assumption(sudoku(2,3,8))", + "operation": "add_assumption(sudoku(2,3,8))", } ], "children": [], @@ -1431,7 +1431,7 @@ def get_reference_json(cls): { "id": "mi(2,3,4)", "action": "click", - "policy": "add_assumption(sudoku(2,3,4))", + "operation": "add_assumption(sudoku(2,3,4))", } ], "children": [], @@ -1451,7 +1451,7 @@ def get_reference_json(cls): { "id": "mi(2,3,2)", "action": "click", - "policy": "add_assumption(sudoku(2,3,2))", + "operation": "add_assumption(sudoku(2,3,2))", } ], "children": [], @@ -1492,7 +1492,7 @@ def get_reference_json(cls): { "id": "m(1,3)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(1,3,any))", + "operation": "remove_assumption_signature(sudoku(1,3,any))", } ], "children": [ @@ -1511,7 +1511,7 @@ def get_reference_json(cls): { "id": "mi(1,3,8)", "action": "click", - "policy": "add_assumption(sudoku(1,3,8))", + "operation": "add_assumption(sudoku(1,3,8))", } ], "children": [], @@ -1531,7 +1531,7 @@ def get_reference_json(cls): { "id": "mi(1,3,2)", "action": "click", - "policy": "add_assumption(sudoku(1,3,2))", + "operation": "add_assumption(sudoku(1,3,2))", } ], "children": [], @@ -1577,7 +1577,7 @@ def get_reference_json(cls): { "id": "m(7,2)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(7,2,any))", + "operation": "remove_assumption_signature(sudoku(7,2,any))", } ], "children": [ @@ -1596,7 +1596,7 @@ def get_reference_json(cls): { "id": "mi(7,2,8)", "action": "click", - "policy": "add_assumption(sudoku(7,2,8))", + "operation": "add_assumption(sudoku(7,2,8))", } ], "children": [], @@ -1637,7 +1637,7 @@ def get_reference_json(cls): { "id": "m(9,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(9,9,any))", + "operation": "remove_assumption_signature(sudoku(9,9,any))", } ], "children": [ @@ -1656,7 +1656,7 @@ def get_reference_json(cls): { "id": "mi(9,9,7)", "action": "click", - "policy": "add_assumption(sudoku(9,9,7))", + "operation": "add_assumption(sudoku(9,9,7))", } ], "children": [], @@ -1676,7 +1676,7 @@ def get_reference_json(cls): { "id": "mi(9,9,4)", "action": "click", - "policy": "add_assumption(sudoku(9,9,4))", + "operation": "add_assumption(sudoku(9,9,4))", } ], "children": [], @@ -1696,7 +1696,7 @@ def get_reference_json(cls): { "id": "mi(9,9,2)", "action": "click", - "policy": "add_assumption(sudoku(9,9,2))", + "operation": "add_assumption(sudoku(9,9,2))", } ], "children": [], @@ -1737,7 +1737,7 @@ def get_reference_json(cls): { "id": "m(3,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(3,9,any))", + "operation": "remove_assumption_signature(sudoku(3,9,any))", } ], "children": [ @@ -1756,7 +1756,7 @@ def get_reference_json(cls): { "id": "mi(3,9,7)", "action": "click", - "policy": "add_assumption(sudoku(3,9,7))", + "operation": "add_assumption(sudoku(3,9,7))", } ], "children": [], @@ -1776,7 +1776,7 @@ def get_reference_json(cls): { "id": "mi(3,9,4)", "action": "click", - "policy": "add_assumption(sudoku(3,9,4))", + "operation": "add_assumption(sudoku(3,9,4))", } ], "children": [], @@ -1796,7 +1796,7 @@ def get_reference_json(cls): { "id": "mi(3,9,3)", "action": "click", - "policy": "add_assumption(sudoku(3,9,3))", + "operation": "add_assumption(sudoku(3,9,3))", } ], "children": [], @@ -1816,7 +1816,7 @@ def get_reference_json(cls): { "id": "mi(3,9,1)", "action": "click", - "policy": "add_assumption(sudoku(3,9,1))", + "operation": "add_assumption(sudoku(3,9,1))", } ], "children": [], @@ -1857,7 +1857,7 @@ def get_reference_json(cls): { "id": "m(9,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(9,8,any))", + "operation": "remove_assumption_signature(sudoku(9,8,any))", } ], "children": [ @@ -1876,7 +1876,7 @@ def get_reference_json(cls): { "id": "mi(9,8,7)", "action": "click", - "policy": "add_assumption(sudoku(9,8,7))", + "operation": "add_assumption(sudoku(9,8,7))", } ], "children": [], @@ -1896,7 +1896,7 @@ def get_reference_json(cls): { "id": "mi(9,8,4)", "action": "click", - "policy": "add_assumption(sudoku(9,8,4))", + "operation": "add_assumption(sudoku(9,8,4))", } ], "children": [], @@ -1916,7 +1916,7 @@ def get_reference_json(cls): { "id": "mi(9,8,2)", "action": "click", - "policy": "add_assumption(sudoku(9,8,2))", + "operation": "add_assumption(sudoku(9,8,2))", } ], "children": [], @@ -1957,7 +1957,7 @@ def get_reference_json(cls): { "id": "m(3,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(3,8,any))", + "operation": "remove_assumption_signature(sudoku(3,8,any))", } ], "children": [ @@ -1976,7 +1976,7 @@ def get_reference_json(cls): { "id": "mi(3,8,7)", "action": "click", - "policy": "add_assumption(sudoku(3,8,7))", + "operation": "add_assumption(sudoku(3,8,7))", } ], "children": [], @@ -1996,7 +1996,7 @@ def get_reference_json(cls): { "id": "mi(3,8,4)", "action": "click", - "policy": "add_assumption(sudoku(3,8,4))", + "operation": "add_assumption(sudoku(3,8,4))", } ], "children": [], @@ -2016,7 +2016,7 @@ def get_reference_json(cls): { "id": "mi(3,8,3)", "action": "click", - "policy": "add_assumption(sudoku(3,8,3))", + "operation": "add_assumption(sudoku(3,8,3))", } ], "children": [], @@ -2036,7 +2036,7 @@ def get_reference_json(cls): { "id": "mi(3,8,1)", "action": "click", - "policy": "add_assumption(sudoku(3,8,1))", + "operation": "add_assumption(sudoku(3,8,1))", } ], "children": [], @@ -2082,7 +2082,7 @@ def get_reference_json(cls): { "id": "m(4,6)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(4,6,any))", + "operation": "remove_assumption_signature(sudoku(4,6,any))", } ], "children": [ @@ -2101,7 +2101,7 @@ def get_reference_json(cls): { "id": "mi(4,6,7)", "action": "click", - "policy": "add_assumption(sudoku(4,6,7))", + "operation": "add_assumption(sudoku(4,6,7))", } ], "children": [], @@ -2142,7 +2142,7 @@ def get_reference_json(cls): { "id": "m(3,1)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(3,1,any))", + "operation": "remove_assumption_signature(sudoku(3,1,any))", } ], "children": [ @@ -2161,7 +2161,7 @@ def get_reference_json(cls): { "id": "mi(3,1,7)", "action": "click", - "policy": "add_assumption(sudoku(3,1,7))", + "operation": "add_assumption(sudoku(3,1,7))", } ], "children": [], @@ -2181,7 +2181,7 @@ def get_reference_json(cls): { "id": "mi(3,1,1)", "action": "click", - "policy": "add_assumption(sudoku(3,1,1))", + "operation": "add_assumption(sudoku(3,1,1))", } ], "children": [], @@ -2222,7 +2222,7 @@ def get_reference_json(cls): { "id": "m(2,1)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(2,1,any))", + "operation": "remove_assumption_signature(sudoku(2,1,any))", } ], "children": [ @@ -2241,7 +2241,7 @@ def get_reference_json(cls): { "id": "mi(2,1,7)", "action": "click", - "policy": "add_assumption(sudoku(2,1,7))", + "operation": "add_assumption(sudoku(2,1,7))", } ], "children": [], @@ -2261,7 +2261,7 @@ def get_reference_json(cls): { "id": "mi(2,1,5)", "action": "click", - "policy": "add_assumption(sudoku(2,1,5))", + "operation": "add_assumption(sudoku(2,1,5))", } ], "children": [], @@ -2281,7 +2281,7 @@ def get_reference_json(cls): { "id": "mi(2,1,2)", "action": "click", - "policy": "add_assumption(sudoku(2,1,2))", + "operation": "add_assumption(sudoku(2,1,2))", } ], "children": [], @@ -2322,7 +2322,7 @@ def get_reference_json(cls): { "id": "m(7,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(7,9,any))", + "operation": "remove_assumption_signature(sudoku(7,9,any))", } ], "children": [ @@ -2341,7 +2341,7 @@ def get_reference_json(cls): { "id": "mi(7,9,6)", "action": "click", - "policy": "add_assumption(sudoku(7,9,6))", + "operation": "add_assumption(sudoku(7,9,6))", } ], "children": [], @@ -2361,7 +2361,7 @@ def get_reference_json(cls): { "id": "mi(7,9,3)", "action": "click", - "policy": "add_assumption(sudoku(7,9,3))", + "operation": "add_assumption(sudoku(7,9,3))", } ], "children": [], @@ -2381,7 +2381,7 @@ def get_reference_json(cls): { "id": "mi(7,9,1)", "action": "click", - "policy": "add_assumption(sudoku(7,9,1))", + "operation": "add_assumption(sudoku(7,9,1))", } ], "children": [], @@ -2422,7 +2422,7 @@ def get_reference_json(cls): { "id": "m(4,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(4,9,any))", + "operation": "remove_assumption_signature(sudoku(4,9,any))", } ], "children": [ @@ -2441,7 +2441,7 @@ def get_reference_json(cls): { "id": "mi(4,9,6)", "action": "click", - "policy": "add_assumption(sudoku(4,9,6))", + "operation": "add_assumption(sudoku(4,9,6))", } ], "children": [], @@ -2461,7 +2461,7 @@ def get_reference_json(cls): { "id": "mi(4,9,5)", "action": "click", - "policy": "add_assumption(sudoku(4,9,5))", + "operation": "add_assumption(sudoku(4,9,5))", } ], "children": [], @@ -2481,7 +2481,7 @@ def get_reference_json(cls): { "id": "mi(4,9,2)", "action": "click", - "policy": "add_assumption(sudoku(4,9,2))", + "operation": "add_assumption(sudoku(4,9,2))", } ], "children": [], @@ -2501,7 +2501,7 @@ def get_reference_json(cls): { "id": "mi(4,9,1)", "action": "click", - "policy": "add_assumption(sudoku(4,9,1))", + "operation": "add_assumption(sudoku(4,9,1))", } ], "children": [], @@ -2542,7 +2542,7 @@ def get_reference_json(cls): { "id": "m(7,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(7,8,any))", + "operation": "remove_assumption_signature(sudoku(7,8,any))", } ], "children": [ @@ -2561,7 +2561,7 @@ def get_reference_json(cls): { "id": "mi(7,8,6)", "action": "click", - "policy": "add_assumption(sudoku(7,8,6))", + "operation": "add_assumption(sudoku(7,8,6))", } ], "children": [], @@ -2581,7 +2581,7 @@ def get_reference_json(cls): { "id": "mi(7,8,3)", "action": "click", - "policy": "add_assumption(sudoku(7,8,3))", + "operation": "add_assumption(sudoku(7,8,3))", } ], "children": [], @@ -2601,7 +2601,7 @@ def get_reference_json(cls): { "id": "mi(7,8,1)", "action": "click", - "policy": "add_assumption(sudoku(7,8,1))", + "operation": "add_assumption(sudoku(7,8,1))", } ], "children": [], @@ -2642,7 +2642,7 @@ def get_reference_json(cls): { "id": "m(4,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(4,8,any))", + "operation": "remove_assumption_signature(sudoku(4,8,any))", } ], "children": [ @@ -2661,7 +2661,7 @@ def get_reference_json(cls): { "id": "mi(4,8,6)", "action": "click", - "policy": "add_assumption(sudoku(4,8,6))", + "operation": "add_assumption(sudoku(4,8,6))", } ], "children": [], @@ -2681,7 +2681,7 @@ def get_reference_json(cls): { "id": "mi(4,8,5)", "action": "click", - "policy": "add_assumption(sudoku(4,8,5))", + "operation": "add_assumption(sudoku(4,8,5))", } ], "children": [], @@ -2701,7 +2701,7 @@ def get_reference_json(cls): { "id": "mi(4,8,2)", "action": "click", - "policy": "add_assumption(sudoku(4,8,2))", + "operation": "add_assumption(sudoku(4,8,2))", } ], "children": [], @@ -2721,7 +2721,7 @@ def get_reference_json(cls): { "id": "mi(4,8,1)", "action": "click", - "policy": "add_assumption(sudoku(4,8,1))", + "operation": "add_assumption(sudoku(4,8,1))", } ], "children": [], @@ -2767,7 +2767,7 @@ def get_reference_json(cls): { "id": "m(5,5)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(5,5,any))", + "operation": "remove_assumption_signature(sudoku(5,5,any))", } ], "children": [ @@ -2786,7 +2786,7 @@ def get_reference_json(cls): { "id": "mi(5,5,6)", "action": "click", - "policy": "add_assumption(sudoku(5,5,6))", + "operation": "add_assumption(sudoku(5,5,6))", } ], "children": [], @@ -2832,7 +2832,7 @@ def get_reference_json(cls): { "id": "m(3,2)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(3,2,any))", + "operation": "remove_assumption_signature(sudoku(3,2,any))", } ], "children": [ @@ -2851,7 +2851,7 @@ def get_reference_json(cls): { "id": "mi(3,2,6)", "action": "click", - "policy": "add_assumption(sudoku(3,2,6))", + "operation": "add_assumption(sudoku(3,2,6))", } ], "children": [], @@ -2892,7 +2892,7 @@ def get_reference_json(cls): { "id": "m(6,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(6,9,any))", + "operation": "remove_assumption_signature(sudoku(6,9,any))", } ], "children": [ @@ -2911,7 +2911,7 @@ def get_reference_json(cls): { "id": "mi(6,9,5)", "action": "click", - "policy": "add_assumption(sudoku(6,9,5))", + "operation": "add_assumption(sudoku(6,9,5))", } ], "children": [], @@ -2931,7 +2931,7 @@ def get_reference_json(cls): { "id": "mi(6,9,4)", "action": "click", - "policy": "add_assumption(sudoku(6,9,4))", + "operation": "add_assumption(sudoku(6,9,4))", } ], "children": [], @@ -2951,7 +2951,7 @@ def get_reference_json(cls): { "id": "mi(6,9,3)", "action": "click", - "policy": "add_assumption(sudoku(6,9,3))", + "operation": "add_assumption(sudoku(6,9,3))", } ], "children": [], @@ -2971,7 +2971,7 @@ def get_reference_json(cls): { "id": "mi(6,9,1)", "action": "click", - "policy": "add_assumption(sudoku(6,9,1))", + "operation": "add_assumption(sudoku(6,9,1))", } ], "children": [], @@ -3012,7 +3012,7 @@ def get_reference_json(cls): { "id": "m(6,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(6,8,any))", + "operation": "remove_assumption_signature(sudoku(6,8,any))", } ], "children": [ @@ -3031,7 +3031,7 @@ def get_reference_json(cls): { "id": "mi(6,8,5)", "action": "click", - "policy": "add_assumption(sudoku(6,8,5))", + "operation": "add_assumption(sudoku(6,8,5))", } ], "children": [], @@ -3051,7 +3051,7 @@ def get_reference_json(cls): { "id": "mi(6,8,4)", "action": "click", - "policy": "add_assumption(sudoku(6,8,4))", + "operation": "add_assumption(sudoku(6,8,4))", } ], "children": [], @@ -3071,7 +3071,7 @@ def get_reference_json(cls): { "id": "mi(6,8,3)", "action": "click", - "policy": "add_assumption(sudoku(6,8,3))", + "operation": "add_assumption(sudoku(6,8,3))", } ], "children": [], @@ -3091,7 +3091,7 @@ def get_reference_json(cls): { "id": "mi(6,8,1)", "action": "click", - "policy": "add_assumption(sudoku(6,8,1))", + "operation": "add_assumption(sudoku(6,8,1))", } ], "children": [], @@ -3132,7 +3132,7 @@ def get_reference_json(cls): { "id": "m(4,7)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(4,7,any))", + "operation": "remove_assumption_signature(sudoku(4,7,any))", } ], "children": [ @@ -3151,7 +3151,7 @@ def get_reference_json(cls): { "id": "mi(4,7,5)", "action": "click", - "policy": "add_assumption(sudoku(4,7,5))", + "operation": "add_assumption(sudoku(4,7,5))", } ], "children": [], @@ -3171,7 +3171,7 @@ def get_reference_json(cls): { "id": "mi(4,7,2)", "action": "click", - "policy": "add_assumption(sudoku(4,7,2))", + "operation": "add_assumption(sudoku(4,7,2))", } ], "children": [], @@ -3191,7 +3191,7 @@ def get_reference_json(cls): { "id": "mi(4,7,1)", "action": "click", - "policy": "add_assumption(sudoku(4,7,1))", + "operation": "add_assumption(sudoku(4,7,1))", } ], "children": [], @@ -3232,7 +3232,7 @@ def get_reference_json(cls): { "id": "m(6,6)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(6,6,any))", + "operation": "remove_assumption_signature(sudoku(6,6,any))", } ], "children": [ @@ -3251,7 +3251,7 @@ def get_reference_json(cls): { "id": "mi(6,6,5)", "action": "click", - "policy": "add_assumption(sudoku(6,6,5))", + "operation": "add_assumption(sudoku(6,6,5))", } ], "children": [], @@ -3271,7 +3271,7 @@ def get_reference_json(cls): { "id": "mi(6,6,3)", "action": "click", - "policy": "add_assumption(sudoku(6,6,3))", + "operation": "add_assumption(sudoku(6,6,3))", } ], "children": [], @@ -3312,7 +3312,7 @@ def get_reference_json(cls): { "id": "m(5,6)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(5,6,any))", + "operation": "remove_assumption_signature(sudoku(5,6,any))", } ], "children": [ @@ -3331,7 +3331,7 @@ def get_reference_json(cls): { "id": "mi(5,6,5)", "action": "click", - "policy": "add_assumption(sudoku(5,6,5))", + "operation": "add_assumption(sudoku(5,6,5))", } ], "children": [], @@ -3351,7 +3351,7 @@ def get_reference_json(cls): { "id": "mi(5,6,3)", "action": "click", - "policy": "add_assumption(sudoku(5,6,3))", + "operation": "add_assumption(sudoku(5,6,3))", } ], "children": [], @@ -3397,7 +3397,7 @@ def get_reference_json(cls): { "id": "m(3,4)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(3,4,any))", + "operation": "remove_assumption_signature(sudoku(3,4,any))", } ], "children": [ @@ -3416,7 +3416,7 @@ def get_reference_json(cls): { "id": "mi(3,4,5)", "action": "click", - "policy": "add_assumption(sudoku(3,4,5))", + "operation": "add_assumption(sudoku(3,4,5))", } ], "children": [], @@ -3457,7 +3457,7 @@ def get_reference_json(cls): { "id": "m(5,2)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(5,2,any))", + "operation": "remove_assumption_signature(sudoku(5,2,any))", } ], "children": [ @@ -3476,7 +3476,7 @@ def get_reference_json(cls): { "id": "mi(5,2,5)", "action": "click", - "policy": "add_assumption(sudoku(5,2,5))", + "operation": "add_assumption(sudoku(5,2,5))", } ], "children": [], @@ -3496,7 +3496,7 @@ def get_reference_json(cls): { "id": "mi(5,2,4)", "action": "click", - "policy": "add_assumption(sudoku(5,2,4))", + "operation": "add_assumption(sudoku(5,2,4))", } ], "children": [], @@ -3516,7 +3516,7 @@ def get_reference_json(cls): { "id": "mi(5,2,1)", "action": "click", - "policy": "add_assumption(sudoku(5,2,1))", + "operation": "add_assumption(sudoku(5,2,1))", } ], "children": [], @@ -3557,7 +3557,7 @@ def get_reference_json(cls): { "id": "m(4,2)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(4,2,any))", + "operation": "remove_assumption_signature(sudoku(4,2,any))", } ], "children": [ @@ -3576,7 +3576,7 @@ def get_reference_json(cls): { "id": "mi(4,2,5)", "action": "click", - "policy": "add_assumption(sudoku(4,2,5))", + "operation": "add_assumption(sudoku(4,2,5))", } ], "children": [], @@ -3596,7 +3596,7 @@ def get_reference_json(cls): { "id": "mi(4,2,1)", "action": "click", - "policy": "add_assumption(sudoku(4,2,1))", + "operation": "add_assumption(sudoku(4,2,1))", } ], "children": [], @@ -3637,7 +3637,7 @@ def get_reference_json(cls): { "id": "m(2,2)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(2,2,any))", + "operation": "remove_assumption_signature(sudoku(2,2,any))", } ], "children": [ @@ -3656,7 +3656,7 @@ def get_reference_json(cls): { "id": "mi(2,2,5)", "action": "click", - "policy": "add_assumption(sudoku(2,2,5))", + "operation": "add_assumption(sudoku(2,2,5))", } ], "children": [], @@ -3676,7 +3676,7 @@ def get_reference_json(cls): { "id": "mi(2,2,4)", "action": "click", - "policy": "add_assumption(sudoku(2,2,4))", + "operation": "add_assumption(sudoku(2,2,4))", } ], "children": [], @@ -3717,7 +3717,7 @@ def get_reference_json(cls): { "id": "m(6,1)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(6,1,any))", + "operation": "remove_assumption_signature(sudoku(6,1,any))", } ], "children": [ @@ -3736,7 +3736,7 @@ def get_reference_json(cls): { "id": "mi(6,1,5)", "action": "click", - "policy": "add_assumption(sudoku(6,1,5))", + "operation": "add_assumption(sudoku(6,1,5))", } ], "children": [], @@ -3756,7 +3756,7 @@ def get_reference_json(cls): { "id": "mi(6,1,2)", "action": "click", - "policy": "add_assumption(sudoku(6,1,2))", + "operation": "add_assumption(sudoku(6,1,2))", } ], "children": [], @@ -3797,7 +3797,7 @@ def get_reference_json(cls): { "id": "m(1,1)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(1,1,any))", + "operation": "remove_assumption_signature(sudoku(1,1,any))", } ], "children": [ @@ -3816,7 +3816,7 @@ def get_reference_json(cls): { "id": "mi(1,1,5)", "action": "click", - "policy": "add_assumption(sudoku(1,1,5))", + "operation": "add_assumption(sudoku(1,1,5))", } ], "children": [], @@ -3836,7 +3836,7 @@ def get_reference_json(cls): { "id": "mi(1,1,2)", "action": "click", - "policy": "add_assumption(sudoku(1,1,2))", + "operation": "add_assumption(sudoku(1,1,2))", } ], "children": [], @@ -3856,7 +3856,7 @@ def get_reference_json(cls): { "id": "mi(1,1,1)", "action": "click", - "policy": "add_assumption(sudoku(1,1,1))", + "operation": "add_assumption(sudoku(1,1,1))", } ], "children": [], @@ -3897,7 +3897,7 @@ def get_reference_json(cls): { "id": "m(9,7)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(9,7,any))", + "operation": "remove_assumption_signature(sudoku(9,7,any))", } ], "children": [ @@ -3916,7 +3916,7 @@ def get_reference_json(cls): { "id": "mi(9,7,4)", "action": "click", - "policy": "add_assumption(sudoku(9,7,4))", + "operation": "add_assumption(sudoku(9,7,4))", } ], "children": [], @@ -3936,7 +3936,7 @@ def get_reference_json(cls): { "id": "mi(9,7,2)", "action": "click", - "policy": "add_assumption(sudoku(9,7,2))", + "operation": "add_assumption(sudoku(9,7,2))", } ], "children": [], @@ -3977,7 +3977,7 @@ def get_reference_json(cls): { "id": "m(3,7)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(3,7,any))", + "operation": "remove_assumption_signature(sudoku(3,7,any))", } ], "children": [ @@ -3996,7 +3996,7 @@ def get_reference_json(cls): { "id": "mi(3,7,4)", "action": "click", - "policy": "add_assumption(sudoku(3,7,4))", + "operation": "add_assumption(sudoku(3,7,4))", } ], "children": [], @@ -4016,7 +4016,7 @@ def get_reference_json(cls): { "id": "mi(3,7,3)", "action": "click", - "policy": "add_assumption(sudoku(3,7,3))", + "operation": "add_assumption(sudoku(3,7,3))", } ], "children": [], @@ -4036,7 +4036,7 @@ def get_reference_json(cls): { "id": "mi(3,7,1)", "action": "click", - "policy": "add_assumption(sudoku(3,7,1))", + "operation": "add_assumption(sudoku(3,7,1))", } ], "children": [], @@ -4082,7 +4082,7 @@ def get_reference_json(cls): { "id": "m(1,5)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(1,5,any))", + "operation": "remove_assumption_signature(sudoku(1,5,any))", } ], "children": [ @@ -4101,7 +4101,7 @@ def get_reference_json(cls): { "id": "mi(1,5,4)", "action": "click", - "policy": "add_assumption(sudoku(1,5,4))", + "operation": "add_assumption(sudoku(1,5,4))", } ], "children": [], @@ -4142,7 +4142,7 @@ def get_reference_json(cls): { "id": "m(5,3)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(5,3,any))", + "operation": "remove_assumption_signature(sudoku(5,3,any))", } ], "children": [ @@ -4161,7 +4161,7 @@ def get_reference_json(cls): { "id": "mi(5,3,4)", "action": "click", - "policy": "add_assumption(sudoku(5,3,4))", + "operation": "add_assumption(sudoku(5,3,4))", } ], "children": [], @@ -4181,7 +4181,7 @@ def get_reference_json(cls): { "id": "mi(5,3,2)", "action": "click", - "policy": "add_assumption(sudoku(5,3,2))", + "operation": "add_assumption(sudoku(5,3,2))", } ], "children": [], @@ -4222,7 +4222,7 @@ def get_reference_json(cls): { "id": "m(7,7)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(7,7,any))", + "operation": "remove_assumption_signature(sudoku(7,7,any))", } ], "children": [ @@ -4241,7 +4241,7 @@ def get_reference_json(cls): { "id": "mi(7,7,3)", "action": "click", - "policy": "add_assumption(sudoku(7,7,3))", + "operation": "add_assumption(sudoku(7,7,3))", } ], "children": [], @@ -4261,7 +4261,7 @@ def get_reference_json(cls): { "id": "mi(7,7,1)", "action": "click", - "policy": "add_assumption(sudoku(7,7,1))", + "operation": "add_assumption(sudoku(7,7,1))", } ], "children": [], @@ -4307,7 +4307,7 @@ def get_reference_json(cls): { "id": "m(1,2)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(1,2,any))", + "operation": "remove_assumption_signature(sudoku(1,2,any))", } ], "children": [ @@ -4326,7 +4326,7 @@ def get_reference_json(cls): { "id": "mi(1,2,3)", "action": "click", - "policy": "add_assumption(sudoku(1,2,3))", + "operation": "add_assumption(sudoku(1,2,3))", } ], "children": [], @@ -4372,7 +4372,7 @@ def get_reference_json(cls): { "id": "m(9,1)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(9,1,any))", + "operation": "remove_assumption_signature(sudoku(9,1,any))", } ], "children": [ @@ -4391,7 +4391,7 @@ def get_reference_json(cls): { "id": "mi(9,1,3)", "action": "click", - "policy": "add_assumption(sudoku(9,1,3))", + "operation": "add_assumption(sudoku(9,1,3))", } ], "children": [], @@ -4437,7 +4437,7 @@ def get_reference_json(cls): { "id": "m(7,6)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(7,6,any))", + "operation": "remove_assumption_signature(sudoku(7,6,any))", } ], "children": [ @@ -4456,7 +4456,7 @@ def get_reference_json(cls): { "id": "mi(7,6,2)", "action": "click", - "policy": "add_assumption(sudoku(7,6,2))", + "operation": "add_assumption(sudoku(7,6,2))", } ], "children": [], @@ -4497,7 +4497,7 @@ def get_reference_json(cls): { "id": "m(6,4)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(6,4,any))", + "operation": "remove_assumption_signature(sudoku(6,4,any))", } ], "children": [ @@ -4516,7 +4516,7 @@ def get_reference_json(cls): { "id": "mi(6,4,2)", "action": "click", - "policy": "add_assumption(sudoku(6,4,2))", + "operation": "add_assumption(sudoku(6,4,2))", } ], "children": [], @@ -4536,7 +4536,7 @@ def get_reference_json(cls): { "id": "mi(6,4,1)", "action": "click", - "policy": "add_assumption(sudoku(6,4,1))", + "operation": "add_assumption(sudoku(6,4,1))", } ], "children": [], @@ -4577,7 +4577,7 @@ def get_reference_json(cls): { "id": "m(5,4)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(5,4,any))", + "operation": "remove_assumption_signature(sudoku(5,4,any))", } ], "children": [ @@ -4596,7 +4596,7 @@ def get_reference_json(cls): { "id": "mi(5,4,2)", "action": "click", - "policy": "add_assumption(sudoku(5,4,2))", + "operation": "add_assumption(sudoku(5,4,2))", } ], "children": [], @@ -4616,7 +4616,7 @@ def get_reference_json(cls): { "id": "mi(5,4,1)", "action": "click", - "policy": "add_assumption(sudoku(5,4,1))", + "operation": "add_assumption(sudoku(5,4,1))", } ], "children": [], @@ -4662,7 +4662,7 @@ def get_reference_json(cls): { "id": "m(8,5)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(8,5,any))", + "operation": "remove_assumption_signature(sudoku(8,5,any))", } ], "children": [ @@ -4681,7 +4681,7 @@ def get_reference_json(cls): { "id": "mi(8,5,1)", "action": "click", - "policy": "add_assumption(sudoku(8,5,1))", + "operation": "add_assumption(sudoku(8,5,1))", } ], "children": [], @@ -4727,7 +4727,7 @@ def get_reference_json(cls): { "id": "m(9,3)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(9,3,any))", + "operation": "remove_assumption_signature(sudoku(9,3,any))", } ], "children": [ @@ -4746,7 +4746,7 @@ def get_reference_json(cls): { "id": "mi(9,3,1)", "action": "click", - "policy": "add_assumption(sudoku(9,3,1))", + "operation": "add_assumption(sudoku(9,3,1))", } ], "children": [], @@ -4795,7 +4795,7 @@ def get_reference_json(cls): { "id": "ms_select", "action": "click", - "policy": "select", + "operation": "select", } ], "children": [], @@ -4820,7 +4820,7 @@ def get_reference_json(cls): { "id": "ms_next", "action": "click", - "policy": "next_solution", + "operation": "next_solution", } ], "children": [], @@ -4845,7 +4845,7 @@ def get_reference_json(cls): { "id": "ms_clear", "action": "click", - "policy": "clear_assumptions", + "operation": "clear_assumptions", } ], "children": [], @@ -6052,7 +6052,7 @@ def post_p_1(cls): { "id": "m(8,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(8,9,any))", + "operation": "remove_assumption_signature(sudoku(8,9,any))", } ], "children": [ @@ -6071,7 +6071,7 @@ def post_p_1(cls): { "id": "mi(8,9,9)", "action": "click", - "policy": "add_assumption(sudoku(8,9,9))", + "operation": "add_assumption(sudoku(8,9,9))", } ], "children": [], @@ -6091,7 +6091,7 @@ def post_p_1(cls): { "id": "mi(8,9,8)", "action": "click", - "policy": "add_assumption(sudoku(8,9,8))", + "operation": "add_assumption(sudoku(8,9,8))", } ], "children": [], @@ -6111,7 +6111,7 @@ def post_p_1(cls): { "id": "mi(8,9,5)", "action": "click", - "policy": "add_assumption(sudoku(8,9,5))", + "operation": "add_assumption(sudoku(8,9,5))", } ], "children": [], @@ -6157,7 +6157,7 @@ def post_p_1(cls): { "id": "m(5,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(5,9,any))", + "operation": "remove_assumption_signature(sudoku(5,9,any))", } ], "children": [ @@ -6176,7 +6176,7 @@ def post_p_1(cls): { "id": "mi(5,9,9)", "action": "click", - "policy": "add_assumption(sudoku(5,9,9))", + "operation": "add_assumption(sudoku(5,9,9))", } ], "children": [], @@ -6196,7 +6196,7 @@ def post_p_1(cls): { "id": "mi(5,9,5)", "action": "click", - "policy": "add_assumption(sudoku(5,9,5))", + "operation": "add_assumption(sudoku(5,9,5))", } ], "children": [], @@ -6216,7 +6216,7 @@ def post_p_1(cls): { "id": "mi(5,9,3)", "action": "click", - "policy": "add_assumption(sudoku(5,9,3))", + "operation": "add_assumption(sudoku(5,9,3))", } ], "children": [], @@ -6236,7 +6236,7 @@ def post_p_1(cls): { "id": "mi(5,9,1)", "action": "click", - "policy": "add_assumption(sudoku(5,9,1))", + "operation": "add_assumption(sudoku(5,9,1))", } ], "children": [], @@ -6282,7 +6282,7 @@ def post_p_1(cls): { "id": "m(2,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(2,9,any))", + "operation": "remove_assumption_signature(sudoku(2,9,any))", } ], "children": [ @@ -6301,7 +6301,7 @@ def post_p_1(cls): { "id": "mi(2,9,9)", "action": "click", - "policy": "add_assumption(sudoku(2,9,9))", + "operation": "add_assumption(sudoku(2,9,9))", } ], "children": [], @@ -6321,7 +6321,7 @@ def post_p_1(cls): { "id": "mi(2,9,8)", "action": "click", - "policy": "add_assumption(sudoku(2,9,8))", + "operation": "add_assumption(sudoku(2,9,8))", } ], "children": [], @@ -6341,7 +6341,7 @@ def post_p_1(cls): { "id": "mi(2,9,7)", "action": "click", - "policy": "add_assumption(sudoku(2,9,7))", + "operation": "add_assumption(sudoku(2,9,7))", } ], "children": [], @@ -6361,7 +6361,7 @@ def post_p_1(cls): { "id": "mi(2,9,5)", "action": "click", - "policy": "add_assumption(sudoku(2,9,5))", + "operation": "add_assumption(sudoku(2,9,5))", } ], "children": [], @@ -6381,7 +6381,7 @@ def post_p_1(cls): { "id": "mi(2,9,2)", "action": "click", - "policy": "add_assumption(sudoku(2,9,2))", + "operation": "add_assumption(sudoku(2,9,2))", } ], "children": [], @@ -6427,7 +6427,7 @@ def post_p_1(cls): { "id": "m(8,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(8,8,any))", + "operation": "remove_assumption_signature(sudoku(8,8,any))", } ], "children": [ @@ -6446,7 +6446,7 @@ def post_p_1(cls): { "id": "mi(8,8,9)", "action": "click", - "policy": "add_assumption(sudoku(8,8,9))", + "operation": "add_assumption(sudoku(8,8,9))", } ], "children": [], @@ -6466,7 +6466,7 @@ def post_p_1(cls): { "id": "mi(8,8,8)", "action": "click", - "policy": "add_assumption(sudoku(8,8,8))", + "operation": "add_assumption(sudoku(8,8,8))", } ], "children": [], @@ -6486,7 +6486,7 @@ def post_p_1(cls): { "id": "mi(8,8,5)", "action": "click", - "policy": "add_assumption(sudoku(8,8,5))", + "operation": "add_assumption(sudoku(8,8,5))", } ], "children": [], @@ -6532,7 +6532,7 @@ def post_p_1(cls): { "id": "m(5,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(5,8,any))", + "operation": "remove_assumption_signature(sudoku(5,8,any))", } ], "children": [ @@ -6551,7 +6551,7 @@ def post_p_1(cls): { "id": "mi(5,8,9)", "action": "click", - "policy": "add_assumption(sudoku(5,8,9))", + "operation": "add_assumption(sudoku(5,8,9))", } ], "children": [], @@ -6571,7 +6571,7 @@ def post_p_1(cls): { "id": "mi(5,8,5)", "action": "click", - "policy": "add_assumption(sudoku(5,8,5))", + "operation": "add_assumption(sudoku(5,8,5))", } ], "children": [], @@ -6591,7 +6591,7 @@ def post_p_1(cls): { "id": "mi(5,8,3)", "action": "click", - "policy": "add_assumption(sudoku(5,8,3))", + "operation": "add_assumption(sudoku(5,8,3))", } ], "children": [], @@ -6611,7 +6611,7 @@ def post_p_1(cls): { "id": "mi(5,8,1)", "action": "click", - "policy": "add_assumption(sudoku(5,8,1))", + "operation": "add_assumption(sudoku(5,8,1))", } ], "children": [], @@ -6657,7 +6657,7 @@ def post_p_1(cls): { "id": "m(2,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(2,8,any))", + "operation": "remove_assumption_signature(sudoku(2,8,any))", } ], "children": [ @@ -6676,7 +6676,7 @@ def post_p_1(cls): { "id": "mi(2,8,9)", "action": "click", - "policy": "add_assumption(sudoku(2,8,9))", + "operation": "add_assumption(sudoku(2,8,9))", } ], "children": [], @@ -6696,7 +6696,7 @@ def post_p_1(cls): { "id": "mi(2,8,8)", "action": "click", - "policy": "add_assumption(sudoku(2,8,8))", + "operation": "add_assumption(sudoku(2,8,8))", } ], "children": [], @@ -6716,7 +6716,7 @@ def post_p_1(cls): { "id": "mi(2,8,7)", "action": "click", - "policy": "add_assumption(sudoku(2,8,7))", + "operation": "add_assumption(sudoku(2,8,7))", } ], "children": [], @@ -6736,7 +6736,7 @@ def post_p_1(cls): { "id": "mi(2,8,5)", "action": "click", - "policy": "add_assumption(sudoku(2,8,5))", + "operation": "add_assumption(sudoku(2,8,5))", } ], "children": [], @@ -6756,7 +6756,7 @@ def post_p_1(cls): { "id": "mi(2,8,2)", "action": "click", - "policy": "add_assumption(sudoku(2,8,2))", + "operation": "add_assumption(sudoku(2,8,2))", } ], "children": [], @@ -6802,7 +6802,7 @@ def post_p_1(cls): { "id": "m(8,7)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(8,7,any))", + "operation": "remove_assumption_signature(sudoku(8,7,any))", } ], "children": [ @@ -6821,7 +6821,7 @@ def post_p_1(cls): { "id": "mi(8,7,9)", "action": "click", - "policy": "add_assumption(sudoku(8,7,9))", + "operation": "add_assumption(sudoku(8,7,9))", } ], "children": [], @@ -6841,7 +6841,7 @@ def post_p_1(cls): { "id": "mi(8,7,5)", "action": "click", - "policy": "add_assumption(sudoku(8,7,5))", + "operation": "add_assumption(sudoku(8,7,5))", } ], "children": [], @@ -6887,7 +6887,7 @@ def post_p_1(cls): { "id": "m(2,7)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(2,7,any))", + "operation": "remove_assumption_signature(sudoku(2,7,any))", } ], "children": [ @@ -6906,7 +6906,7 @@ def post_p_1(cls): { "id": "mi(2,7,9)", "action": "click", - "policy": "add_assumption(sudoku(2,7,9))", + "operation": "add_assumption(sudoku(2,7,9))", } ], "children": [], @@ -6926,7 +6926,7 @@ def post_p_1(cls): { "id": "mi(2,7,5)", "action": "click", - "policy": "add_assumption(sudoku(2,7,5))", + "operation": "add_assumption(sudoku(2,7,5))", } ], "children": [], @@ -6946,7 +6946,7 @@ def post_p_1(cls): { "id": "mi(2,7,2)", "action": "click", - "policy": "add_assumption(sudoku(2,7,2))", + "operation": "add_assumption(sudoku(2,7,2))", } ], "children": [], @@ -6992,7 +6992,7 @@ def post_p_1(cls): { "id": "m(6,5)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(6,5,any))", + "operation": "remove_assumption_signature(sudoku(6,5,any))", } ], "children": [ @@ -7011,7 +7011,7 @@ def post_p_1(cls): { "id": "mi(6,5,9)", "action": "click", - "policy": "add_assumption(sudoku(6,5,9))", + "operation": "add_assumption(sudoku(6,5,9))", } ], "children": [], @@ -7057,7 +7057,7 @@ def post_p_1(cls): { "id": "m(4,1)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(4,1,any))", + "operation": "remove_assumption_signature(sudoku(4,1,any))", } ], "children": [ @@ -7076,7 +7076,7 @@ def post_p_1(cls): { "id": "mi(4,1,9)", "action": "click", - "policy": "add_assumption(sudoku(4,1,9))", + "operation": "add_assumption(sudoku(4,1,9))", } ], "children": [], @@ -7122,7 +7122,7 @@ def post_p_1(cls): { "id": "m(1,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(1,9,any))", + "operation": "remove_assumption_signature(sudoku(1,9,any))", } ], "children": [ @@ -7141,7 +7141,7 @@ def post_p_1(cls): { "id": "mi(1,9,8)", "action": "click", - "policy": "add_assumption(sudoku(1,9,8))", + "operation": "add_assumption(sudoku(1,9,8))", } ], "children": [], @@ -7161,7 +7161,7 @@ def post_p_1(cls): { "id": "mi(1,9,5)", "action": "click", - "policy": "add_assumption(sudoku(1,9,5))", + "operation": "add_assumption(sudoku(1,9,5))", } ], "children": [], @@ -7181,7 +7181,7 @@ def post_p_1(cls): { "id": "mi(1,9,2)", "action": "click", - "policy": "add_assumption(sudoku(1,9,2))", + "operation": "add_assumption(sudoku(1,9,2))", } ], "children": [], @@ -7201,7 +7201,7 @@ def post_p_1(cls): { "id": "mi(1,9,1)", "action": "click", - "policy": "add_assumption(sudoku(1,9,1))", + "operation": "add_assumption(sudoku(1,9,1))", } ], "children": [], @@ -7247,7 +7247,7 @@ def post_p_1(cls): { "id": "m(1,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(1,8,any))", + "operation": "remove_assumption_signature(sudoku(1,8,any))", } ], "children": [ @@ -7266,7 +7266,7 @@ def post_p_1(cls): { "id": "mi(1,8,8)", "action": "click", - "policy": "add_assumption(sudoku(1,8,8))", + "operation": "add_assumption(sudoku(1,8,8))", } ], "children": [], @@ -7286,7 +7286,7 @@ def post_p_1(cls): { "id": "mi(1,8,5)", "action": "click", - "policy": "add_assumption(sudoku(1,8,5))", + "operation": "add_assumption(sudoku(1,8,5))", } ], "children": [], @@ -7306,7 +7306,7 @@ def post_p_1(cls): { "id": "mi(1,8,2)", "action": "click", - "policy": "add_assumption(sudoku(1,8,2))", + "operation": "add_assumption(sudoku(1,8,2))", } ], "children": [], @@ -7326,7 +7326,7 @@ def post_p_1(cls): { "id": "mi(1,8,1)", "action": "click", - "policy": "add_assumption(sudoku(1,8,1))", + "operation": "add_assumption(sudoku(1,8,1))", } ], "children": [], @@ -7372,7 +7372,7 @@ def post_p_1(cls): { "id": "m(9,4)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(9,4,any))", + "operation": "remove_assumption_signature(sudoku(9,4,any))", } ], "children": [ @@ -7391,7 +7391,7 @@ def post_p_1(cls): { "id": "mi(9,4,8)", "action": "click", - "policy": "add_assumption(sudoku(9,4,8))", + "operation": "add_assumption(sudoku(9,4,8))", } ], "children": [], @@ -7437,7 +7437,7 @@ def post_p_1(cls): { "id": "m(2,3)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(2,3,any))", + "operation": "remove_assumption_signature(sudoku(2,3,any))", } ], "children": [ @@ -7456,7 +7456,7 @@ def post_p_1(cls): { "id": "mi(2,3,8)", "action": "click", - "policy": "add_assumption(sudoku(2,3,8))", + "operation": "add_assumption(sudoku(2,3,8))", } ], "children": [], @@ -7476,7 +7476,7 @@ def post_p_1(cls): { "id": "mi(2,3,4)", "action": "click", - "policy": "add_assumption(sudoku(2,3,4))", + "operation": "add_assumption(sudoku(2,3,4))", } ], "children": [], @@ -7496,7 +7496,7 @@ def post_p_1(cls): { "id": "mi(2,3,2)", "action": "click", - "policy": "add_assumption(sudoku(2,3,2))", + "operation": "add_assumption(sudoku(2,3,2))", } ], "children": [], @@ -7542,7 +7542,7 @@ def post_p_1(cls): { "id": "m(1,3)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(1,3,any))", + "operation": "remove_assumption_signature(sudoku(1,3,any))", } ], "children": [ @@ -7561,7 +7561,7 @@ def post_p_1(cls): { "id": "mi(1,3,8)", "action": "click", - "policy": "add_assumption(sudoku(1,3,8))", + "operation": "add_assumption(sudoku(1,3,8))", } ], "children": [], @@ -7581,7 +7581,7 @@ def post_p_1(cls): { "id": "mi(1,3,2)", "action": "click", - "policy": "add_assumption(sudoku(1,3,2))", + "operation": "add_assumption(sudoku(1,3,2))", } ], "children": [], @@ -7627,7 +7627,7 @@ def post_p_1(cls): { "id": "m(7,2)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(7,2,any))", + "operation": "remove_assumption_signature(sudoku(7,2,any))", } ], "children": [ @@ -7646,7 +7646,7 @@ def post_p_1(cls): { "id": "mi(7,2,8)", "action": "click", - "policy": "add_assumption(sudoku(7,2,8))", + "operation": "add_assumption(sudoku(7,2,8))", } ], "children": [], @@ -7692,7 +7692,7 @@ def post_p_1(cls): { "id": "m(9,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(9,9,any))", + "operation": "remove_assumption_signature(sudoku(9,9,any))", } ], "children": [ @@ -7711,7 +7711,7 @@ def post_p_1(cls): { "id": "mi(9,9,7)", "action": "click", - "policy": "add_assumption(sudoku(9,9,7))", + "operation": "add_assumption(sudoku(9,9,7))", } ], "children": [], @@ -7731,7 +7731,7 @@ def post_p_1(cls): { "id": "mi(9,9,4)", "action": "click", - "policy": "add_assumption(sudoku(9,9,4))", + "operation": "add_assumption(sudoku(9,9,4))", } ], "children": [], @@ -7751,7 +7751,7 @@ def post_p_1(cls): { "id": "mi(9,9,2)", "action": "click", - "policy": "add_assumption(sudoku(9,9,2))", + "operation": "add_assumption(sudoku(9,9,2))", } ], "children": [], @@ -7797,7 +7797,7 @@ def post_p_1(cls): { "id": "m(3,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(3,9,any))", + "operation": "remove_assumption_signature(sudoku(3,9,any))", } ], "children": [ @@ -7816,7 +7816,7 @@ def post_p_1(cls): { "id": "mi(3,9,7)", "action": "click", - "policy": "add_assumption(sudoku(3,9,7))", + "operation": "add_assumption(sudoku(3,9,7))", } ], "children": [], @@ -7836,7 +7836,7 @@ def post_p_1(cls): { "id": "mi(3,9,4)", "action": "click", - "policy": "add_assumption(sudoku(3,9,4))", + "operation": "add_assumption(sudoku(3,9,4))", } ], "children": [], @@ -7856,7 +7856,7 @@ def post_p_1(cls): { "id": "mi(3,9,3)", "action": "click", - "policy": "add_assumption(sudoku(3,9,3))", + "operation": "add_assumption(sudoku(3,9,3))", } ], "children": [], @@ -7876,7 +7876,7 @@ def post_p_1(cls): { "id": "mi(3,9,1)", "action": "click", - "policy": "add_assumption(sudoku(3,9,1))", + "operation": "add_assumption(sudoku(3,9,1))", } ], "children": [], @@ -7922,7 +7922,7 @@ def post_p_1(cls): { "id": "m(9,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(9,8,any))", + "operation": "remove_assumption_signature(sudoku(9,8,any))", } ], "children": [ @@ -7941,7 +7941,7 @@ def post_p_1(cls): { "id": "mi(9,8,7)", "action": "click", - "policy": "add_assumption(sudoku(9,8,7))", + "operation": "add_assumption(sudoku(9,8,7))", } ], "children": [], @@ -7961,7 +7961,7 @@ def post_p_1(cls): { "id": "mi(9,8,4)", "action": "click", - "policy": "add_assumption(sudoku(9,8,4))", + "operation": "add_assumption(sudoku(9,8,4))", } ], "children": [], @@ -7981,7 +7981,7 @@ def post_p_1(cls): { "id": "mi(9,8,2)", "action": "click", - "policy": "add_assumption(sudoku(9,8,2))", + "operation": "add_assumption(sudoku(9,8,2))", } ], "children": [], @@ -8027,7 +8027,7 @@ def post_p_1(cls): { "id": "m(3,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(3,8,any))", + "operation": "remove_assumption_signature(sudoku(3,8,any))", } ], "children": [ @@ -8046,7 +8046,7 @@ def post_p_1(cls): { "id": "mi(3,8,7)", "action": "click", - "policy": "add_assumption(sudoku(3,8,7))", + "operation": "add_assumption(sudoku(3,8,7))", } ], "children": [], @@ -8066,7 +8066,7 @@ def post_p_1(cls): { "id": "mi(3,8,4)", "action": "click", - "policy": "add_assumption(sudoku(3,8,4))", + "operation": "add_assumption(sudoku(3,8,4))", } ], "children": [], @@ -8086,7 +8086,7 @@ def post_p_1(cls): { "id": "mi(3,8,3)", "action": "click", - "policy": "add_assumption(sudoku(3,8,3))", + "operation": "add_assumption(sudoku(3,8,3))", } ], "children": [], @@ -8106,7 +8106,7 @@ def post_p_1(cls): { "id": "mi(3,8,1)", "action": "click", - "policy": "add_assumption(sudoku(3,8,1))", + "operation": "add_assumption(sudoku(3,8,1))", } ], "children": [], @@ -8152,7 +8152,7 @@ def post_p_1(cls): { "id": "m(4,6)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(4,6,any))", + "operation": "remove_assumption_signature(sudoku(4,6,any))", } ], "children": [ @@ -8171,7 +8171,7 @@ def post_p_1(cls): { "id": "mi(4,6,7)", "action": "click", - "policy": "add_assumption(sudoku(4,6,7))", + "operation": "add_assumption(sudoku(4,6,7))", } ], "children": [], @@ -8217,7 +8217,7 @@ def post_p_1(cls): { "id": "m(3,1)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(3,1,any))", + "operation": "remove_assumption_signature(sudoku(3,1,any))", } ], "children": [ @@ -8236,7 +8236,7 @@ def post_p_1(cls): { "id": "mi(3,1,7)", "action": "click", - "policy": "add_assumption(sudoku(3,1,7))", + "operation": "add_assumption(sudoku(3,1,7))", } ], "children": [], @@ -8256,7 +8256,7 @@ def post_p_1(cls): { "id": "mi(3,1,1)", "action": "click", - "policy": "add_assumption(sudoku(3,1,1))", + "operation": "add_assumption(sudoku(3,1,1))", } ], "children": [], @@ -8302,7 +8302,7 @@ def post_p_1(cls): { "id": "m(2,1)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(2,1,any))", + "operation": "remove_assumption_signature(sudoku(2,1,any))", } ], "children": [ @@ -8321,7 +8321,7 @@ def post_p_1(cls): { "id": "mi(2,1,7)", "action": "click", - "policy": "add_assumption(sudoku(2,1,7))", + "operation": "add_assumption(sudoku(2,1,7))", } ], "children": [], @@ -8341,7 +8341,7 @@ def post_p_1(cls): { "id": "mi(2,1,5)", "action": "click", - "policy": "add_assumption(sudoku(2,1,5))", + "operation": "add_assumption(sudoku(2,1,5))", } ], "children": [], @@ -8361,7 +8361,7 @@ def post_p_1(cls): { "id": "mi(2,1,2)", "action": "click", - "policy": "add_assumption(sudoku(2,1,2))", + "operation": "add_assumption(sudoku(2,1,2))", } ], "children": [], @@ -8407,7 +8407,7 @@ def post_p_1(cls): { "id": "m(7,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(7,9,any))", + "operation": "remove_assumption_signature(sudoku(7,9,any))", } ], "children": [ @@ -8426,7 +8426,7 @@ def post_p_1(cls): { "id": "mi(7,9,6)", "action": "click", - "policy": "add_assumption(sudoku(7,9,6))", + "operation": "add_assumption(sudoku(7,9,6))", } ], "children": [], @@ -8446,7 +8446,7 @@ def post_p_1(cls): { "id": "mi(7,9,3)", "action": "click", - "policy": "add_assumption(sudoku(7,9,3))", + "operation": "add_assumption(sudoku(7,9,3))", } ], "children": [], @@ -8466,7 +8466,7 @@ def post_p_1(cls): { "id": "mi(7,9,1)", "action": "click", - "policy": "add_assumption(sudoku(7,9,1))", + "operation": "add_assumption(sudoku(7,9,1))", } ], "children": [], @@ -8512,7 +8512,7 @@ def post_p_1(cls): { "id": "m(4,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(4,9,any))", + "operation": "remove_assumption_signature(sudoku(4,9,any))", } ], "children": [ @@ -8531,7 +8531,7 @@ def post_p_1(cls): { "id": "mi(4,9,6)", "action": "click", - "policy": "add_assumption(sudoku(4,9,6))", + "operation": "add_assumption(sudoku(4,9,6))", } ], "children": [], @@ -8551,7 +8551,7 @@ def post_p_1(cls): { "id": "mi(4,9,5)", "action": "click", - "policy": "add_assumption(sudoku(4,9,5))", + "operation": "add_assumption(sudoku(4,9,5))", } ], "children": [], @@ -8571,7 +8571,7 @@ def post_p_1(cls): { "id": "mi(4,9,2)", "action": "click", - "policy": "add_assumption(sudoku(4,9,2))", + "operation": "add_assumption(sudoku(4,9,2))", } ], "children": [], @@ -8591,7 +8591,7 @@ def post_p_1(cls): { "id": "mi(4,9,1)", "action": "click", - "policy": "add_assumption(sudoku(4,9,1))", + "operation": "add_assumption(sudoku(4,9,1))", } ], "children": [], @@ -8637,7 +8637,7 @@ def post_p_1(cls): { "id": "m(7,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(7,8,any))", + "operation": "remove_assumption_signature(sudoku(7,8,any))", } ], "children": [ @@ -8656,7 +8656,7 @@ def post_p_1(cls): { "id": "mi(7,8,6)", "action": "click", - "policy": "add_assumption(sudoku(7,8,6))", + "operation": "add_assumption(sudoku(7,8,6))", } ], "children": [], @@ -8676,7 +8676,7 @@ def post_p_1(cls): { "id": "mi(7,8,3)", "action": "click", - "policy": "add_assumption(sudoku(7,8,3))", + "operation": "add_assumption(sudoku(7,8,3))", } ], "children": [], @@ -8696,7 +8696,7 @@ def post_p_1(cls): { "id": "mi(7,8,1)", "action": "click", - "policy": "add_assumption(sudoku(7,8,1))", + "operation": "add_assumption(sudoku(7,8,1))", } ], "children": [], @@ -8742,7 +8742,7 @@ def post_p_1(cls): { "id": "m(4,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(4,8,any))", + "operation": "remove_assumption_signature(sudoku(4,8,any))", } ], "children": [ @@ -8761,7 +8761,7 @@ def post_p_1(cls): { "id": "mi(4,8,6)", "action": "click", - "policy": "add_assumption(sudoku(4,8,6))", + "operation": "add_assumption(sudoku(4,8,6))", } ], "children": [], @@ -8781,7 +8781,7 @@ def post_p_1(cls): { "id": "mi(4,8,5)", "action": "click", - "policy": "add_assumption(sudoku(4,8,5))", + "operation": "add_assumption(sudoku(4,8,5))", } ], "children": [], @@ -8801,7 +8801,7 @@ def post_p_1(cls): { "id": "mi(4,8,2)", "action": "click", - "policy": "add_assumption(sudoku(4,8,2))", + "operation": "add_assumption(sudoku(4,8,2))", } ], "children": [], @@ -8821,7 +8821,7 @@ def post_p_1(cls): { "id": "mi(4,8,1)", "action": "click", - "policy": "add_assumption(sudoku(4,8,1))", + "operation": "add_assumption(sudoku(4,8,1))", } ], "children": [], @@ -8867,7 +8867,7 @@ def post_p_1(cls): { "id": "m(5,5)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(5,5,any))", + "operation": "remove_assumption_signature(sudoku(5,5,any))", } ], "children": [ @@ -8886,7 +8886,7 @@ def post_p_1(cls): { "id": "mi(5,5,6)", "action": "click", - "policy": "add_assumption(sudoku(5,5,6))", + "operation": "add_assumption(sudoku(5,5,6))", } ], "children": [], @@ -8932,7 +8932,7 @@ def post_p_1(cls): { "id": "m(3,2)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(3,2,any))", + "operation": "remove_assumption_signature(sudoku(3,2,any))", } ], "children": [ @@ -8951,7 +8951,7 @@ def post_p_1(cls): { "id": "mi(3,2,6)", "action": "click", - "policy": "add_assumption(sudoku(3,2,6))", + "operation": "add_assumption(sudoku(3,2,6))", } ], "children": [], @@ -8997,7 +8997,7 @@ def post_p_1(cls): { "id": "m(6,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(6,9,any))", + "operation": "remove_assumption_signature(sudoku(6,9,any))", } ], "children": [ @@ -9016,7 +9016,7 @@ def post_p_1(cls): { "id": "mi(6,9,5)", "action": "click", - "policy": "add_assumption(sudoku(6,9,5))", + "operation": "add_assumption(sudoku(6,9,5))", } ], "children": [], @@ -9036,7 +9036,7 @@ def post_p_1(cls): { "id": "mi(6,9,4)", "action": "click", - "policy": "add_assumption(sudoku(6,9,4))", + "operation": "add_assumption(sudoku(6,9,4))", } ], "children": [], @@ -9056,7 +9056,7 @@ def post_p_1(cls): { "id": "mi(6,9,3)", "action": "click", - "policy": "add_assumption(sudoku(6,9,3))", + "operation": "add_assumption(sudoku(6,9,3))", } ], "children": [], @@ -9076,7 +9076,7 @@ def post_p_1(cls): { "id": "mi(6,9,1)", "action": "click", - "policy": "add_assumption(sudoku(6,9,1))", + "operation": "add_assumption(sudoku(6,9,1))", } ], "children": [], @@ -9122,7 +9122,7 @@ def post_p_1(cls): { "id": "m(6,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(6,8,any))", + "operation": "remove_assumption_signature(sudoku(6,8,any))", } ], "children": [ @@ -9141,7 +9141,7 @@ def post_p_1(cls): { "id": "mi(6,8,5)", "action": "click", - "policy": "add_assumption(sudoku(6,8,5))", + "operation": "add_assumption(sudoku(6,8,5))", } ], "children": [], @@ -9161,7 +9161,7 @@ def post_p_1(cls): { "id": "mi(6,8,4)", "action": "click", - "policy": "add_assumption(sudoku(6,8,4))", + "operation": "add_assumption(sudoku(6,8,4))", } ], "children": [], @@ -9181,7 +9181,7 @@ def post_p_1(cls): { "id": "mi(6,8,3)", "action": "click", - "policy": "add_assumption(sudoku(6,8,3))", + "operation": "add_assumption(sudoku(6,8,3))", } ], "children": [], @@ -9201,7 +9201,7 @@ def post_p_1(cls): { "id": "mi(6,8,1)", "action": "click", - "policy": "add_assumption(sudoku(6,8,1))", + "operation": "add_assumption(sudoku(6,8,1))", } ], "children": [], @@ -9247,7 +9247,7 @@ def post_p_1(cls): { "id": "m(4,7)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(4,7,any))", + "operation": "remove_assumption_signature(sudoku(4,7,any))", } ], "children": [ @@ -9266,7 +9266,7 @@ def post_p_1(cls): { "id": "mi(4,7,5)", "action": "click", - "policy": "add_assumption(sudoku(4,7,5))", + "operation": "add_assumption(sudoku(4,7,5))", } ], "children": [], @@ -9286,7 +9286,7 @@ def post_p_1(cls): { "id": "mi(4,7,2)", "action": "click", - "policy": "add_assumption(sudoku(4,7,2))", + "operation": "add_assumption(sudoku(4,7,2))", } ], "children": [], @@ -9306,7 +9306,7 @@ def post_p_1(cls): { "id": "mi(4,7,1)", "action": "click", - "policy": "add_assumption(sudoku(4,7,1))", + "operation": "add_assumption(sudoku(4,7,1))", } ], "children": [], @@ -9352,7 +9352,7 @@ def post_p_1(cls): { "id": "m(6,6)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(6,6,any))", + "operation": "remove_assumption_signature(sudoku(6,6,any))", } ], "children": [ @@ -9371,7 +9371,7 @@ def post_p_1(cls): { "id": "mi(6,6,5)", "action": "click", - "policy": "add_assumption(sudoku(6,6,5))", + "operation": "add_assumption(sudoku(6,6,5))", } ], "children": [], @@ -9391,7 +9391,7 @@ def post_p_1(cls): { "id": "mi(6,6,3)", "action": "click", - "policy": "add_assumption(sudoku(6,6,3))", + "operation": "add_assumption(sudoku(6,6,3))", } ], "children": [], @@ -9437,7 +9437,7 @@ def post_p_1(cls): { "id": "m(5,6)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(5,6,any))", + "operation": "remove_assumption_signature(sudoku(5,6,any))", } ], "children": [ @@ -9456,7 +9456,7 @@ def post_p_1(cls): { "id": "mi(5,6,5)", "action": "click", - "policy": "add_assumption(sudoku(5,6,5))", + "operation": "add_assumption(sudoku(5,6,5))", } ], "children": [], @@ -9476,7 +9476,7 @@ def post_p_1(cls): { "id": "mi(5,6,3)", "action": "click", - "policy": "add_assumption(sudoku(5,6,3))", + "operation": "add_assumption(sudoku(5,6,3))", } ], "children": [], @@ -9522,7 +9522,7 @@ def post_p_1(cls): { "id": "m(3,4)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(3,4,any))", + "operation": "remove_assumption_signature(sudoku(3,4,any))", } ], "children": [ @@ -9541,7 +9541,7 @@ def post_p_1(cls): { "id": "mi(3,4,5)", "action": "click", - "policy": "add_assumption(sudoku(3,4,5))", + "operation": "add_assumption(sudoku(3,4,5))", } ], "children": [], @@ -9587,7 +9587,7 @@ def post_p_1(cls): { "id": "m(5,2)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(5,2,any))", + "operation": "remove_assumption_signature(sudoku(5,2,any))", } ], "children": [ @@ -9606,7 +9606,7 @@ def post_p_1(cls): { "id": "mi(5,2,5)", "action": "click", - "policy": "add_assumption(sudoku(5,2,5))", + "operation": "add_assumption(sudoku(5,2,5))", } ], "children": [], @@ -9626,7 +9626,7 @@ def post_p_1(cls): { "id": "mi(5,2,4)", "action": "click", - "policy": "add_assumption(sudoku(5,2,4))", + "operation": "add_assumption(sudoku(5,2,4))", } ], "children": [], @@ -9646,7 +9646,7 @@ def post_p_1(cls): { "id": "mi(5,2,1)", "action": "click", - "policy": "add_assumption(sudoku(5,2,1))", + "operation": "add_assumption(sudoku(5,2,1))", } ], "children": [], @@ -9692,7 +9692,7 @@ def post_p_1(cls): { "id": "m(4,2)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(4,2,any))", + "operation": "remove_assumption_signature(sudoku(4,2,any))", } ], "children": [ @@ -9711,7 +9711,7 @@ def post_p_1(cls): { "id": "mi(4,2,5)", "action": "click", - "policy": "add_assumption(sudoku(4,2,5))", + "operation": "add_assumption(sudoku(4,2,5))", } ], "children": [], @@ -9731,7 +9731,7 @@ def post_p_1(cls): { "id": "mi(4,2,1)", "action": "click", - "policy": "add_assumption(sudoku(4,2,1))", + "operation": "add_assumption(sudoku(4,2,1))", } ], "children": [], @@ -9777,7 +9777,7 @@ def post_p_1(cls): { "id": "m(2,2)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(2,2,any))", + "operation": "remove_assumption_signature(sudoku(2,2,any))", } ], "children": [ @@ -9796,7 +9796,7 @@ def post_p_1(cls): { "id": "mi(2,2,5)", "action": "click", - "policy": "add_assumption(sudoku(2,2,5))", + "operation": "add_assumption(sudoku(2,2,5))", } ], "children": [], @@ -9816,7 +9816,7 @@ def post_p_1(cls): { "id": "mi(2,2,4)", "action": "click", - "policy": "add_assumption(sudoku(2,2,4))", + "operation": "add_assumption(sudoku(2,2,4))", } ], "children": [], @@ -9862,7 +9862,7 @@ def post_p_1(cls): { "id": "m(6,1)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(6,1,any))", + "operation": "remove_assumption_signature(sudoku(6,1,any))", } ], "children": [ @@ -9881,7 +9881,7 @@ def post_p_1(cls): { "id": "mi(6,1,5)", "action": "click", - "policy": "add_assumption(sudoku(6,1,5))", + "operation": "add_assumption(sudoku(6,1,5))", } ], "children": [], @@ -9901,7 +9901,7 @@ def post_p_1(cls): { "id": "mi(6,1,2)", "action": "click", - "policy": "add_assumption(sudoku(6,1,2))", + "operation": "add_assumption(sudoku(6,1,2))", } ], "children": [], @@ -9947,7 +9947,7 @@ def post_p_1(cls): { "id": "m(1,1)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(1,1,any))", + "operation": "remove_assumption_signature(sudoku(1,1,any))", } ], "children": [ @@ -9966,7 +9966,7 @@ def post_p_1(cls): { "id": "mi(1,1,5)", "action": "click", - "policy": "add_assumption(sudoku(1,1,5))", + "operation": "add_assumption(sudoku(1,1,5))", } ], "children": [], @@ -9986,7 +9986,7 @@ def post_p_1(cls): { "id": "mi(1,1,2)", "action": "click", - "policy": "add_assumption(sudoku(1,1,2))", + "operation": "add_assumption(sudoku(1,1,2))", } ], "children": [], @@ -10006,7 +10006,7 @@ def post_p_1(cls): { "id": "mi(1,1,1)", "action": "click", - "policy": "add_assumption(sudoku(1,1,1))", + "operation": "add_assumption(sudoku(1,1,1))", } ], "children": [], @@ -10052,7 +10052,7 @@ def post_p_1(cls): { "id": "m(9,7)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(9,7,any))", + "operation": "remove_assumption_signature(sudoku(9,7,any))", } ], "children": [ @@ -10071,7 +10071,7 @@ def post_p_1(cls): { "id": "mi(9,7,4)", "action": "click", - "policy": "add_assumption(sudoku(9,7,4))", + "operation": "add_assumption(sudoku(9,7,4))", } ], "children": [], @@ -10091,7 +10091,7 @@ def post_p_1(cls): { "id": "mi(9,7,2)", "action": "click", - "policy": "add_assumption(sudoku(9,7,2))", + "operation": "add_assumption(sudoku(9,7,2))", } ], "children": [], @@ -10137,7 +10137,7 @@ def post_p_1(cls): { "id": "m(3,7)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(3,7,any))", + "operation": "remove_assumption_signature(sudoku(3,7,any))", } ], "children": [ @@ -10156,7 +10156,7 @@ def post_p_1(cls): { "id": "mi(3,7,4)", "action": "click", - "policy": "add_assumption(sudoku(3,7,4))", + "operation": "add_assumption(sudoku(3,7,4))", } ], "children": [], @@ -10176,7 +10176,7 @@ def post_p_1(cls): { "id": "mi(3,7,3)", "action": "click", - "policy": "add_assumption(sudoku(3,7,3))", + "operation": "add_assumption(sudoku(3,7,3))", } ], "children": [], @@ -10196,7 +10196,7 @@ def post_p_1(cls): { "id": "mi(3,7,1)", "action": "click", - "policy": "add_assumption(sudoku(3,7,1))", + "operation": "add_assumption(sudoku(3,7,1))", } ], "children": [], @@ -10242,7 +10242,7 @@ def post_p_1(cls): { "id": "m(1,5)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(1,5,any))", + "operation": "remove_assumption_signature(sudoku(1,5,any))", } ], "children": [ @@ -10261,7 +10261,7 @@ def post_p_1(cls): { "id": "mi(1,5,4)", "action": "click", - "policy": "add_assumption(sudoku(1,5,4))", + "operation": "add_assumption(sudoku(1,5,4))", } ], "children": [], @@ -10307,7 +10307,7 @@ def post_p_1(cls): { "id": "m(5,3)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(5,3,any))", + "operation": "remove_assumption_signature(sudoku(5,3,any))", } ], "children": [ @@ -10326,7 +10326,7 @@ def post_p_1(cls): { "id": "mi(5,3,4)", "action": "click", - "policy": "add_assumption(sudoku(5,3,4))", + "operation": "add_assumption(sudoku(5,3,4))", } ], "children": [], @@ -10346,7 +10346,7 @@ def post_p_1(cls): { "id": "mi(5,3,2)", "action": "click", - "policy": "add_assumption(sudoku(5,3,2))", + "operation": "add_assumption(sudoku(5,3,2))", } ], "children": [], @@ -10392,7 +10392,7 @@ def post_p_1(cls): { "id": "m(7,7)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(7,7,any))", + "operation": "remove_assumption_signature(sudoku(7,7,any))", } ], "children": [ @@ -10411,7 +10411,7 @@ def post_p_1(cls): { "id": "mi(7,7,3)", "action": "click", - "policy": "add_assumption(sudoku(7,7,3))", + "operation": "add_assumption(sudoku(7,7,3))", } ], "children": [], @@ -10431,7 +10431,7 @@ def post_p_1(cls): { "id": "mi(7,7,1)", "action": "click", - "policy": "add_assumption(sudoku(7,7,1))", + "operation": "add_assumption(sudoku(7,7,1))", } ], "children": [], @@ -10477,7 +10477,7 @@ def post_p_1(cls): { "id": "m(1,2)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(1,2,any))", + "operation": "remove_assumption_signature(sudoku(1,2,any))", } ], "children": [ @@ -10496,7 +10496,7 @@ def post_p_1(cls): { "id": "mi(1,2,3)", "action": "click", - "policy": "add_assumption(sudoku(1,2,3))", + "operation": "add_assumption(sudoku(1,2,3))", } ], "children": [], @@ -10542,7 +10542,7 @@ def post_p_1(cls): { "id": "m(9,1)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(9,1,any))", + "operation": "remove_assumption_signature(sudoku(9,1,any))", } ], "children": [ @@ -10561,7 +10561,7 @@ def post_p_1(cls): { "id": "mi(9,1,3)", "action": "click", - "policy": "add_assumption(sudoku(9,1,3))", + "operation": "add_assumption(sudoku(9,1,3))", } ], "children": [], @@ -10607,7 +10607,7 @@ def post_p_1(cls): { "id": "m(7,6)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(7,6,any))", + "operation": "remove_assumption_signature(sudoku(7,6,any))", } ], "children": [ @@ -10626,7 +10626,7 @@ def post_p_1(cls): { "id": "mi(7,6,2)", "action": "click", - "policy": "add_assumption(sudoku(7,6,2))", + "operation": "add_assumption(sudoku(7,6,2))", } ], "children": [], @@ -10672,7 +10672,7 @@ def post_p_1(cls): { "id": "m(6,4)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(6,4,any))", + "operation": "remove_assumption_signature(sudoku(6,4,any))", } ], "children": [ @@ -10691,7 +10691,7 @@ def post_p_1(cls): { "id": "mi(6,4,2)", "action": "click", - "policy": "add_assumption(sudoku(6,4,2))", + "operation": "add_assumption(sudoku(6,4,2))", } ], "children": [], @@ -10711,7 +10711,7 @@ def post_p_1(cls): { "id": "mi(6,4,1)", "action": "click", - "policy": "add_assumption(sudoku(6,4,1))", + "operation": "add_assumption(sudoku(6,4,1))", } ], "children": [], @@ -10757,7 +10757,7 @@ def post_p_1(cls): { "id": "m(5,4)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(5,4,any))", + "operation": "remove_assumption_signature(sudoku(5,4,any))", } ], "children": [ @@ -10776,7 +10776,7 @@ def post_p_1(cls): { "id": "mi(5,4,2)", "action": "click", - "policy": "add_assumption(sudoku(5,4,2))", + "operation": "add_assumption(sudoku(5,4,2))", } ], "children": [], @@ -10796,7 +10796,7 @@ def post_p_1(cls): { "id": "mi(5,4,1)", "action": "click", - "policy": "add_assumption(sudoku(5,4,1))", + "operation": "add_assumption(sudoku(5,4,1))", } ], "children": [], @@ -10842,7 +10842,7 @@ def post_p_1(cls): { "id": "m(8,5)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(8,5,any))", + "operation": "remove_assumption_signature(sudoku(8,5,any))", } ], "children": [ @@ -10861,7 +10861,7 @@ def post_p_1(cls): { "id": "mi(8,5,1)", "action": "click", - "policy": "add_assumption(sudoku(8,5,1))", + "operation": "add_assumption(sudoku(8,5,1))", } ], "children": [], @@ -10907,7 +10907,7 @@ def post_p_1(cls): { "id": "m(9,3)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(9,3,any))", + "operation": "remove_assumption_signature(sudoku(9,3,any))", } ], "children": [ @@ -10926,7 +10926,7 @@ def post_p_1(cls): { "id": "mi(9,3,1)", "action": "click", - "policy": "add_assumption(sudoku(9,3,1))", + "operation": "add_assumption(sudoku(9,3,1))", } ], "children": [], @@ -10975,7 +10975,7 @@ def post_p_1(cls): { "id": "ms_select", "action": "click", - "policy": "select", + "operation": "select", } ], "children": [], @@ -11000,7 +11000,7 @@ def post_p_1(cls): { "id": "ms_next", "action": "click", - "policy": "next_solution", + "operation": "next_solution", } ], "children": [], @@ -11025,7 +11025,7 @@ def post_p_1(cls): { "id": "ms_clear", "action": "click", - "policy": "clear_assumptions", + "operation": "clear_assumptions", } ], "children": [], @@ -12232,7 +12232,7 @@ def post_p_2(cls): { "id": "m(8,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(8,9,any))", + "operation": "remove_assumption_signature(sudoku(8,9,any))", } ], "children": [ @@ -12251,7 +12251,7 @@ def post_p_2(cls): { "id": "mi(8,9,9)", "action": "click", - "policy": "add_assumption(sudoku(8,9,9))", + "operation": "add_assumption(sudoku(8,9,9))", } ], "children": [], @@ -12271,7 +12271,7 @@ def post_p_2(cls): { "id": "mi(8,9,8)", "action": "click", - "policy": "add_assumption(sudoku(8,9,8))", + "operation": "add_assumption(sudoku(8,9,8))", } ], "children": [], @@ -12291,7 +12291,7 @@ def post_p_2(cls): { "id": "mi(8,9,5)", "action": "click", - "policy": "add_assumption(sudoku(8,9,5))", + "operation": "add_assumption(sudoku(8,9,5))", } ], "children": [], @@ -12337,7 +12337,7 @@ def post_p_2(cls): { "id": "m(5,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(5,9,any))", + "operation": "remove_assumption_signature(sudoku(5,9,any))", } ], "children": [ @@ -12356,7 +12356,7 @@ def post_p_2(cls): { "id": "mi(5,9,9)", "action": "click", - "policy": "add_assumption(sudoku(5,9,9))", + "operation": "add_assumption(sudoku(5,9,9))", } ], "children": [], @@ -12376,7 +12376,7 @@ def post_p_2(cls): { "id": "mi(5,9,5)", "action": "click", - "policy": "add_assumption(sudoku(5,9,5))", + "operation": "add_assumption(sudoku(5,9,5))", } ], "children": [], @@ -12396,7 +12396,7 @@ def post_p_2(cls): { "id": "mi(5,9,3)", "action": "click", - "policy": "add_assumption(sudoku(5,9,3))", + "operation": "add_assumption(sudoku(5,9,3))", } ], "children": [], @@ -12416,7 +12416,7 @@ def post_p_2(cls): { "id": "mi(5,9,1)", "action": "click", - "policy": "add_assumption(sudoku(5,9,1))", + "operation": "add_assumption(sudoku(5,9,1))", } ], "children": [], @@ -12462,7 +12462,7 @@ def post_p_2(cls): { "id": "m(2,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(2,9,any))", + "operation": "remove_assumption_signature(sudoku(2,9,any))", } ], "children": [ @@ -12481,7 +12481,7 @@ def post_p_2(cls): { "id": "mi(2,9,9)", "action": "click", - "policy": "add_assumption(sudoku(2,9,9))", + "operation": "add_assumption(sudoku(2,9,9))", } ], "children": [], @@ -12501,7 +12501,7 @@ def post_p_2(cls): { "id": "mi(2,9,8)", "action": "click", - "policy": "add_assumption(sudoku(2,9,8))", + "operation": "add_assumption(sudoku(2,9,8))", } ], "children": [], @@ -12521,7 +12521,7 @@ def post_p_2(cls): { "id": "mi(2,9,7)", "action": "click", - "policy": "add_assumption(sudoku(2,9,7))", + "operation": "add_assumption(sudoku(2,9,7))", } ], "children": [], @@ -12541,7 +12541,7 @@ def post_p_2(cls): { "id": "mi(2,9,5)", "action": "click", - "policy": "add_assumption(sudoku(2,9,5))", + "operation": "add_assumption(sudoku(2,9,5))", } ], "children": [], @@ -12561,7 +12561,7 @@ def post_p_2(cls): { "id": "mi(2,9,2)", "action": "click", - "policy": "add_assumption(sudoku(2,9,2))", + "operation": "add_assumption(sudoku(2,9,2))", } ], "children": [], @@ -12607,7 +12607,7 @@ def post_p_2(cls): { "id": "m(8,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(8,8,any))", + "operation": "remove_assumption_signature(sudoku(8,8,any))", } ], "children": [ @@ -12626,7 +12626,7 @@ def post_p_2(cls): { "id": "mi(8,8,9)", "action": "click", - "policy": "add_assumption(sudoku(8,8,9))", + "operation": "add_assumption(sudoku(8,8,9))", } ], "children": [], @@ -12646,7 +12646,7 @@ def post_p_2(cls): { "id": "mi(8,8,8)", "action": "click", - "policy": "add_assumption(sudoku(8,8,8))", + "operation": "add_assumption(sudoku(8,8,8))", } ], "children": [], @@ -12666,7 +12666,7 @@ def post_p_2(cls): { "id": "mi(8,8,5)", "action": "click", - "policy": "add_assumption(sudoku(8,8,5))", + "operation": "add_assumption(sudoku(8,8,5))", } ], "children": [], @@ -12712,7 +12712,7 @@ def post_p_2(cls): { "id": "m(5,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(5,8,any))", + "operation": "remove_assumption_signature(sudoku(5,8,any))", } ], "children": [ @@ -12731,7 +12731,7 @@ def post_p_2(cls): { "id": "mi(5,8,9)", "action": "click", - "policy": "add_assumption(sudoku(5,8,9))", + "operation": "add_assumption(sudoku(5,8,9))", } ], "children": [], @@ -12751,7 +12751,7 @@ def post_p_2(cls): { "id": "mi(5,8,5)", "action": "click", - "policy": "add_assumption(sudoku(5,8,5))", + "operation": "add_assumption(sudoku(5,8,5))", } ], "children": [], @@ -12771,7 +12771,7 @@ def post_p_2(cls): { "id": "mi(5,8,3)", "action": "click", - "policy": "add_assumption(sudoku(5,8,3))", + "operation": "add_assumption(sudoku(5,8,3))", } ], "children": [], @@ -12791,7 +12791,7 @@ def post_p_2(cls): { "id": "mi(5,8,1)", "action": "click", - "policy": "add_assumption(sudoku(5,8,1))", + "operation": "add_assumption(sudoku(5,8,1))", } ], "children": [], @@ -12837,7 +12837,7 @@ def post_p_2(cls): { "id": "m(2,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(2,8,any))", + "operation": "remove_assumption_signature(sudoku(2,8,any))", } ], "children": [ @@ -12856,7 +12856,7 @@ def post_p_2(cls): { "id": "mi(2,8,9)", "action": "click", - "policy": "add_assumption(sudoku(2,8,9))", + "operation": "add_assumption(sudoku(2,8,9))", } ], "children": [], @@ -12876,7 +12876,7 @@ def post_p_2(cls): { "id": "mi(2,8,8)", "action": "click", - "policy": "add_assumption(sudoku(2,8,8))", + "operation": "add_assumption(sudoku(2,8,8))", } ], "children": [], @@ -12896,7 +12896,7 @@ def post_p_2(cls): { "id": "mi(2,8,7)", "action": "click", - "policy": "add_assumption(sudoku(2,8,7))", + "operation": "add_assumption(sudoku(2,8,7))", } ], "children": [], @@ -12916,7 +12916,7 @@ def post_p_2(cls): { "id": "mi(2,8,5)", "action": "click", - "policy": "add_assumption(sudoku(2,8,5))", + "operation": "add_assumption(sudoku(2,8,5))", } ], "children": [], @@ -12936,7 +12936,7 @@ def post_p_2(cls): { "id": "mi(2,8,2)", "action": "click", - "policy": "add_assumption(sudoku(2,8,2))", + "operation": "add_assumption(sudoku(2,8,2))", } ], "children": [], @@ -12982,7 +12982,7 @@ def post_p_2(cls): { "id": "m(8,7)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(8,7,any))", + "operation": "remove_assumption_signature(sudoku(8,7,any))", } ], "children": [ @@ -13001,7 +13001,7 @@ def post_p_2(cls): { "id": "mi(8,7,9)", "action": "click", - "policy": "add_assumption(sudoku(8,7,9))", + "operation": "add_assumption(sudoku(8,7,9))", } ], "children": [], @@ -13021,7 +13021,7 @@ def post_p_2(cls): { "id": "mi(8,7,5)", "action": "click", - "policy": "add_assumption(sudoku(8,7,5))", + "operation": "add_assumption(sudoku(8,7,5))", } ], "children": [], @@ -13067,7 +13067,7 @@ def post_p_2(cls): { "id": "m(2,7)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(2,7,any))", + "operation": "remove_assumption_signature(sudoku(2,7,any))", } ], "children": [ @@ -13086,7 +13086,7 @@ def post_p_2(cls): { "id": "mi(2,7,9)", "action": "click", - "policy": "add_assumption(sudoku(2,7,9))", + "operation": "add_assumption(sudoku(2,7,9))", } ], "children": [], @@ -13106,7 +13106,7 @@ def post_p_2(cls): { "id": "mi(2,7,5)", "action": "click", - "policy": "add_assumption(sudoku(2,7,5))", + "operation": "add_assumption(sudoku(2,7,5))", } ], "children": [], @@ -13126,7 +13126,7 @@ def post_p_2(cls): { "id": "mi(2,7,2)", "action": "click", - "policy": "add_assumption(sudoku(2,7,2))", + "operation": "add_assumption(sudoku(2,7,2))", } ], "children": [], @@ -13172,7 +13172,7 @@ def post_p_2(cls): { "id": "m(6,5)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(6,5,any))", + "operation": "remove_assumption_signature(sudoku(6,5,any))", } ], "children": [ @@ -13191,7 +13191,7 @@ def post_p_2(cls): { "id": "mi(6,5,9)", "action": "click", - "policy": "add_assumption(sudoku(6,5,9))", + "operation": "add_assumption(sudoku(6,5,9))", } ], "children": [], @@ -13237,7 +13237,7 @@ def post_p_2(cls): { "id": "m(4,1)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(4,1,any))", + "operation": "remove_assumption_signature(sudoku(4,1,any))", } ], "children": [ @@ -13256,7 +13256,7 @@ def post_p_2(cls): { "id": "mi(4,1,9)", "action": "click", - "policy": "add_assumption(sudoku(4,1,9))", + "operation": "add_assumption(sudoku(4,1,9))", } ], "children": [], @@ -13302,7 +13302,7 @@ def post_p_2(cls): { "id": "m(1,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(1,9,any))", + "operation": "remove_assumption_signature(sudoku(1,9,any))", } ], "children": [ @@ -13321,7 +13321,7 @@ def post_p_2(cls): { "id": "mi(1,9,8)", "action": "click", - "policy": "add_assumption(sudoku(1,9,8))", + "operation": "add_assumption(sudoku(1,9,8))", } ], "children": [], @@ -13341,7 +13341,7 @@ def post_p_2(cls): { "id": "mi(1,9,5)", "action": "click", - "policy": "add_assumption(sudoku(1,9,5))", + "operation": "add_assumption(sudoku(1,9,5))", } ], "children": [], @@ -13361,7 +13361,7 @@ def post_p_2(cls): { "id": "mi(1,9,2)", "action": "click", - "policy": "add_assumption(sudoku(1,9,2))", + "operation": "add_assumption(sudoku(1,9,2))", } ], "children": [], @@ -13381,7 +13381,7 @@ def post_p_2(cls): { "id": "mi(1,9,1)", "action": "click", - "policy": "add_assumption(sudoku(1,9,1))", + "operation": "add_assumption(sudoku(1,9,1))", } ], "children": [], @@ -13427,7 +13427,7 @@ def post_p_2(cls): { "id": "m(1,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(1,8,any))", + "operation": "remove_assumption_signature(sudoku(1,8,any))", } ], "children": [ @@ -13446,7 +13446,7 @@ def post_p_2(cls): { "id": "mi(1,8,8)", "action": "click", - "policy": "add_assumption(sudoku(1,8,8))", + "operation": "add_assumption(sudoku(1,8,8))", } ], "children": [], @@ -13466,7 +13466,7 @@ def post_p_2(cls): { "id": "mi(1,8,5)", "action": "click", - "policy": "add_assumption(sudoku(1,8,5))", + "operation": "add_assumption(sudoku(1,8,5))", } ], "children": [], @@ -13486,7 +13486,7 @@ def post_p_2(cls): { "id": "mi(1,8,2)", "action": "click", - "policy": "add_assumption(sudoku(1,8,2))", + "operation": "add_assumption(sudoku(1,8,2))", } ], "children": [], @@ -13506,7 +13506,7 @@ def post_p_2(cls): { "id": "mi(1,8,1)", "action": "click", - "policy": "add_assumption(sudoku(1,8,1))", + "operation": "add_assumption(sudoku(1,8,1))", } ], "children": [], @@ -13552,7 +13552,7 @@ def post_p_2(cls): { "id": "m(9,4)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(9,4,any))", + "operation": "remove_assumption_signature(sudoku(9,4,any))", } ], "children": [ @@ -13571,7 +13571,7 @@ def post_p_2(cls): { "id": "mi(9,4,8)", "action": "click", - "policy": "add_assumption(sudoku(9,4,8))", + "operation": "add_assumption(sudoku(9,4,8))", } ], "children": [], @@ -13617,7 +13617,7 @@ def post_p_2(cls): { "id": "m(2,3)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(2,3,any))", + "operation": "remove_assumption_signature(sudoku(2,3,any))", } ], "children": [ @@ -13636,7 +13636,7 @@ def post_p_2(cls): { "id": "mi(2,3,8)", "action": "click", - "policy": "add_assumption(sudoku(2,3,8))", + "operation": "add_assumption(sudoku(2,3,8))", } ], "children": [], @@ -13656,7 +13656,7 @@ def post_p_2(cls): { "id": "mi(2,3,4)", "action": "click", - "policy": "add_assumption(sudoku(2,3,4))", + "operation": "add_assumption(sudoku(2,3,4))", } ], "children": [], @@ -13676,7 +13676,7 @@ def post_p_2(cls): { "id": "mi(2,3,2)", "action": "click", - "policy": "add_assumption(sudoku(2,3,2))", + "operation": "add_assumption(sudoku(2,3,2))", } ], "children": [], @@ -13722,7 +13722,7 @@ def post_p_2(cls): { "id": "m(1,3)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(1,3,any))", + "operation": "remove_assumption_signature(sudoku(1,3,any))", } ], "children": [ @@ -13741,7 +13741,7 @@ def post_p_2(cls): { "id": "mi(1,3,8)", "action": "click", - "policy": "add_assumption(sudoku(1,3,8))", + "operation": "add_assumption(sudoku(1,3,8))", } ], "children": [], @@ -13761,7 +13761,7 @@ def post_p_2(cls): { "id": "mi(1,3,2)", "action": "click", - "policy": "add_assumption(sudoku(1,3,2))", + "operation": "add_assumption(sudoku(1,3,2))", } ], "children": [], @@ -13807,7 +13807,7 @@ def post_p_2(cls): { "id": "m(7,2)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(7,2,any))", + "operation": "remove_assumption_signature(sudoku(7,2,any))", } ], "children": [ @@ -13826,7 +13826,7 @@ def post_p_2(cls): { "id": "mi(7,2,8)", "action": "click", - "policy": "add_assumption(sudoku(7,2,8))", + "operation": "add_assumption(sudoku(7,2,8))", } ], "children": [], @@ -13872,7 +13872,7 @@ def post_p_2(cls): { "id": "m(9,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(9,9,any))", + "operation": "remove_assumption_signature(sudoku(9,9,any))", } ], "children": [ @@ -13891,7 +13891,7 @@ def post_p_2(cls): { "id": "mi(9,9,7)", "action": "click", - "policy": "add_assumption(sudoku(9,9,7))", + "operation": "add_assumption(sudoku(9,9,7))", } ], "children": [], @@ -13911,7 +13911,7 @@ def post_p_2(cls): { "id": "mi(9,9,4)", "action": "click", - "policy": "add_assumption(sudoku(9,9,4))", + "operation": "add_assumption(sudoku(9,9,4))", } ], "children": [], @@ -13931,7 +13931,7 @@ def post_p_2(cls): { "id": "mi(9,9,2)", "action": "click", - "policy": "add_assumption(sudoku(9,9,2))", + "operation": "add_assumption(sudoku(9,9,2))", } ], "children": [], @@ -13977,7 +13977,7 @@ def post_p_2(cls): { "id": "m(3,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(3,9,any))", + "operation": "remove_assumption_signature(sudoku(3,9,any))", } ], "children": [ @@ -13996,7 +13996,7 @@ def post_p_2(cls): { "id": "mi(3,9,7)", "action": "click", - "policy": "add_assumption(sudoku(3,9,7))", + "operation": "add_assumption(sudoku(3,9,7))", } ], "children": [], @@ -14016,7 +14016,7 @@ def post_p_2(cls): { "id": "mi(3,9,4)", "action": "click", - "policy": "add_assumption(sudoku(3,9,4))", + "operation": "add_assumption(sudoku(3,9,4))", } ], "children": [], @@ -14036,7 +14036,7 @@ def post_p_2(cls): { "id": "mi(3,9,3)", "action": "click", - "policy": "add_assumption(sudoku(3,9,3))", + "operation": "add_assumption(sudoku(3,9,3))", } ], "children": [], @@ -14056,7 +14056,7 @@ def post_p_2(cls): { "id": "mi(3,9,1)", "action": "click", - "policy": "add_assumption(sudoku(3,9,1))", + "operation": "add_assumption(sudoku(3,9,1))", } ], "children": [], @@ -14102,7 +14102,7 @@ def post_p_2(cls): { "id": "m(9,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(9,8,any))", + "operation": "remove_assumption_signature(sudoku(9,8,any))", } ], "children": [ @@ -14121,7 +14121,7 @@ def post_p_2(cls): { "id": "mi(9,8,7)", "action": "click", - "policy": "add_assumption(sudoku(9,8,7))", + "operation": "add_assumption(sudoku(9,8,7))", } ], "children": [], @@ -14141,7 +14141,7 @@ def post_p_2(cls): { "id": "mi(9,8,4)", "action": "click", - "policy": "add_assumption(sudoku(9,8,4))", + "operation": "add_assumption(sudoku(9,8,4))", } ], "children": [], @@ -14161,7 +14161,7 @@ def post_p_2(cls): { "id": "mi(9,8,2)", "action": "click", - "policy": "add_assumption(sudoku(9,8,2))", + "operation": "add_assumption(sudoku(9,8,2))", } ], "children": [], @@ -14207,7 +14207,7 @@ def post_p_2(cls): { "id": "m(3,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(3,8,any))", + "operation": "remove_assumption_signature(sudoku(3,8,any))", } ], "children": [ @@ -14226,7 +14226,7 @@ def post_p_2(cls): { "id": "mi(3,8,7)", "action": "click", - "policy": "add_assumption(sudoku(3,8,7))", + "operation": "add_assumption(sudoku(3,8,7))", } ], "children": [], @@ -14246,7 +14246,7 @@ def post_p_2(cls): { "id": "mi(3,8,4)", "action": "click", - "policy": "add_assumption(sudoku(3,8,4))", + "operation": "add_assumption(sudoku(3,8,4))", } ], "children": [], @@ -14266,7 +14266,7 @@ def post_p_2(cls): { "id": "mi(3,8,3)", "action": "click", - "policy": "add_assumption(sudoku(3,8,3))", + "operation": "add_assumption(sudoku(3,8,3))", } ], "children": [], @@ -14286,7 +14286,7 @@ def post_p_2(cls): { "id": "mi(3,8,1)", "action": "click", - "policy": "add_assumption(sudoku(3,8,1))", + "operation": "add_assumption(sudoku(3,8,1))", } ], "children": [], @@ -14332,7 +14332,7 @@ def post_p_2(cls): { "id": "m(4,6)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(4,6,any))", + "operation": "remove_assumption_signature(sudoku(4,6,any))", } ], "children": [ @@ -14351,7 +14351,7 @@ def post_p_2(cls): { "id": "mi(4,6,7)", "action": "click", - "policy": "add_assumption(sudoku(4,6,7))", + "operation": "add_assumption(sudoku(4,6,7))", } ], "children": [], @@ -14397,7 +14397,7 @@ def post_p_2(cls): { "id": "m(3,1)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(3,1,any))", + "operation": "remove_assumption_signature(sudoku(3,1,any))", } ], "children": [ @@ -14416,7 +14416,7 @@ def post_p_2(cls): { "id": "mi(3,1,7)", "action": "click", - "policy": "add_assumption(sudoku(3,1,7))", + "operation": "add_assumption(sudoku(3,1,7))", } ], "children": [], @@ -14436,7 +14436,7 @@ def post_p_2(cls): { "id": "mi(3,1,1)", "action": "click", - "policy": "add_assumption(sudoku(3,1,1))", + "operation": "add_assumption(sudoku(3,1,1))", } ], "children": [], @@ -14482,7 +14482,7 @@ def post_p_2(cls): { "id": "m(2,1)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(2,1,any))", + "operation": "remove_assumption_signature(sudoku(2,1,any))", } ], "children": [ @@ -14501,7 +14501,7 @@ def post_p_2(cls): { "id": "mi(2,1,7)", "action": "click", - "policy": "add_assumption(sudoku(2,1,7))", + "operation": "add_assumption(sudoku(2,1,7))", } ], "children": [], @@ -14521,7 +14521,7 @@ def post_p_2(cls): { "id": "mi(2,1,5)", "action": "click", - "policy": "add_assumption(sudoku(2,1,5))", + "operation": "add_assumption(sudoku(2,1,5))", } ], "children": [], @@ -14541,7 +14541,7 @@ def post_p_2(cls): { "id": "mi(2,1,2)", "action": "click", - "policy": "add_assumption(sudoku(2,1,2))", + "operation": "add_assumption(sudoku(2,1,2))", } ], "children": [], @@ -14587,7 +14587,7 @@ def post_p_2(cls): { "id": "m(7,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(7,9,any))", + "operation": "remove_assumption_signature(sudoku(7,9,any))", } ], "children": [ @@ -14606,7 +14606,7 @@ def post_p_2(cls): { "id": "mi(7,9,6)", "action": "click", - "policy": "add_assumption(sudoku(7,9,6))", + "operation": "add_assumption(sudoku(7,9,6))", } ], "children": [], @@ -14626,7 +14626,7 @@ def post_p_2(cls): { "id": "mi(7,9,3)", "action": "click", - "policy": "add_assumption(sudoku(7,9,3))", + "operation": "add_assumption(sudoku(7,9,3))", } ], "children": [], @@ -14646,7 +14646,7 @@ def post_p_2(cls): { "id": "mi(7,9,1)", "action": "click", - "policy": "add_assumption(sudoku(7,9,1))", + "operation": "add_assumption(sudoku(7,9,1))", } ], "children": [], @@ -14692,7 +14692,7 @@ def post_p_2(cls): { "id": "m(4,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(4,9,any))", + "operation": "remove_assumption_signature(sudoku(4,9,any))", } ], "children": [ @@ -14711,7 +14711,7 @@ def post_p_2(cls): { "id": "mi(4,9,6)", "action": "click", - "policy": "add_assumption(sudoku(4,9,6))", + "operation": "add_assumption(sudoku(4,9,6))", } ], "children": [], @@ -14731,7 +14731,7 @@ def post_p_2(cls): { "id": "mi(4,9,5)", "action": "click", - "policy": "add_assumption(sudoku(4,9,5))", + "operation": "add_assumption(sudoku(4,9,5))", } ], "children": [], @@ -14751,7 +14751,7 @@ def post_p_2(cls): { "id": "mi(4,9,2)", "action": "click", - "policy": "add_assumption(sudoku(4,9,2))", + "operation": "add_assumption(sudoku(4,9,2))", } ], "children": [], @@ -14771,7 +14771,7 @@ def post_p_2(cls): { "id": "mi(4,9,1)", "action": "click", - "policy": "add_assumption(sudoku(4,9,1))", + "operation": "add_assumption(sudoku(4,9,1))", } ], "children": [], @@ -14817,7 +14817,7 @@ def post_p_2(cls): { "id": "m(7,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(7,8,any))", + "operation": "remove_assumption_signature(sudoku(7,8,any))", } ], "children": [ @@ -14836,7 +14836,7 @@ def post_p_2(cls): { "id": "mi(7,8,6)", "action": "click", - "policy": "add_assumption(sudoku(7,8,6))", + "operation": "add_assumption(sudoku(7,8,6))", } ], "children": [], @@ -14856,7 +14856,7 @@ def post_p_2(cls): { "id": "mi(7,8,3)", "action": "click", - "policy": "add_assumption(sudoku(7,8,3))", + "operation": "add_assumption(sudoku(7,8,3))", } ], "children": [], @@ -14876,7 +14876,7 @@ def post_p_2(cls): { "id": "mi(7,8,1)", "action": "click", - "policy": "add_assumption(sudoku(7,8,1))", + "operation": "add_assumption(sudoku(7,8,1))", } ], "children": [], @@ -14922,7 +14922,7 @@ def post_p_2(cls): { "id": "m(4,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(4,8,any))", + "operation": "remove_assumption_signature(sudoku(4,8,any))", } ], "children": [ @@ -14941,7 +14941,7 @@ def post_p_2(cls): { "id": "mi(4,8,6)", "action": "click", - "policy": "add_assumption(sudoku(4,8,6))", + "operation": "add_assumption(sudoku(4,8,6))", } ], "children": [], @@ -14961,7 +14961,7 @@ def post_p_2(cls): { "id": "mi(4,8,5)", "action": "click", - "policy": "add_assumption(sudoku(4,8,5))", + "operation": "add_assumption(sudoku(4,8,5))", } ], "children": [], @@ -14981,7 +14981,7 @@ def post_p_2(cls): { "id": "mi(4,8,2)", "action": "click", - "policy": "add_assumption(sudoku(4,8,2))", + "operation": "add_assumption(sudoku(4,8,2))", } ], "children": [], @@ -15001,7 +15001,7 @@ def post_p_2(cls): { "id": "mi(4,8,1)", "action": "click", - "policy": "add_assumption(sudoku(4,8,1))", + "operation": "add_assumption(sudoku(4,8,1))", } ], "children": [], @@ -15047,7 +15047,7 @@ def post_p_2(cls): { "id": "m(5,5)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(5,5,any))", + "operation": "remove_assumption_signature(sudoku(5,5,any))", } ], "children": [ @@ -15066,7 +15066,7 @@ def post_p_2(cls): { "id": "mi(5,5,6)", "action": "click", - "policy": "add_assumption(sudoku(5,5,6))", + "operation": "add_assumption(sudoku(5,5,6))", } ], "children": [], @@ -15112,7 +15112,7 @@ def post_p_2(cls): { "id": "m(3,2)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(3,2,any))", + "operation": "remove_assumption_signature(sudoku(3,2,any))", } ], "children": [ @@ -15131,7 +15131,7 @@ def post_p_2(cls): { "id": "mi(3,2,6)", "action": "click", - "policy": "add_assumption(sudoku(3,2,6))", + "operation": "add_assumption(sudoku(3,2,6))", } ], "children": [], @@ -15177,7 +15177,7 @@ def post_p_2(cls): { "id": "m(6,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(6,9,any))", + "operation": "remove_assumption_signature(sudoku(6,9,any))", } ], "children": [ @@ -15196,7 +15196,7 @@ def post_p_2(cls): { "id": "mi(6,9,5)", "action": "click", - "policy": "add_assumption(sudoku(6,9,5))", + "operation": "add_assumption(sudoku(6,9,5))", } ], "children": [], @@ -15216,7 +15216,7 @@ def post_p_2(cls): { "id": "mi(6,9,4)", "action": "click", - "policy": "add_assumption(sudoku(6,9,4))", + "operation": "add_assumption(sudoku(6,9,4))", } ], "children": [], @@ -15236,7 +15236,7 @@ def post_p_2(cls): { "id": "mi(6,9,3)", "action": "click", - "policy": "add_assumption(sudoku(6,9,3))", + "operation": "add_assumption(sudoku(6,9,3))", } ], "children": [], @@ -15256,7 +15256,7 @@ def post_p_2(cls): { "id": "mi(6,9,1)", "action": "click", - "policy": "add_assumption(sudoku(6,9,1))", + "operation": "add_assumption(sudoku(6,9,1))", } ], "children": [], @@ -15302,7 +15302,7 @@ def post_p_2(cls): { "id": "m(6,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(6,8,any))", + "operation": "remove_assumption_signature(sudoku(6,8,any))", } ], "children": [ @@ -15321,7 +15321,7 @@ def post_p_2(cls): { "id": "mi(6,8,5)", "action": "click", - "policy": "add_assumption(sudoku(6,8,5))", + "operation": "add_assumption(sudoku(6,8,5))", } ], "children": [], @@ -15341,7 +15341,7 @@ def post_p_2(cls): { "id": "mi(6,8,4)", "action": "click", - "policy": "add_assumption(sudoku(6,8,4))", + "operation": "add_assumption(sudoku(6,8,4))", } ], "children": [], @@ -15361,7 +15361,7 @@ def post_p_2(cls): { "id": "mi(6,8,3)", "action": "click", - "policy": "add_assumption(sudoku(6,8,3))", + "operation": "add_assumption(sudoku(6,8,3))", } ], "children": [], @@ -15381,7 +15381,7 @@ def post_p_2(cls): { "id": "mi(6,8,1)", "action": "click", - "policy": "add_assumption(sudoku(6,8,1))", + "operation": "add_assumption(sudoku(6,8,1))", } ], "children": [], @@ -15427,7 +15427,7 @@ def post_p_2(cls): { "id": "m(4,7)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(4,7,any))", + "operation": "remove_assumption_signature(sudoku(4,7,any))", } ], "children": [ @@ -15446,7 +15446,7 @@ def post_p_2(cls): { "id": "mi(4,7,5)", "action": "click", - "policy": "add_assumption(sudoku(4,7,5))", + "operation": "add_assumption(sudoku(4,7,5))", } ], "children": [], @@ -15466,7 +15466,7 @@ def post_p_2(cls): { "id": "mi(4,7,2)", "action": "click", - "policy": "add_assumption(sudoku(4,7,2))", + "operation": "add_assumption(sudoku(4,7,2))", } ], "children": [], @@ -15486,7 +15486,7 @@ def post_p_2(cls): { "id": "mi(4,7,1)", "action": "click", - "policy": "add_assumption(sudoku(4,7,1))", + "operation": "add_assumption(sudoku(4,7,1))", } ], "children": [], @@ -15532,7 +15532,7 @@ def post_p_2(cls): { "id": "m(6,6)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(6,6,any))", + "operation": "remove_assumption_signature(sudoku(6,6,any))", } ], "children": [ @@ -15551,7 +15551,7 @@ def post_p_2(cls): { "id": "mi(6,6,5)", "action": "click", - "policy": "add_assumption(sudoku(6,6,5))", + "operation": "add_assumption(sudoku(6,6,5))", } ], "children": [], @@ -15571,7 +15571,7 @@ def post_p_2(cls): { "id": "mi(6,6,3)", "action": "click", - "policy": "add_assumption(sudoku(6,6,3))", + "operation": "add_assumption(sudoku(6,6,3))", } ], "children": [], @@ -15617,7 +15617,7 @@ def post_p_2(cls): { "id": "m(5,6)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(5,6,any))", + "operation": "remove_assumption_signature(sudoku(5,6,any))", } ], "children": [ @@ -15636,7 +15636,7 @@ def post_p_2(cls): { "id": "mi(5,6,5)", "action": "click", - "policy": "add_assumption(sudoku(5,6,5))", + "operation": "add_assumption(sudoku(5,6,5))", } ], "children": [], @@ -15656,7 +15656,7 @@ def post_p_2(cls): { "id": "mi(5,6,3)", "action": "click", - "policy": "add_assumption(sudoku(5,6,3))", + "operation": "add_assumption(sudoku(5,6,3))", } ], "children": [], @@ -15702,7 +15702,7 @@ def post_p_2(cls): { "id": "m(3,4)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(3,4,any))", + "operation": "remove_assumption_signature(sudoku(3,4,any))", } ], "children": [ @@ -15721,7 +15721,7 @@ def post_p_2(cls): { "id": "mi(3,4,5)", "action": "click", - "policy": "add_assumption(sudoku(3,4,5))", + "operation": "add_assumption(sudoku(3,4,5))", } ], "children": [], @@ -15767,7 +15767,7 @@ def post_p_2(cls): { "id": "m(5,2)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(5,2,any))", + "operation": "remove_assumption_signature(sudoku(5,2,any))", } ], "children": [ @@ -15786,7 +15786,7 @@ def post_p_2(cls): { "id": "mi(5,2,5)", "action": "click", - "policy": "add_assumption(sudoku(5,2,5))", + "operation": "add_assumption(sudoku(5,2,5))", } ], "children": [], @@ -15806,7 +15806,7 @@ def post_p_2(cls): { "id": "mi(5,2,4)", "action": "click", - "policy": "add_assumption(sudoku(5,2,4))", + "operation": "add_assumption(sudoku(5,2,4))", } ], "children": [], @@ -15826,7 +15826,7 @@ def post_p_2(cls): { "id": "mi(5,2,1)", "action": "click", - "policy": "add_assumption(sudoku(5,2,1))", + "operation": "add_assumption(sudoku(5,2,1))", } ], "children": [], @@ -15872,7 +15872,7 @@ def post_p_2(cls): { "id": "m(4,2)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(4,2,any))", + "operation": "remove_assumption_signature(sudoku(4,2,any))", } ], "children": [ @@ -15891,7 +15891,7 @@ def post_p_2(cls): { "id": "mi(4,2,5)", "action": "click", - "policy": "add_assumption(sudoku(4,2,5))", + "operation": "add_assumption(sudoku(4,2,5))", } ], "children": [], @@ -15911,7 +15911,7 @@ def post_p_2(cls): { "id": "mi(4,2,1)", "action": "click", - "policy": "add_assumption(sudoku(4,2,1))", + "operation": "add_assumption(sudoku(4,2,1))", } ], "children": [], @@ -15957,7 +15957,7 @@ def post_p_2(cls): { "id": "m(2,2)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(2,2,any))", + "operation": "remove_assumption_signature(sudoku(2,2,any))", } ], "children": [ @@ -15976,7 +15976,7 @@ def post_p_2(cls): { "id": "mi(2,2,5)", "action": "click", - "policy": "add_assumption(sudoku(2,2,5))", + "operation": "add_assumption(sudoku(2,2,5))", } ], "children": [], @@ -15996,7 +15996,7 @@ def post_p_2(cls): { "id": "mi(2,2,4)", "action": "click", - "policy": "add_assumption(sudoku(2,2,4))", + "operation": "add_assumption(sudoku(2,2,4))", } ], "children": [], @@ -16042,7 +16042,7 @@ def post_p_2(cls): { "id": "m(6,1)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(6,1,any))", + "operation": "remove_assumption_signature(sudoku(6,1,any))", } ], "children": [ @@ -16061,7 +16061,7 @@ def post_p_2(cls): { "id": "mi(6,1,5)", "action": "click", - "policy": "add_assumption(sudoku(6,1,5))", + "operation": "add_assumption(sudoku(6,1,5))", } ], "children": [], @@ -16081,7 +16081,7 @@ def post_p_2(cls): { "id": "mi(6,1,2)", "action": "click", - "policy": "add_assumption(sudoku(6,1,2))", + "operation": "add_assumption(sudoku(6,1,2))", } ], "children": [], @@ -16127,7 +16127,7 @@ def post_p_2(cls): { "id": "m(1,1)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(1,1,any))", + "operation": "remove_assumption_signature(sudoku(1,1,any))", } ], "children": [ @@ -16146,7 +16146,7 @@ def post_p_2(cls): { "id": "mi(1,1,5)", "action": "click", - "policy": "add_assumption(sudoku(1,1,5))", + "operation": "add_assumption(sudoku(1,1,5))", } ], "children": [], @@ -16166,7 +16166,7 @@ def post_p_2(cls): { "id": "mi(1,1,2)", "action": "click", - "policy": "add_assumption(sudoku(1,1,2))", + "operation": "add_assumption(sudoku(1,1,2))", } ], "children": [], @@ -16186,7 +16186,7 @@ def post_p_2(cls): { "id": "mi(1,1,1)", "action": "click", - "policy": "add_assumption(sudoku(1,1,1))", + "operation": "add_assumption(sudoku(1,1,1))", } ], "children": [], @@ -16232,7 +16232,7 @@ def post_p_2(cls): { "id": "m(9,7)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(9,7,any))", + "operation": "remove_assumption_signature(sudoku(9,7,any))", } ], "children": [ @@ -16251,7 +16251,7 @@ def post_p_2(cls): { "id": "mi(9,7,4)", "action": "click", - "policy": "add_assumption(sudoku(9,7,4))", + "operation": "add_assumption(sudoku(9,7,4))", } ], "children": [], @@ -16271,7 +16271,7 @@ def post_p_2(cls): { "id": "mi(9,7,2)", "action": "click", - "policy": "add_assumption(sudoku(9,7,2))", + "operation": "add_assumption(sudoku(9,7,2))", } ], "children": [], @@ -16317,7 +16317,7 @@ def post_p_2(cls): { "id": "m(3,7)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(3,7,any))", + "operation": "remove_assumption_signature(sudoku(3,7,any))", } ], "children": [ @@ -16336,7 +16336,7 @@ def post_p_2(cls): { "id": "mi(3,7,4)", "action": "click", - "policy": "add_assumption(sudoku(3,7,4))", + "operation": "add_assumption(sudoku(3,7,4))", } ], "children": [], @@ -16356,7 +16356,7 @@ def post_p_2(cls): { "id": "mi(3,7,3)", "action": "click", - "policy": "add_assumption(sudoku(3,7,3))", + "operation": "add_assumption(sudoku(3,7,3))", } ], "children": [], @@ -16376,7 +16376,7 @@ def post_p_2(cls): { "id": "mi(3,7,1)", "action": "click", - "policy": "add_assumption(sudoku(3,7,1))", + "operation": "add_assumption(sudoku(3,7,1))", } ], "children": [], @@ -16422,7 +16422,7 @@ def post_p_2(cls): { "id": "m(1,5)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(1,5,any))", + "operation": "remove_assumption_signature(sudoku(1,5,any))", } ], "children": [ @@ -16441,7 +16441,7 @@ def post_p_2(cls): { "id": "mi(1,5,4)", "action": "click", - "policy": "add_assumption(sudoku(1,5,4))", + "operation": "add_assumption(sudoku(1,5,4))", } ], "children": [], @@ -16487,7 +16487,7 @@ def post_p_2(cls): { "id": "m(5,3)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(5,3,any))", + "operation": "remove_assumption_signature(sudoku(5,3,any))", } ], "children": [ @@ -16506,7 +16506,7 @@ def post_p_2(cls): { "id": "mi(5,3,4)", "action": "click", - "policy": "add_assumption(sudoku(5,3,4))", + "operation": "add_assumption(sudoku(5,3,4))", } ], "children": [], @@ -16526,7 +16526,7 @@ def post_p_2(cls): { "id": "mi(5,3,2)", "action": "click", - "policy": "add_assumption(sudoku(5,3,2))", + "operation": "add_assumption(sudoku(5,3,2))", } ], "children": [], @@ -16572,7 +16572,7 @@ def post_p_2(cls): { "id": "m(7,7)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(7,7,any))", + "operation": "remove_assumption_signature(sudoku(7,7,any))", } ], "children": [ @@ -16591,7 +16591,7 @@ def post_p_2(cls): { "id": "mi(7,7,3)", "action": "click", - "policy": "add_assumption(sudoku(7,7,3))", + "operation": "add_assumption(sudoku(7,7,3))", } ], "children": [], @@ -16611,7 +16611,7 @@ def post_p_2(cls): { "id": "mi(7,7,1)", "action": "click", - "policy": "add_assumption(sudoku(7,7,1))", + "operation": "add_assumption(sudoku(7,7,1))", } ], "children": [], @@ -16657,7 +16657,7 @@ def post_p_2(cls): { "id": "m(1,2)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(1,2,any))", + "operation": "remove_assumption_signature(sudoku(1,2,any))", } ], "children": [ @@ -16676,7 +16676,7 @@ def post_p_2(cls): { "id": "mi(1,2,3)", "action": "click", - "policy": "add_assumption(sudoku(1,2,3))", + "operation": "add_assumption(sudoku(1,2,3))", } ], "children": [], @@ -16722,7 +16722,7 @@ def post_p_2(cls): { "id": "m(9,1)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(9,1,any))", + "operation": "remove_assumption_signature(sudoku(9,1,any))", } ], "children": [ @@ -16741,7 +16741,7 @@ def post_p_2(cls): { "id": "mi(9,1,3)", "action": "click", - "policy": "add_assumption(sudoku(9,1,3))", + "operation": "add_assumption(sudoku(9,1,3))", } ], "children": [], @@ -16787,7 +16787,7 @@ def post_p_2(cls): { "id": "m(7,6)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(7,6,any))", + "operation": "remove_assumption_signature(sudoku(7,6,any))", } ], "children": [ @@ -16806,7 +16806,7 @@ def post_p_2(cls): { "id": "mi(7,6,2)", "action": "click", - "policy": "add_assumption(sudoku(7,6,2))", + "operation": "add_assumption(sudoku(7,6,2))", } ], "children": [], @@ -16852,7 +16852,7 @@ def post_p_2(cls): { "id": "m(6,4)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(6,4,any))", + "operation": "remove_assumption_signature(sudoku(6,4,any))", } ], "children": [ @@ -16871,7 +16871,7 @@ def post_p_2(cls): { "id": "mi(6,4,2)", "action": "click", - "policy": "add_assumption(sudoku(6,4,2))", + "operation": "add_assumption(sudoku(6,4,2))", } ], "children": [], @@ -16891,7 +16891,7 @@ def post_p_2(cls): { "id": "mi(6,4,1)", "action": "click", - "policy": "add_assumption(sudoku(6,4,1))", + "operation": "add_assumption(sudoku(6,4,1))", } ], "children": [], @@ -16937,7 +16937,7 @@ def post_p_2(cls): { "id": "m(5,4)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(5,4,any))", + "operation": "remove_assumption_signature(sudoku(5,4,any))", } ], "children": [ @@ -16956,7 +16956,7 @@ def post_p_2(cls): { "id": "mi(5,4,2)", "action": "click", - "policy": "add_assumption(sudoku(5,4,2))", + "operation": "add_assumption(sudoku(5,4,2))", } ], "children": [], @@ -16976,7 +16976,7 @@ def post_p_2(cls): { "id": "mi(5,4,1)", "action": "click", - "policy": "add_assumption(sudoku(5,4,1))", + "operation": "add_assumption(sudoku(5,4,1))", } ], "children": [], @@ -17022,7 +17022,7 @@ def post_p_2(cls): { "id": "m(8,5)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(8,5,any))", + "operation": "remove_assumption_signature(sudoku(8,5,any))", } ], "children": [ @@ -17041,7 +17041,7 @@ def post_p_2(cls): { "id": "mi(8,5,1)", "action": "click", - "policy": "add_assumption(sudoku(8,5,1))", + "operation": "add_assumption(sudoku(8,5,1))", } ], "children": [], @@ -17087,7 +17087,7 @@ def post_p_2(cls): { "id": "m(9,3)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(9,3,any))", + "operation": "remove_assumption_signature(sudoku(9,3,any))", } ], "children": [ @@ -17106,7 +17106,7 @@ def post_p_2(cls): { "id": "mi(9,3,1)", "action": "click", - "policy": "add_assumption(sudoku(9,3,1))", + "operation": "add_assumption(sudoku(9,3,1))", } ], "children": [], @@ -17155,7 +17155,7 @@ def post_p_2(cls): { "id": "ms_select", "action": "click", - "policy": "select", + "operation": "select", } ], "children": [], @@ -17180,7 +17180,7 @@ def post_p_2(cls): { "id": "ms_next", "action": "click", - "policy": "next_solution", + "operation": "next_solution", } ], "children": [], @@ -17205,7 +17205,7 @@ def post_p_2(cls): { "id": "ms_clear", "action": "click", - "policy": "clear_assumptions", + "operation": "clear_assumptions", } ], "children": [], @@ -18407,7 +18407,7 @@ def post_p_3(cls): { "id": "m(8,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(8,9,any))", + "operation": "remove_assumption_signature(sudoku(8,9,any))", } ], "children": [ @@ -18426,7 +18426,7 @@ def post_p_3(cls): { "id": "mi(8,9,9)", "action": "click", - "policy": "add_assumption(sudoku(8,9,9))", + "operation": "add_assumption(sudoku(8,9,9))", } ], "children": [], @@ -18446,7 +18446,7 @@ def post_p_3(cls): { "id": "mi(8,9,8)", "action": "click", - "policy": "add_assumption(sudoku(8,9,8))", + "operation": "add_assumption(sudoku(8,9,8))", } ], "children": [], @@ -18466,7 +18466,7 @@ def post_p_3(cls): { "id": "mi(8,9,5)", "action": "click", - "policy": "add_assumption(sudoku(8,9,5))", + "operation": "add_assumption(sudoku(8,9,5))", } ], "children": [], @@ -18507,7 +18507,7 @@ def post_p_3(cls): { "id": "m(5,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(5,9,any))", + "operation": "remove_assumption_signature(sudoku(5,9,any))", } ], "children": [ @@ -18526,7 +18526,7 @@ def post_p_3(cls): { "id": "mi(5,9,9)", "action": "click", - "policy": "add_assumption(sudoku(5,9,9))", + "operation": "add_assumption(sudoku(5,9,9))", } ], "children": [], @@ -18546,7 +18546,7 @@ def post_p_3(cls): { "id": "mi(5,9,5)", "action": "click", - "policy": "add_assumption(sudoku(5,9,5))", + "operation": "add_assumption(sudoku(5,9,5))", } ], "children": [], @@ -18566,7 +18566,7 @@ def post_p_3(cls): { "id": "mi(5,9,3)", "action": "click", - "policy": "add_assumption(sudoku(5,9,3))", + "operation": "add_assumption(sudoku(5,9,3))", } ], "children": [], @@ -18586,7 +18586,7 @@ def post_p_3(cls): { "id": "mi(5,9,1)", "action": "click", - "policy": "add_assumption(sudoku(5,9,1))", + "operation": "add_assumption(sudoku(5,9,1))", } ], "children": [], @@ -18627,7 +18627,7 @@ def post_p_3(cls): { "id": "m(2,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(2,9,any))", + "operation": "remove_assumption_signature(sudoku(2,9,any))", } ], "children": [ @@ -18646,7 +18646,7 @@ def post_p_3(cls): { "id": "mi(2,9,9)", "action": "click", - "policy": "add_assumption(sudoku(2,9,9))", + "operation": "add_assumption(sudoku(2,9,9))", } ], "children": [], @@ -18666,7 +18666,7 @@ def post_p_3(cls): { "id": "mi(2,9,8)", "action": "click", - "policy": "add_assumption(sudoku(2,9,8))", + "operation": "add_assumption(sudoku(2,9,8))", } ], "children": [], @@ -18686,7 +18686,7 @@ def post_p_3(cls): { "id": "mi(2,9,7)", "action": "click", - "policy": "add_assumption(sudoku(2,9,7))", + "operation": "add_assumption(sudoku(2,9,7))", } ], "children": [], @@ -18706,7 +18706,7 @@ def post_p_3(cls): { "id": "mi(2,9,5)", "action": "click", - "policy": "add_assumption(sudoku(2,9,5))", + "operation": "add_assumption(sudoku(2,9,5))", } ], "children": [], @@ -18726,7 +18726,7 @@ def post_p_3(cls): { "id": "mi(2,9,2)", "action": "click", - "policy": "add_assumption(sudoku(2,9,2))", + "operation": "add_assumption(sudoku(2,9,2))", } ], "children": [], @@ -18767,7 +18767,7 @@ def post_p_3(cls): { "id": "m(8,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(8,8,any))", + "operation": "remove_assumption_signature(sudoku(8,8,any))", } ], "children": [ @@ -18786,7 +18786,7 @@ def post_p_3(cls): { "id": "mi(8,8,9)", "action": "click", - "policy": "add_assumption(sudoku(8,8,9))", + "operation": "add_assumption(sudoku(8,8,9))", } ], "children": [], @@ -18806,7 +18806,7 @@ def post_p_3(cls): { "id": "mi(8,8,8)", "action": "click", - "policy": "add_assumption(sudoku(8,8,8))", + "operation": "add_assumption(sudoku(8,8,8))", } ], "children": [], @@ -18826,7 +18826,7 @@ def post_p_3(cls): { "id": "mi(8,8,5)", "action": "click", - "policy": "add_assumption(sudoku(8,8,5))", + "operation": "add_assumption(sudoku(8,8,5))", } ], "children": [], @@ -18867,7 +18867,7 @@ def post_p_3(cls): { "id": "m(5,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(5,8,any))", + "operation": "remove_assumption_signature(sudoku(5,8,any))", } ], "children": [ @@ -18886,7 +18886,7 @@ def post_p_3(cls): { "id": "mi(5,8,9)", "action": "click", - "policy": "add_assumption(sudoku(5,8,9))", + "operation": "add_assumption(sudoku(5,8,9))", } ], "children": [], @@ -18906,7 +18906,7 @@ def post_p_3(cls): { "id": "mi(5,8,5)", "action": "click", - "policy": "add_assumption(sudoku(5,8,5))", + "operation": "add_assumption(sudoku(5,8,5))", } ], "children": [], @@ -18926,7 +18926,7 @@ def post_p_3(cls): { "id": "mi(5,8,3)", "action": "click", - "policy": "add_assumption(sudoku(5,8,3))", + "operation": "add_assumption(sudoku(5,8,3))", } ], "children": [], @@ -18946,7 +18946,7 @@ def post_p_3(cls): { "id": "mi(5,8,1)", "action": "click", - "policy": "add_assumption(sudoku(5,8,1))", + "operation": "add_assumption(sudoku(5,8,1))", } ], "children": [], @@ -18987,7 +18987,7 @@ def post_p_3(cls): { "id": "m(2,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(2,8,any))", + "operation": "remove_assumption_signature(sudoku(2,8,any))", } ], "children": [ @@ -19006,7 +19006,7 @@ def post_p_3(cls): { "id": "mi(2,8,9)", "action": "click", - "policy": "add_assumption(sudoku(2,8,9))", + "operation": "add_assumption(sudoku(2,8,9))", } ], "children": [], @@ -19026,7 +19026,7 @@ def post_p_3(cls): { "id": "mi(2,8,8)", "action": "click", - "policy": "add_assumption(sudoku(2,8,8))", + "operation": "add_assumption(sudoku(2,8,8))", } ], "children": [], @@ -19046,7 +19046,7 @@ def post_p_3(cls): { "id": "mi(2,8,7)", "action": "click", - "policy": "add_assumption(sudoku(2,8,7))", + "operation": "add_assumption(sudoku(2,8,7))", } ], "children": [], @@ -19066,7 +19066,7 @@ def post_p_3(cls): { "id": "mi(2,8,5)", "action": "click", - "policy": "add_assumption(sudoku(2,8,5))", + "operation": "add_assumption(sudoku(2,8,5))", } ], "children": [], @@ -19086,7 +19086,7 @@ def post_p_3(cls): { "id": "mi(2,8,2)", "action": "click", - "policy": "add_assumption(sudoku(2,8,2))", + "operation": "add_assumption(sudoku(2,8,2))", } ], "children": [], @@ -19127,7 +19127,7 @@ def post_p_3(cls): { "id": "m(8,7)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(8,7,any))", + "operation": "remove_assumption_signature(sudoku(8,7,any))", } ], "children": [ @@ -19146,7 +19146,7 @@ def post_p_3(cls): { "id": "mi(8,7,9)", "action": "click", - "policy": "add_assumption(sudoku(8,7,9))", + "operation": "add_assumption(sudoku(8,7,9))", } ], "children": [], @@ -19166,7 +19166,7 @@ def post_p_3(cls): { "id": "mi(8,7,5)", "action": "click", - "policy": "add_assumption(sudoku(8,7,5))", + "operation": "add_assumption(sudoku(8,7,5))", } ], "children": [], @@ -19207,7 +19207,7 @@ def post_p_3(cls): { "id": "m(2,7)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(2,7,any))", + "operation": "remove_assumption_signature(sudoku(2,7,any))", } ], "children": [ @@ -19226,7 +19226,7 @@ def post_p_3(cls): { "id": "mi(2,7,9)", "action": "click", - "policy": "add_assumption(sudoku(2,7,9))", + "operation": "add_assumption(sudoku(2,7,9))", } ], "children": [], @@ -19246,7 +19246,7 @@ def post_p_3(cls): { "id": "mi(2,7,5)", "action": "click", - "policy": "add_assumption(sudoku(2,7,5))", + "operation": "add_assumption(sudoku(2,7,5))", } ], "children": [], @@ -19266,7 +19266,7 @@ def post_p_3(cls): { "id": "mi(2,7,2)", "action": "click", - "policy": "add_assumption(sudoku(2,7,2))", + "operation": "add_assumption(sudoku(2,7,2))", } ], "children": [], @@ -19312,7 +19312,7 @@ def post_p_3(cls): { "id": "m(6,5)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(6,5,any))", + "operation": "remove_assumption_signature(sudoku(6,5,any))", } ], "children": [ @@ -19331,7 +19331,7 @@ def post_p_3(cls): { "id": "mi(6,5,9)", "action": "click", - "policy": "add_assumption(sudoku(6,5,9))", + "operation": "add_assumption(sudoku(6,5,9))", } ], "children": [], @@ -19377,7 +19377,7 @@ def post_p_3(cls): { "id": "m(4,1)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(4,1,any))", + "operation": "remove_assumption_signature(sudoku(4,1,any))", } ], "children": [ @@ -19396,7 +19396,7 @@ def post_p_3(cls): { "id": "mi(4,1,9)", "action": "click", - "policy": "add_assumption(sudoku(4,1,9))", + "operation": "add_assumption(sudoku(4,1,9))", } ], "children": [], @@ -19437,7 +19437,7 @@ def post_p_3(cls): { "id": "m(1,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(1,9,any))", + "operation": "remove_assumption_signature(sudoku(1,9,any))", } ], "children": [ @@ -19456,7 +19456,7 @@ def post_p_3(cls): { "id": "mi(1,9,8)", "action": "click", - "policy": "add_assumption(sudoku(1,9,8))", + "operation": "add_assumption(sudoku(1,9,8))", } ], "children": [], @@ -19476,7 +19476,7 @@ def post_p_3(cls): { "id": "mi(1,9,5)", "action": "click", - "policy": "add_assumption(sudoku(1,9,5))", + "operation": "add_assumption(sudoku(1,9,5))", } ], "children": [], @@ -19496,7 +19496,7 @@ def post_p_3(cls): { "id": "mi(1,9,2)", "action": "click", - "policy": "add_assumption(sudoku(1,9,2))", + "operation": "add_assumption(sudoku(1,9,2))", } ], "children": [], @@ -19516,7 +19516,7 @@ def post_p_3(cls): { "id": "mi(1,9,1)", "action": "click", - "policy": "add_assumption(sudoku(1,9,1))", + "operation": "add_assumption(sudoku(1,9,1))", } ], "children": [], @@ -19557,7 +19557,7 @@ def post_p_3(cls): { "id": "m(1,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(1,8,any))", + "operation": "remove_assumption_signature(sudoku(1,8,any))", } ], "children": [ @@ -19576,7 +19576,7 @@ def post_p_3(cls): { "id": "mi(1,8,8)", "action": "click", - "policy": "add_assumption(sudoku(1,8,8))", + "operation": "add_assumption(sudoku(1,8,8))", } ], "children": [], @@ -19596,7 +19596,7 @@ def post_p_3(cls): { "id": "mi(1,8,5)", "action": "click", - "policy": "add_assumption(sudoku(1,8,5))", + "operation": "add_assumption(sudoku(1,8,5))", } ], "children": [], @@ -19616,7 +19616,7 @@ def post_p_3(cls): { "id": "mi(1,8,2)", "action": "click", - "policy": "add_assumption(sudoku(1,8,2))", + "operation": "add_assumption(sudoku(1,8,2))", } ], "children": [], @@ -19636,7 +19636,7 @@ def post_p_3(cls): { "id": "mi(1,8,1)", "action": "click", - "policy": "add_assumption(sudoku(1,8,1))", + "operation": "add_assumption(sudoku(1,8,1))", } ], "children": [], @@ -19682,7 +19682,7 @@ def post_p_3(cls): { "id": "m(9,4)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(9,4,any))", + "operation": "remove_assumption_signature(sudoku(9,4,any))", } ], "children": [ @@ -19701,7 +19701,7 @@ def post_p_3(cls): { "id": "mi(9,4,8)", "action": "click", - "policy": "add_assumption(sudoku(9,4,8))", + "operation": "add_assumption(sudoku(9,4,8))", } ], "children": [], @@ -19742,7 +19742,7 @@ def post_p_3(cls): { "id": "m(2,3)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(2,3,any))", + "operation": "remove_assumption_signature(sudoku(2,3,any))", } ], "children": [ @@ -19761,7 +19761,7 @@ def post_p_3(cls): { "id": "mi(2,3,8)", "action": "click", - "policy": "add_assumption(sudoku(2,3,8))", + "operation": "add_assumption(sudoku(2,3,8))", } ], "children": [], @@ -19781,7 +19781,7 @@ def post_p_3(cls): { "id": "mi(2,3,4)", "action": "click", - "policy": "add_assumption(sudoku(2,3,4))", + "operation": "add_assumption(sudoku(2,3,4))", } ], "children": [], @@ -19801,7 +19801,7 @@ def post_p_3(cls): { "id": "mi(2,3,2)", "action": "click", - "policy": "add_assumption(sudoku(2,3,2))", + "operation": "add_assumption(sudoku(2,3,2))", } ], "children": [], @@ -19842,7 +19842,7 @@ def post_p_3(cls): { "id": "m(1,3)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(1,3,any))", + "operation": "remove_assumption_signature(sudoku(1,3,any))", } ], "children": [ @@ -19861,7 +19861,7 @@ def post_p_3(cls): { "id": "mi(1,3,8)", "action": "click", - "policy": "add_assumption(sudoku(1,3,8))", + "operation": "add_assumption(sudoku(1,3,8))", } ], "children": [], @@ -19881,7 +19881,7 @@ def post_p_3(cls): { "id": "mi(1,3,2)", "action": "click", - "policy": "add_assumption(sudoku(1,3,2))", + "operation": "add_assumption(sudoku(1,3,2))", } ], "children": [], @@ -19927,7 +19927,7 @@ def post_p_3(cls): { "id": "m(7,2)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(7,2,any))", + "operation": "remove_assumption_signature(sudoku(7,2,any))", } ], "children": [ @@ -19946,7 +19946,7 @@ def post_p_3(cls): { "id": "mi(7,2,8)", "action": "click", - "policy": "add_assumption(sudoku(7,2,8))", + "operation": "add_assumption(sudoku(7,2,8))", } ], "children": [], @@ -19987,7 +19987,7 @@ def post_p_3(cls): { "id": "m(9,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(9,9,any))", + "operation": "remove_assumption_signature(sudoku(9,9,any))", } ], "children": [ @@ -20006,7 +20006,7 @@ def post_p_3(cls): { "id": "mi(9,9,7)", "action": "click", - "policy": "add_assumption(sudoku(9,9,7))", + "operation": "add_assumption(sudoku(9,9,7))", } ], "children": [], @@ -20026,7 +20026,7 @@ def post_p_3(cls): { "id": "mi(9,9,4)", "action": "click", - "policy": "add_assumption(sudoku(9,9,4))", + "operation": "add_assumption(sudoku(9,9,4))", } ], "children": [], @@ -20046,7 +20046,7 @@ def post_p_3(cls): { "id": "mi(9,9,2)", "action": "click", - "policy": "add_assumption(sudoku(9,9,2))", + "operation": "add_assumption(sudoku(9,9,2))", } ], "children": [], @@ -20087,7 +20087,7 @@ def post_p_3(cls): { "id": "m(3,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(3,9,any))", + "operation": "remove_assumption_signature(sudoku(3,9,any))", } ], "children": [ @@ -20106,7 +20106,7 @@ def post_p_3(cls): { "id": "mi(3,9,7)", "action": "click", - "policy": "add_assumption(sudoku(3,9,7))", + "operation": "add_assumption(sudoku(3,9,7))", } ], "children": [], @@ -20126,7 +20126,7 @@ def post_p_3(cls): { "id": "mi(3,9,4)", "action": "click", - "policy": "add_assumption(sudoku(3,9,4))", + "operation": "add_assumption(sudoku(3,9,4))", } ], "children": [], @@ -20146,7 +20146,7 @@ def post_p_3(cls): { "id": "mi(3,9,3)", "action": "click", - "policy": "add_assumption(sudoku(3,9,3))", + "operation": "add_assumption(sudoku(3,9,3))", } ], "children": [], @@ -20166,7 +20166,7 @@ def post_p_3(cls): { "id": "mi(3,9,1)", "action": "click", - "policy": "add_assumption(sudoku(3,9,1))", + "operation": "add_assumption(sudoku(3,9,1))", } ], "children": [], @@ -20207,7 +20207,7 @@ def post_p_3(cls): { "id": "m(9,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(9,8,any))", + "operation": "remove_assumption_signature(sudoku(9,8,any))", } ], "children": [ @@ -20226,7 +20226,7 @@ def post_p_3(cls): { "id": "mi(9,8,7)", "action": "click", - "policy": "add_assumption(sudoku(9,8,7))", + "operation": "add_assumption(sudoku(9,8,7))", } ], "children": [], @@ -20246,7 +20246,7 @@ def post_p_3(cls): { "id": "mi(9,8,4)", "action": "click", - "policy": "add_assumption(sudoku(9,8,4))", + "operation": "add_assumption(sudoku(9,8,4))", } ], "children": [], @@ -20266,7 +20266,7 @@ def post_p_3(cls): { "id": "mi(9,8,2)", "action": "click", - "policy": "add_assumption(sudoku(9,8,2))", + "operation": "add_assumption(sudoku(9,8,2))", } ], "children": [], @@ -20307,7 +20307,7 @@ def post_p_3(cls): { "id": "m(3,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(3,8,any))", + "operation": "remove_assumption_signature(sudoku(3,8,any))", } ], "children": [ @@ -20326,7 +20326,7 @@ def post_p_3(cls): { "id": "mi(3,8,7)", "action": "click", - "policy": "add_assumption(sudoku(3,8,7))", + "operation": "add_assumption(sudoku(3,8,7))", } ], "children": [], @@ -20346,7 +20346,7 @@ def post_p_3(cls): { "id": "mi(3,8,4)", "action": "click", - "policy": "add_assumption(sudoku(3,8,4))", + "operation": "add_assumption(sudoku(3,8,4))", } ], "children": [], @@ -20366,7 +20366,7 @@ def post_p_3(cls): { "id": "mi(3,8,3)", "action": "click", - "policy": "add_assumption(sudoku(3,8,3))", + "operation": "add_assumption(sudoku(3,8,3))", } ], "children": [], @@ -20386,7 +20386,7 @@ def post_p_3(cls): { "id": "mi(3,8,1)", "action": "click", - "policy": "add_assumption(sudoku(3,8,1))", + "operation": "add_assumption(sudoku(3,8,1))", } ], "children": [], @@ -20432,7 +20432,7 @@ def post_p_3(cls): { "id": "m(4,6)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(4,6,any))", + "operation": "remove_assumption_signature(sudoku(4,6,any))", } ], "children": [ @@ -20451,7 +20451,7 @@ def post_p_3(cls): { "id": "mi(4,6,7)", "action": "click", - "policy": "add_assumption(sudoku(4,6,7))", + "operation": "add_assumption(sudoku(4,6,7))", } ], "children": [], @@ -20492,7 +20492,7 @@ def post_p_3(cls): { "id": "m(3,1)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(3,1,any))", + "operation": "remove_assumption_signature(sudoku(3,1,any))", } ], "children": [ @@ -20511,7 +20511,7 @@ def post_p_3(cls): { "id": "mi(3,1,7)", "action": "click", - "policy": "add_assumption(sudoku(3,1,7))", + "operation": "add_assumption(sudoku(3,1,7))", } ], "children": [], @@ -20531,7 +20531,7 @@ def post_p_3(cls): { "id": "mi(3,1,1)", "action": "click", - "policy": "add_assumption(sudoku(3,1,1))", + "operation": "add_assumption(sudoku(3,1,1))", } ], "children": [], @@ -20572,7 +20572,7 @@ def post_p_3(cls): { "id": "m(2,1)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(2,1,any))", + "operation": "remove_assumption_signature(sudoku(2,1,any))", } ], "children": [ @@ -20591,7 +20591,7 @@ def post_p_3(cls): { "id": "mi(2,1,7)", "action": "click", - "policy": "add_assumption(sudoku(2,1,7))", + "operation": "add_assumption(sudoku(2,1,7))", } ], "children": [], @@ -20611,7 +20611,7 @@ def post_p_3(cls): { "id": "mi(2,1,5)", "action": "click", - "policy": "add_assumption(sudoku(2,1,5))", + "operation": "add_assumption(sudoku(2,1,5))", } ], "children": [], @@ -20631,7 +20631,7 @@ def post_p_3(cls): { "id": "mi(2,1,2)", "action": "click", - "policy": "add_assumption(sudoku(2,1,2))", + "operation": "add_assumption(sudoku(2,1,2))", } ], "children": [], @@ -20672,7 +20672,7 @@ def post_p_3(cls): { "id": "m(7,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(7,9,any))", + "operation": "remove_assumption_signature(sudoku(7,9,any))", } ], "children": [ @@ -20691,7 +20691,7 @@ def post_p_3(cls): { "id": "mi(7,9,6)", "action": "click", - "policy": "add_assumption(sudoku(7,9,6))", + "operation": "add_assumption(sudoku(7,9,6))", } ], "children": [], @@ -20711,7 +20711,7 @@ def post_p_3(cls): { "id": "mi(7,9,3)", "action": "click", - "policy": "add_assumption(sudoku(7,9,3))", + "operation": "add_assumption(sudoku(7,9,3))", } ], "children": [], @@ -20731,7 +20731,7 @@ def post_p_3(cls): { "id": "mi(7,9,1)", "action": "click", - "policy": "add_assumption(sudoku(7,9,1))", + "operation": "add_assumption(sudoku(7,9,1))", } ], "children": [], @@ -20772,7 +20772,7 @@ def post_p_3(cls): { "id": "m(4,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(4,9,any))", + "operation": "remove_assumption_signature(sudoku(4,9,any))", } ], "children": [ @@ -20791,7 +20791,7 @@ def post_p_3(cls): { "id": "mi(4,9,6)", "action": "click", - "policy": "add_assumption(sudoku(4,9,6))", + "operation": "add_assumption(sudoku(4,9,6))", } ], "children": [], @@ -20811,7 +20811,7 @@ def post_p_3(cls): { "id": "mi(4,9,5)", "action": "click", - "policy": "add_assumption(sudoku(4,9,5))", + "operation": "add_assumption(sudoku(4,9,5))", } ], "children": [], @@ -20831,7 +20831,7 @@ def post_p_3(cls): { "id": "mi(4,9,2)", "action": "click", - "policy": "add_assumption(sudoku(4,9,2))", + "operation": "add_assumption(sudoku(4,9,2))", } ], "children": [], @@ -20851,7 +20851,7 @@ def post_p_3(cls): { "id": "mi(4,9,1)", "action": "click", - "policy": "add_assumption(sudoku(4,9,1))", + "operation": "add_assumption(sudoku(4,9,1))", } ], "children": [], @@ -20892,7 +20892,7 @@ def post_p_3(cls): { "id": "m(7,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(7,8,any))", + "operation": "remove_assumption_signature(sudoku(7,8,any))", } ], "children": [ @@ -20911,7 +20911,7 @@ def post_p_3(cls): { "id": "mi(7,8,6)", "action": "click", - "policy": "add_assumption(sudoku(7,8,6))", + "operation": "add_assumption(sudoku(7,8,6))", } ], "children": [], @@ -20931,7 +20931,7 @@ def post_p_3(cls): { "id": "mi(7,8,3)", "action": "click", - "policy": "add_assumption(sudoku(7,8,3))", + "operation": "add_assumption(sudoku(7,8,3))", } ], "children": [], @@ -20951,7 +20951,7 @@ def post_p_3(cls): { "id": "mi(7,8,1)", "action": "click", - "policy": "add_assumption(sudoku(7,8,1))", + "operation": "add_assumption(sudoku(7,8,1))", } ], "children": [], @@ -20992,7 +20992,7 @@ def post_p_3(cls): { "id": "m(4,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(4,8,any))", + "operation": "remove_assumption_signature(sudoku(4,8,any))", } ], "children": [ @@ -21011,7 +21011,7 @@ def post_p_3(cls): { "id": "mi(4,8,6)", "action": "click", - "policy": "add_assumption(sudoku(4,8,6))", + "operation": "add_assumption(sudoku(4,8,6))", } ], "children": [], @@ -21031,7 +21031,7 @@ def post_p_3(cls): { "id": "mi(4,8,5)", "action": "click", - "policy": "add_assumption(sudoku(4,8,5))", + "operation": "add_assumption(sudoku(4,8,5))", } ], "children": [], @@ -21051,7 +21051,7 @@ def post_p_3(cls): { "id": "mi(4,8,2)", "action": "click", - "policy": "add_assumption(sudoku(4,8,2))", + "operation": "add_assumption(sudoku(4,8,2))", } ], "children": [], @@ -21071,7 +21071,7 @@ def post_p_3(cls): { "id": "mi(4,8,1)", "action": "click", - "policy": "add_assumption(sudoku(4,8,1))", + "operation": "add_assumption(sudoku(4,8,1))", } ], "children": [], @@ -21117,7 +21117,7 @@ def post_p_3(cls): { "id": "m(5,5)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(5,5,any))", + "operation": "remove_assumption_signature(sudoku(5,5,any))", } ], "children": [ @@ -21136,7 +21136,7 @@ def post_p_3(cls): { "id": "mi(5,5,6)", "action": "click", - "policy": "add_assumption(sudoku(5,5,6))", + "operation": "add_assumption(sudoku(5,5,6))", } ], "children": [], @@ -21182,7 +21182,7 @@ def post_p_3(cls): { "id": "m(3,2)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(3,2,any))", + "operation": "remove_assumption_signature(sudoku(3,2,any))", } ], "children": [ @@ -21201,7 +21201,7 @@ def post_p_3(cls): { "id": "mi(3,2,6)", "action": "click", - "policy": "add_assumption(sudoku(3,2,6))", + "operation": "add_assumption(sudoku(3,2,6))", } ], "children": [], @@ -21242,7 +21242,7 @@ def post_p_3(cls): { "id": "m(6,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(6,9,any))", + "operation": "remove_assumption_signature(sudoku(6,9,any))", } ], "children": [ @@ -21261,7 +21261,7 @@ def post_p_3(cls): { "id": "mi(6,9,5)", "action": "click", - "policy": "add_assumption(sudoku(6,9,5))", + "operation": "add_assumption(sudoku(6,9,5))", } ], "children": [], @@ -21281,7 +21281,7 @@ def post_p_3(cls): { "id": "mi(6,9,4)", "action": "click", - "policy": "add_assumption(sudoku(6,9,4))", + "operation": "add_assumption(sudoku(6,9,4))", } ], "children": [], @@ -21301,7 +21301,7 @@ def post_p_3(cls): { "id": "mi(6,9,3)", "action": "click", - "policy": "add_assumption(sudoku(6,9,3))", + "operation": "add_assumption(sudoku(6,9,3))", } ], "children": [], @@ -21321,7 +21321,7 @@ def post_p_3(cls): { "id": "mi(6,9,1)", "action": "click", - "policy": "add_assumption(sudoku(6,9,1))", + "operation": "add_assumption(sudoku(6,9,1))", } ], "children": [], @@ -21362,7 +21362,7 @@ def post_p_3(cls): { "id": "m(6,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(6,8,any))", + "operation": "remove_assumption_signature(sudoku(6,8,any))", } ], "children": [ @@ -21381,7 +21381,7 @@ def post_p_3(cls): { "id": "mi(6,8,5)", "action": "click", - "policy": "add_assumption(sudoku(6,8,5))", + "operation": "add_assumption(sudoku(6,8,5))", } ], "children": [], @@ -21401,7 +21401,7 @@ def post_p_3(cls): { "id": "mi(6,8,4)", "action": "click", - "policy": "add_assumption(sudoku(6,8,4))", + "operation": "add_assumption(sudoku(6,8,4))", } ], "children": [], @@ -21421,7 +21421,7 @@ def post_p_3(cls): { "id": "mi(6,8,3)", "action": "click", - "policy": "add_assumption(sudoku(6,8,3))", + "operation": "add_assumption(sudoku(6,8,3))", } ], "children": [], @@ -21441,7 +21441,7 @@ def post_p_3(cls): { "id": "mi(6,8,1)", "action": "click", - "policy": "add_assumption(sudoku(6,8,1))", + "operation": "add_assumption(sudoku(6,8,1))", } ], "children": [], @@ -21482,7 +21482,7 @@ def post_p_3(cls): { "id": "m(4,7)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(4,7,any))", + "operation": "remove_assumption_signature(sudoku(4,7,any))", } ], "children": [ @@ -21501,7 +21501,7 @@ def post_p_3(cls): { "id": "mi(4,7,5)", "action": "click", - "policy": "add_assumption(sudoku(4,7,5))", + "operation": "add_assumption(sudoku(4,7,5))", } ], "children": [], @@ -21521,7 +21521,7 @@ def post_p_3(cls): { "id": "mi(4,7,2)", "action": "click", - "policy": "add_assumption(sudoku(4,7,2))", + "operation": "add_assumption(sudoku(4,7,2))", } ], "children": [], @@ -21541,7 +21541,7 @@ def post_p_3(cls): { "id": "mi(4,7,1)", "action": "click", - "policy": "add_assumption(sudoku(4,7,1))", + "operation": "add_assumption(sudoku(4,7,1))", } ], "children": [], @@ -21582,7 +21582,7 @@ def post_p_3(cls): { "id": "m(6,6)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(6,6,any))", + "operation": "remove_assumption_signature(sudoku(6,6,any))", } ], "children": [ @@ -21601,7 +21601,7 @@ def post_p_3(cls): { "id": "mi(6,6,5)", "action": "click", - "policy": "add_assumption(sudoku(6,6,5))", + "operation": "add_assumption(sudoku(6,6,5))", } ], "children": [], @@ -21621,7 +21621,7 @@ def post_p_3(cls): { "id": "mi(6,6,3)", "action": "click", - "policy": "add_assumption(sudoku(6,6,3))", + "operation": "add_assumption(sudoku(6,6,3))", } ], "children": [], @@ -21662,7 +21662,7 @@ def post_p_3(cls): { "id": "m(5,6)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(5,6,any))", + "operation": "remove_assumption_signature(sudoku(5,6,any))", } ], "children": [ @@ -21681,7 +21681,7 @@ def post_p_3(cls): { "id": "mi(5,6,5)", "action": "click", - "policy": "add_assumption(sudoku(5,6,5))", + "operation": "add_assumption(sudoku(5,6,5))", } ], "children": [], @@ -21701,7 +21701,7 @@ def post_p_3(cls): { "id": "mi(5,6,3)", "action": "click", - "policy": "add_assumption(sudoku(5,6,3))", + "operation": "add_assumption(sudoku(5,6,3))", } ], "children": [], @@ -21747,7 +21747,7 @@ def post_p_3(cls): { "id": "m(3,4)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(3,4,any))", + "operation": "remove_assumption_signature(sudoku(3,4,any))", } ], "children": [ @@ -21766,7 +21766,7 @@ def post_p_3(cls): { "id": "mi(3,4,5)", "action": "click", - "policy": "add_assumption(sudoku(3,4,5))", + "operation": "add_assumption(sudoku(3,4,5))", } ], "children": [], @@ -21807,7 +21807,7 @@ def post_p_3(cls): { "id": "m(5,2)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(5,2,any))", + "operation": "remove_assumption_signature(sudoku(5,2,any))", } ], "children": [ @@ -21826,7 +21826,7 @@ def post_p_3(cls): { "id": "mi(5,2,5)", "action": "click", - "policy": "add_assumption(sudoku(5,2,5))", + "operation": "add_assumption(sudoku(5,2,5))", } ], "children": [], @@ -21846,7 +21846,7 @@ def post_p_3(cls): { "id": "mi(5,2,4)", "action": "click", - "policy": "add_assumption(sudoku(5,2,4))", + "operation": "add_assumption(sudoku(5,2,4))", } ], "children": [], @@ -21866,7 +21866,7 @@ def post_p_3(cls): { "id": "mi(5,2,1)", "action": "click", - "policy": "add_assumption(sudoku(5,2,1))", + "operation": "add_assumption(sudoku(5,2,1))", } ], "children": [], @@ -21907,7 +21907,7 @@ def post_p_3(cls): { "id": "m(4,2)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(4,2,any))", + "operation": "remove_assumption_signature(sudoku(4,2,any))", } ], "children": [ @@ -21926,7 +21926,7 @@ def post_p_3(cls): { "id": "mi(4,2,5)", "action": "click", - "policy": "add_assumption(sudoku(4,2,5))", + "operation": "add_assumption(sudoku(4,2,5))", } ], "children": [], @@ -21946,7 +21946,7 @@ def post_p_3(cls): { "id": "mi(4,2,1)", "action": "click", - "policy": "add_assumption(sudoku(4,2,1))", + "operation": "add_assumption(sudoku(4,2,1))", } ], "children": [], @@ -21987,7 +21987,7 @@ def post_p_3(cls): { "id": "m(2,2)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(2,2,any))", + "operation": "remove_assumption_signature(sudoku(2,2,any))", } ], "children": [ @@ -22006,7 +22006,7 @@ def post_p_3(cls): { "id": "mi(2,2,5)", "action": "click", - "policy": "add_assumption(sudoku(2,2,5))", + "operation": "add_assumption(sudoku(2,2,5))", } ], "children": [], @@ -22026,7 +22026,7 @@ def post_p_3(cls): { "id": "mi(2,2,4)", "action": "click", - "policy": "add_assumption(sudoku(2,2,4))", + "operation": "add_assumption(sudoku(2,2,4))", } ], "children": [], @@ -22067,7 +22067,7 @@ def post_p_3(cls): { "id": "m(6,1)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(6,1,any))", + "operation": "remove_assumption_signature(sudoku(6,1,any))", } ], "children": [ @@ -22086,7 +22086,7 @@ def post_p_3(cls): { "id": "mi(6,1,5)", "action": "click", - "policy": "add_assumption(sudoku(6,1,5))", + "operation": "add_assumption(sudoku(6,1,5))", } ], "children": [], @@ -22106,7 +22106,7 @@ def post_p_3(cls): { "id": "mi(6,1,2)", "action": "click", - "policy": "add_assumption(sudoku(6,1,2))", + "operation": "add_assumption(sudoku(6,1,2))", } ], "children": [], @@ -22147,7 +22147,7 @@ def post_p_3(cls): { "id": "m(1,1)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(1,1,any))", + "operation": "remove_assumption_signature(sudoku(1,1,any))", } ], "children": [ @@ -22166,7 +22166,7 @@ def post_p_3(cls): { "id": "mi(1,1,5)", "action": "click", - "policy": "add_assumption(sudoku(1,1,5))", + "operation": "add_assumption(sudoku(1,1,5))", } ], "children": [], @@ -22186,7 +22186,7 @@ def post_p_3(cls): { "id": "mi(1,1,2)", "action": "click", - "policy": "add_assumption(sudoku(1,1,2))", + "operation": "add_assumption(sudoku(1,1,2))", } ], "children": [], @@ -22206,7 +22206,7 @@ def post_p_3(cls): { "id": "mi(1,1,1)", "action": "click", - "policy": "add_assumption(sudoku(1,1,1))", + "operation": "add_assumption(sudoku(1,1,1))", } ], "children": [], @@ -22247,7 +22247,7 @@ def post_p_3(cls): { "id": "m(9,7)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(9,7,any))", + "operation": "remove_assumption_signature(sudoku(9,7,any))", } ], "children": [ @@ -22266,7 +22266,7 @@ def post_p_3(cls): { "id": "mi(9,7,4)", "action": "click", - "policy": "add_assumption(sudoku(9,7,4))", + "operation": "add_assumption(sudoku(9,7,4))", } ], "children": [], @@ -22286,7 +22286,7 @@ def post_p_3(cls): { "id": "mi(9,7,2)", "action": "click", - "policy": "add_assumption(sudoku(9,7,2))", + "operation": "add_assumption(sudoku(9,7,2))", } ], "children": [], @@ -22327,7 +22327,7 @@ def post_p_3(cls): { "id": "m(3,7)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(3,7,any))", + "operation": "remove_assumption_signature(sudoku(3,7,any))", } ], "children": [ @@ -22346,7 +22346,7 @@ def post_p_3(cls): { "id": "mi(3,7,4)", "action": "click", - "policy": "add_assumption(sudoku(3,7,4))", + "operation": "add_assumption(sudoku(3,7,4))", } ], "children": [], @@ -22366,7 +22366,7 @@ def post_p_3(cls): { "id": "mi(3,7,3)", "action": "click", - "policy": "add_assumption(sudoku(3,7,3))", + "operation": "add_assumption(sudoku(3,7,3))", } ], "children": [], @@ -22386,7 +22386,7 @@ def post_p_3(cls): { "id": "mi(3,7,1)", "action": "click", - "policy": "add_assumption(sudoku(3,7,1))", + "operation": "add_assumption(sudoku(3,7,1))", } ], "children": [], @@ -22432,7 +22432,7 @@ def post_p_3(cls): { "id": "m(1,5)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(1,5,any))", + "operation": "remove_assumption_signature(sudoku(1,5,any))", } ], "children": [ @@ -22451,7 +22451,7 @@ def post_p_3(cls): { "id": "mi(1,5,4)", "action": "click", - "policy": "add_assumption(sudoku(1,5,4))", + "operation": "add_assumption(sudoku(1,5,4))", } ], "children": [], @@ -22492,7 +22492,7 @@ def post_p_3(cls): { "id": "m(5,3)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(5,3,any))", + "operation": "remove_assumption_signature(sudoku(5,3,any))", } ], "children": [ @@ -22511,7 +22511,7 @@ def post_p_3(cls): { "id": "mi(5,3,4)", "action": "click", - "policy": "add_assumption(sudoku(5,3,4))", + "operation": "add_assumption(sudoku(5,3,4))", } ], "children": [], @@ -22531,7 +22531,7 @@ def post_p_3(cls): { "id": "mi(5,3,2)", "action": "click", - "policy": "add_assumption(sudoku(5,3,2))", + "operation": "add_assumption(sudoku(5,3,2))", } ], "children": [], @@ -22572,7 +22572,7 @@ def post_p_3(cls): { "id": "m(7,7)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(7,7,any))", + "operation": "remove_assumption_signature(sudoku(7,7,any))", } ], "children": [ @@ -22591,7 +22591,7 @@ def post_p_3(cls): { "id": "mi(7,7,3)", "action": "click", - "policy": "add_assumption(sudoku(7,7,3))", + "operation": "add_assumption(sudoku(7,7,3))", } ], "children": [], @@ -22611,7 +22611,7 @@ def post_p_3(cls): { "id": "mi(7,7,1)", "action": "click", - "policy": "add_assumption(sudoku(7,7,1))", + "operation": "add_assumption(sudoku(7,7,1))", } ], "children": [], @@ -22657,7 +22657,7 @@ def post_p_3(cls): { "id": "m(1,2)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(1,2,any))", + "operation": "remove_assumption_signature(sudoku(1,2,any))", } ], "children": [ @@ -22676,7 +22676,7 @@ def post_p_3(cls): { "id": "mi(1,2,3)", "action": "click", - "policy": "add_assumption(sudoku(1,2,3))", + "operation": "add_assumption(sudoku(1,2,3))", } ], "children": [], @@ -22722,7 +22722,7 @@ def post_p_3(cls): { "id": "m(9,1)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(9,1,any))", + "operation": "remove_assumption_signature(sudoku(9,1,any))", } ], "children": [ @@ -22741,7 +22741,7 @@ def post_p_3(cls): { "id": "mi(9,1,3)", "action": "click", - "policy": "add_assumption(sudoku(9,1,3))", + "operation": "add_assumption(sudoku(9,1,3))", } ], "children": [], @@ -22787,7 +22787,7 @@ def post_p_3(cls): { "id": "m(7,6)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(7,6,any))", + "operation": "remove_assumption_signature(sudoku(7,6,any))", } ], "children": [ @@ -22806,7 +22806,7 @@ def post_p_3(cls): { "id": "mi(7,6,2)", "action": "click", - "policy": "add_assumption(sudoku(7,6,2))", + "operation": "add_assumption(sudoku(7,6,2))", } ], "children": [], @@ -22847,7 +22847,7 @@ def post_p_3(cls): { "id": "m(6,4)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(6,4,any))", + "operation": "remove_assumption_signature(sudoku(6,4,any))", } ], "children": [ @@ -22866,7 +22866,7 @@ def post_p_3(cls): { "id": "mi(6,4,2)", "action": "click", - "policy": "add_assumption(sudoku(6,4,2))", + "operation": "add_assumption(sudoku(6,4,2))", } ], "children": [], @@ -22886,7 +22886,7 @@ def post_p_3(cls): { "id": "mi(6,4,1)", "action": "click", - "policy": "add_assumption(sudoku(6,4,1))", + "operation": "add_assumption(sudoku(6,4,1))", } ], "children": [], @@ -22927,7 +22927,7 @@ def post_p_3(cls): { "id": "m(5,4)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(5,4,any))", + "operation": "remove_assumption_signature(sudoku(5,4,any))", } ], "children": [ @@ -22946,7 +22946,7 @@ def post_p_3(cls): { "id": "mi(5,4,2)", "action": "click", - "policy": "add_assumption(sudoku(5,4,2))", + "operation": "add_assumption(sudoku(5,4,2))", } ], "children": [], @@ -22966,7 +22966,7 @@ def post_p_3(cls): { "id": "mi(5,4,1)", "action": "click", - "policy": "add_assumption(sudoku(5,4,1))", + "operation": "add_assumption(sudoku(5,4,1))", } ], "children": [], @@ -23012,7 +23012,7 @@ def post_p_3(cls): { "id": "m(8,5)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(8,5,any))", + "operation": "remove_assumption_signature(sudoku(8,5,any))", } ], "children": [ @@ -23031,7 +23031,7 @@ def post_p_3(cls): { "id": "mi(8,5,1)", "action": "click", - "policy": "add_assumption(sudoku(8,5,1))", + "operation": "add_assumption(sudoku(8,5,1))", } ], "children": [], @@ -23077,7 +23077,7 @@ def post_p_3(cls): { "id": "m(9,3)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(9,3,any))", + "operation": "remove_assumption_signature(sudoku(9,3,any))", } ], "children": [ @@ -23096,7 +23096,7 @@ def post_p_3(cls): { "id": "mi(9,3,1)", "action": "click", - "policy": "add_assumption(sudoku(9,3,1))", + "operation": "add_assumption(sudoku(9,3,1))", } ], "children": [], @@ -23145,7 +23145,7 @@ def post_p_3(cls): { "id": "ms_select", "action": "click", - "policy": "select", + "operation": "select", } ], "children": [], @@ -23170,7 +23170,7 @@ def post_p_3(cls): { "id": "ms_next", "action": "click", - "policy": "next_solution", + "operation": "next_solution", } ], "children": [], @@ -23195,7 +23195,7 @@ def post_p_3(cls): { "id": "ms_clear", "action": "click", - "policy": "clear_assumptions", + "operation": "clear_assumptions", } ], "children": [], @@ -24397,7 +24397,7 @@ def post_assumption_1(cls): { "id": "m(8,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(8,9,any))", + "operation": "remove_assumption_signature(sudoku(8,9,any))", } ], "children": [ @@ -24416,7 +24416,7 @@ def post_assumption_1(cls): { "id": "mi(8,9,9)", "action": "click", - "policy": "add_assumption(sudoku(8,9,9))", + "operation": "add_assumption(sudoku(8,9,9))", } ], "children": [], @@ -24436,7 +24436,7 @@ def post_assumption_1(cls): { "id": "mi(8,9,8)", "action": "click", - "policy": "add_assumption(sudoku(8,9,8))", + "operation": "add_assumption(sudoku(8,9,8))", } ], "children": [], @@ -24456,7 +24456,7 @@ def post_assumption_1(cls): { "id": "mi(8,9,5)", "action": "click", - "policy": "add_assumption(sudoku(8,9,5))", + "operation": "add_assumption(sudoku(8,9,5))", } ], "children": [], @@ -24497,7 +24497,7 @@ def post_assumption_1(cls): { "id": "m(5,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(5,9,any))", + "operation": "remove_assumption_signature(sudoku(5,9,any))", } ], "children": [ @@ -24516,7 +24516,7 @@ def post_assumption_1(cls): { "id": "mi(5,9,9)", "action": "click", - "policy": "add_assumption(sudoku(5,9,9))", + "operation": "add_assumption(sudoku(5,9,9))", } ], "children": [], @@ -24536,7 +24536,7 @@ def post_assumption_1(cls): { "id": "mi(5,9,3)", "action": "click", - "policy": "add_assumption(sudoku(5,9,3))", + "operation": "add_assumption(sudoku(5,9,3))", } ], "children": [], @@ -24577,7 +24577,7 @@ def post_assumption_1(cls): { "id": "m(2,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(2,9,any))", + "operation": "remove_assumption_signature(sudoku(2,9,any))", } ], "children": [ @@ -24596,7 +24596,7 @@ def post_assumption_1(cls): { "id": "mi(2,9,9)", "action": "click", - "policy": "add_assumption(sudoku(2,9,9))", + "operation": "add_assumption(sudoku(2,9,9))", } ], "children": [], @@ -24616,7 +24616,7 @@ def post_assumption_1(cls): { "id": "mi(2,9,8)", "action": "click", - "policy": "add_assumption(sudoku(2,9,8))", + "operation": "add_assumption(sudoku(2,9,8))", } ], "children": [], @@ -24636,7 +24636,7 @@ def post_assumption_1(cls): { "id": "mi(2,9,7)", "action": "click", - "policy": "add_assumption(sudoku(2,9,7))", + "operation": "add_assumption(sudoku(2,9,7))", } ], "children": [], @@ -24656,7 +24656,7 @@ def post_assumption_1(cls): { "id": "mi(2,9,2)", "action": "click", - "policy": "add_assumption(sudoku(2,9,2))", + "operation": "add_assumption(sudoku(2,9,2))", } ], "children": [], @@ -24697,7 +24697,7 @@ def post_assumption_1(cls): { "id": "m(8,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(8,8,any))", + "operation": "remove_assumption_signature(sudoku(8,8,any))", } ], "children": [ @@ -24716,7 +24716,7 @@ def post_assumption_1(cls): { "id": "mi(8,8,9)", "action": "click", - "policy": "add_assumption(sudoku(8,8,9))", + "operation": "add_assumption(sudoku(8,8,9))", } ], "children": [], @@ -24736,7 +24736,7 @@ def post_assumption_1(cls): { "id": "mi(8,8,8)", "action": "click", - "policy": "add_assumption(sudoku(8,8,8))", + "operation": "add_assumption(sudoku(8,8,8))", } ], "children": [], @@ -24756,7 +24756,7 @@ def post_assumption_1(cls): { "id": "mi(8,8,5)", "action": "click", - "policy": "add_assumption(sudoku(8,8,5))", + "operation": "add_assumption(sudoku(8,8,5))", } ], "children": [], @@ -24797,7 +24797,7 @@ def post_assumption_1(cls): { "id": "m(5,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(5,8,any))", + "operation": "remove_assumption_signature(sudoku(5,8,any))", } ], "children": [ @@ -24816,7 +24816,7 @@ def post_assumption_1(cls): { "id": "mi(5,8,9)", "action": "click", - "policy": "add_assumption(sudoku(5,8,9))", + "operation": "add_assumption(sudoku(5,8,9))", } ], "children": [], @@ -24836,7 +24836,7 @@ def post_assumption_1(cls): { "id": "mi(5,8,3)", "action": "click", - "policy": "add_assumption(sudoku(5,8,3))", + "operation": "add_assumption(sudoku(5,8,3))", } ], "children": [], @@ -24877,7 +24877,7 @@ def post_assumption_1(cls): { "id": "m(2,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(2,8,any))", + "operation": "remove_assumption_signature(sudoku(2,8,any))", } ], "children": [ @@ -24896,7 +24896,7 @@ def post_assumption_1(cls): { "id": "mi(2,8,9)", "action": "click", - "policy": "add_assumption(sudoku(2,8,9))", + "operation": "add_assumption(sudoku(2,8,9))", } ], "children": [], @@ -24916,7 +24916,7 @@ def post_assumption_1(cls): { "id": "mi(2,8,8)", "action": "click", - "policy": "add_assumption(sudoku(2,8,8))", + "operation": "add_assumption(sudoku(2,8,8))", } ], "children": [], @@ -24936,7 +24936,7 @@ def post_assumption_1(cls): { "id": "mi(2,8,7)", "action": "click", - "policy": "add_assumption(sudoku(2,8,7))", + "operation": "add_assumption(sudoku(2,8,7))", } ], "children": [], @@ -24956,7 +24956,7 @@ def post_assumption_1(cls): { "id": "mi(2,8,2)", "action": "click", - "policy": "add_assumption(sudoku(2,8,2))", + "operation": "add_assumption(sudoku(2,8,2))", } ], "children": [], @@ -24997,7 +24997,7 @@ def post_assumption_1(cls): { "id": "m(8,7)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(8,7,any))", + "operation": "remove_assumption_signature(sudoku(8,7,any))", } ], "children": [ @@ -25016,7 +25016,7 @@ def post_assumption_1(cls): { "id": "mi(8,7,9)", "action": "click", - "policy": "add_assumption(sudoku(8,7,9))", + "operation": "add_assumption(sudoku(8,7,9))", } ], "children": [], @@ -25036,7 +25036,7 @@ def post_assumption_1(cls): { "id": "mi(8,7,5)", "action": "click", - "policy": "add_assumption(sudoku(8,7,5))", + "operation": "add_assumption(sudoku(8,7,5))", } ], "children": [], @@ -25077,7 +25077,7 @@ def post_assumption_1(cls): { "id": "m(2,7)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(2,7,any))", + "operation": "remove_assumption_signature(sudoku(2,7,any))", } ], "children": [ @@ -25096,7 +25096,7 @@ def post_assumption_1(cls): { "id": "mi(2,7,9)", "action": "click", - "policy": "add_assumption(sudoku(2,7,9))", + "operation": "add_assumption(sudoku(2,7,9))", } ], "children": [], @@ -25116,7 +25116,7 @@ def post_assumption_1(cls): { "id": "mi(2,7,2)", "action": "click", - "policy": "add_assumption(sudoku(2,7,2))", + "operation": "add_assumption(sudoku(2,7,2))", } ], "children": [], @@ -25162,7 +25162,7 @@ def post_assumption_1(cls): { "id": "m(6,5)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(6,5,any))", + "operation": "remove_assumption_signature(sudoku(6,5,any))", } ], "children": [ @@ -25181,7 +25181,7 @@ def post_assumption_1(cls): { "id": "mi(6,5,9)", "action": "click", - "policy": "add_assumption(sudoku(6,5,9))", + "operation": "add_assumption(sudoku(6,5,9))", } ], "children": [], @@ -25227,7 +25227,7 @@ def post_assumption_1(cls): { "id": "m(4,1)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(4,1,any))", + "operation": "remove_assumption_signature(sudoku(4,1,any))", } ], "children": [ @@ -25246,7 +25246,7 @@ def post_assumption_1(cls): { "id": "mi(4,1,9)", "action": "click", - "policy": "add_assumption(sudoku(4,1,9))", + "operation": "add_assumption(sudoku(4,1,9))", } ], "children": [], @@ -25292,7 +25292,7 @@ def post_assumption_1(cls): { "id": "m(9,4)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(9,4,any))", + "operation": "remove_assumption_signature(sudoku(9,4,any))", } ], "children": [ @@ -25311,7 +25311,7 @@ def post_assumption_1(cls): { "id": "mi(9,4,8)", "action": "click", - "policy": "add_assumption(sudoku(9,4,8))", + "operation": "add_assumption(sudoku(9,4,8))", } ], "children": [], @@ -25357,7 +25357,7 @@ def post_assumption_1(cls): { "id": "m(1,3)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(1,3,any))", + "operation": "remove_assumption_signature(sudoku(1,3,any))", } ], "children": [ @@ -25376,7 +25376,7 @@ def post_assumption_1(cls): { "id": "mi(1,3,8)", "action": "click", - "policy": "add_assumption(sudoku(1,3,8))", + "operation": "add_assumption(sudoku(1,3,8))", } ], "children": [], @@ -25422,7 +25422,7 @@ def post_assumption_1(cls): { "id": "m(7,2)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(7,2,any))", + "operation": "remove_assumption_signature(sudoku(7,2,any))", } ], "children": [ @@ -25441,7 +25441,7 @@ def post_assumption_1(cls): { "id": "mi(7,2,8)", "action": "click", - "policy": "add_assumption(sudoku(7,2,8))", + "operation": "add_assumption(sudoku(7,2,8))", } ], "children": [], @@ -25482,7 +25482,7 @@ def post_assumption_1(cls): { "id": "m(9,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(9,9,any))", + "operation": "remove_assumption_signature(sudoku(9,9,any))", } ], "children": [ @@ -25501,7 +25501,7 @@ def post_assumption_1(cls): { "id": "mi(9,9,7)", "action": "click", - "policy": "add_assumption(sudoku(9,9,7))", + "operation": "add_assumption(sudoku(9,9,7))", } ], "children": [], @@ -25521,7 +25521,7 @@ def post_assumption_1(cls): { "id": "mi(9,9,2)", "action": "click", - "policy": "add_assumption(sudoku(9,9,2))", + "operation": "add_assumption(sudoku(9,9,2))", } ], "children": [], @@ -25562,7 +25562,7 @@ def post_assumption_1(cls): { "id": "m(3,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(3,9,any))", + "operation": "remove_assumption_signature(sudoku(3,9,any))", } ], "children": [ @@ -25581,7 +25581,7 @@ def post_assumption_1(cls): { "id": "mi(3,9,7)", "action": "click", - "policy": "add_assumption(sudoku(3,9,7))", + "operation": "add_assumption(sudoku(3,9,7))", } ], "children": [], @@ -25601,7 +25601,7 @@ def post_assumption_1(cls): { "id": "mi(3,9,4)", "action": "click", - "policy": "add_assumption(sudoku(3,9,4))", + "operation": "add_assumption(sudoku(3,9,4))", } ], "children": [], @@ -25621,7 +25621,7 @@ def post_assumption_1(cls): { "id": "mi(3,9,3)", "action": "click", - "policy": "add_assumption(sudoku(3,9,3))", + "operation": "add_assumption(sudoku(3,9,3))", } ], "children": [], @@ -25641,7 +25641,7 @@ def post_assumption_1(cls): { "id": "mi(3,9,1)", "action": "click", - "policy": "add_assumption(sudoku(3,9,1))", + "operation": "add_assumption(sudoku(3,9,1))", } ], "children": [], @@ -25682,7 +25682,7 @@ def post_assumption_1(cls): { "id": "m(9,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(9,8,any))", + "operation": "remove_assumption_signature(sudoku(9,8,any))", } ], "children": [ @@ -25701,7 +25701,7 @@ def post_assumption_1(cls): { "id": "mi(9,8,7)", "action": "click", - "policy": "add_assumption(sudoku(9,8,7))", + "operation": "add_assumption(sudoku(9,8,7))", } ], "children": [], @@ -25721,7 +25721,7 @@ def post_assumption_1(cls): { "id": "mi(9,8,2)", "action": "click", - "policy": "add_assumption(sudoku(9,8,2))", + "operation": "add_assumption(sudoku(9,8,2))", } ], "children": [], @@ -25762,7 +25762,7 @@ def post_assumption_1(cls): { "id": "m(3,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(3,8,any))", + "operation": "remove_assumption_signature(sudoku(3,8,any))", } ], "children": [ @@ -25781,7 +25781,7 @@ def post_assumption_1(cls): { "id": "mi(3,8,7)", "action": "click", - "policy": "add_assumption(sudoku(3,8,7))", + "operation": "add_assumption(sudoku(3,8,7))", } ], "children": [], @@ -25801,7 +25801,7 @@ def post_assumption_1(cls): { "id": "mi(3,8,4)", "action": "click", - "policy": "add_assumption(sudoku(3,8,4))", + "operation": "add_assumption(sudoku(3,8,4))", } ], "children": [], @@ -25821,7 +25821,7 @@ def post_assumption_1(cls): { "id": "mi(3,8,3)", "action": "click", - "policy": "add_assumption(sudoku(3,8,3))", + "operation": "add_assumption(sudoku(3,8,3))", } ], "children": [], @@ -25841,7 +25841,7 @@ def post_assumption_1(cls): { "id": "mi(3,8,1)", "action": "click", - "policy": "add_assumption(sudoku(3,8,1))", + "operation": "add_assumption(sudoku(3,8,1))", } ], "children": [], @@ -25887,7 +25887,7 @@ def post_assumption_1(cls): { "id": "m(4,6)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(4,6,any))", + "operation": "remove_assumption_signature(sudoku(4,6,any))", } ], "children": [ @@ -25906,7 +25906,7 @@ def post_assumption_1(cls): { "id": "mi(4,6,7)", "action": "click", - "policy": "add_assumption(sudoku(4,6,7))", + "operation": "add_assumption(sudoku(4,6,7))", } ], "children": [], @@ -25947,7 +25947,7 @@ def post_assumption_1(cls): { "id": "m(3,1)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(3,1,any))", + "operation": "remove_assumption_signature(sudoku(3,1,any))", } ], "children": [ @@ -25966,7 +25966,7 @@ def post_assumption_1(cls): { "id": "mi(3,1,7)", "action": "click", - "policy": "add_assumption(sudoku(3,1,7))", + "operation": "add_assumption(sudoku(3,1,7))", } ], "children": [], @@ -25986,7 +25986,7 @@ def post_assumption_1(cls): { "id": "mi(3,1,1)", "action": "click", - "policy": "add_assumption(sudoku(3,1,1))", + "operation": "add_assumption(sudoku(3,1,1))", } ], "children": [], @@ -26027,7 +26027,7 @@ def post_assumption_1(cls): { "id": "m(2,1)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(2,1,any))", + "operation": "remove_assumption_signature(sudoku(2,1,any))", } ], "children": [ @@ -26046,7 +26046,7 @@ def post_assumption_1(cls): { "id": "mi(2,1,7)", "action": "click", - "policy": "add_assumption(sudoku(2,1,7))", + "operation": "add_assumption(sudoku(2,1,7))", } ], "children": [], @@ -26066,7 +26066,7 @@ def post_assumption_1(cls): { "id": "mi(2,1,2)", "action": "click", - "policy": "add_assumption(sudoku(2,1,2))", + "operation": "add_assumption(sudoku(2,1,2))", } ], "children": [], @@ -26107,7 +26107,7 @@ def post_assumption_1(cls): { "id": "m(7,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(7,9,any))", + "operation": "remove_assumption_signature(sudoku(7,9,any))", } ], "children": [ @@ -26126,7 +26126,7 @@ def post_assumption_1(cls): { "id": "mi(7,9,6)", "action": "click", - "policy": "add_assumption(sudoku(7,9,6))", + "operation": "add_assumption(sudoku(7,9,6))", } ], "children": [], @@ -26146,7 +26146,7 @@ def post_assumption_1(cls): { "id": "mi(7,9,3)", "action": "click", - "policy": "add_assumption(sudoku(7,9,3))", + "operation": "add_assumption(sudoku(7,9,3))", } ], "children": [], @@ -26166,7 +26166,7 @@ def post_assumption_1(cls): { "id": "mi(7,9,1)", "action": "click", - "policy": "add_assumption(sudoku(7,9,1))", + "operation": "add_assumption(sudoku(7,9,1))", } ], "children": [], @@ -26207,7 +26207,7 @@ def post_assumption_1(cls): { "id": "m(4,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(4,9,any))", + "operation": "remove_assumption_signature(sudoku(4,9,any))", } ], "children": [ @@ -26226,7 +26226,7 @@ def post_assumption_1(cls): { "id": "mi(4,9,6)", "action": "click", - "policy": "add_assumption(sudoku(4,9,6))", + "operation": "add_assumption(sudoku(4,9,6))", } ], "children": [], @@ -26246,7 +26246,7 @@ def post_assumption_1(cls): { "id": "mi(4,9,5)", "action": "click", - "policy": "add_assumption(sudoku(4,9,5))", + "operation": "add_assumption(sudoku(4,9,5))", } ], "children": [], @@ -26266,7 +26266,7 @@ def post_assumption_1(cls): { "id": "mi(4,9,2)", "action": "click", - "policy": "add_assumption(sudoku(4,9,2))", + "operation": "add_assumption(sudoku(4,9,2))", } ], "children": [], @@ -26307,7 +26307,7 @@ def post_assumption_1(cls): { "id": "m(7,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(7,8,any))", + "operation": "remove_assumption_signature(sudoku(7,8,any))", } ], "children": [ @@ -26326,7 +26326,7 @@ def post_assumption_1(cls): { "id": "mi(7,8,6)", "action": "click", - "policy": "add_assumption(sudoku(7,8,6))", + "operation": "add_assumption(sudoku(7,8,6))", } ], "children": [], @@ -26346,7 +26346,7 @@ def post_assumption_1(cls): { "id": "mi(7,8,3)", "action": "click", - "policy": "add_assumption(sudoku(7,8,3))", + "operation": "add_assumption(sudoku(7,8,3))", } ], "children": [], @@ -26366,7 +26366,7 @@ def post_assumption_1(cls): { "id": "mi(7,8,1)", "action": "click", - "policy": "add_assumption(sudoku(7,8,1))", + "operation": "add_assumption(sudoku(7,8,1))", } ], "children": [], @@ -26407,7 +26407,7 @@ def post_assumption_1(cls): { "id": "m(4,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(4,8,any))", + "operation": "remove_assumption_signature(sudoku(4,8,any))", } ], "children": [ @@ -26426,7 +26426,7 @@ def post_assumption_1(cls): { "id": "mi(4,8,6)", "action": "click", - "policy": "add_assumption(sudoku(4,8,6))", + "operation": "add_assumption(sudoku(4,8,6))", } ], "children": [], @@ -26446,7 +26446,7 @@ def post_assumption_1(cls): { "id": "mi(4,8,5)", "action": "click", - "policy": "add_assumption(sudoku(4,8,5))", + "operation": "add_assumption(sudoku(4,8,5))", } ], "children": [], @@ -26466,7 +26466,7 @@ def post_assumption_1(cls): { "id": "mi(4,8,2)", "action": "click", - "policy": "add_assumption(sudoku(4,8,2))", + "operation": "add_assumption(sudoku(4,8,2))", } ], "children": [], @@ -26512,7 +26512,7 @@ def post_assumption_1(cls): { "id": "m(5,5)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(5,5,any))", + "operation": "remove_assumption_signature(sudoku(5,5,any))", } ], "children": [ @@ -26531,7 +26531,7 @@ def post_assumption_1(cls): { "id": "mi(5,5,6)", "action": "click", - "policy": "add_assumption(sudoku(5,5,6))", + "operation": "add_assumption(sudoku(5,5,6))", } ], "children": [], @@ -26577,7 +26577,7 @@ def post_assumption_1(cls): { "id": "m(3,2)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(3,2,any))", + "operation": "remove_assumption_signature(sudoku(3,2,any))", } ], "children": [ @@ -26596,7 +26596,7 @@ def post_assumption_1(cls): { "id": "mi(3,2,6)", "action": "click", - "policy": "add_assumption(sudoku(3,2,6))", + "operation": "add_assumption(sudoku(3,2,6))", } ], "children": [], @@ -26637,7 +26637,7 @@ def post_assumption_1(cls): { "id": "m(1,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(1,9,any))", + "operation": "remove_assumption_signature(sudoku(1,9,any))", } ], "children": [ @@ -26656,7 +26656,7 @@ def post_assumption_1(cls): { "id": "mi(1,9,5)", "action": "click", - "policy": "add_assumption(sudoku(1,9,5))", + "operation": "add_assumption(sudoku(1,9,5))", } ], "children": [], @@ -26676,7 +26676,7 @@ def post_assumption_1(cls): { "id": "mi(1,9,2)", "action": "click", - "policy": "add_assumption(sudoku(1,9,2))", + "operation": "add_assumption(sudoku(1,9,2))", } ], "children": [], @@ -26696,7 +26696,7 @@ def post_assumption_1(cls): { "id": "mi(1,9,1)", "action": "click", - "policy": "add_assumption(sudoku(1,9,1))", + "operation": "add_assumption(sudoku(1,9,1))", } ], "children": [], @@ -26737,7 +26737,7 @@ def post_assumption_1(cls): { "id": "m(1,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(1,8,any))", + "operation": "remove_assumption_signature(sudoku(1,8,any))", } ], "children": [ @@ -26756,7 +26756,7 @@ def post_assumption_1(cls): { "id": "mi(1,8,5)", "action": "click", - "policy": "add_assumption(sudoku(1,8,5))", + "operation": "add_assumption(sudoku(1,8,5))", } ], "children": [], @@ -26776,7 +26776,7 @@ def post_assumption_1(cls): { "id": "mi(1,8,2)", "action": "click", - "policy": "add_assumption(sudoku(1,8,2))", + "operation": "add_assumption(sudoku(1,8,2))", } ], "children": [], @@ -26796,7 +26796,7 @@ def post_assumption_1(cls): { "id": "mi(1,8,1)", "action": "click", - "policy": "add_assumption(sudoku(1,8,1))", + "operation": "add_assumption(sudoku(1,8,1))", } ], "children": [], @@ -26837,7 +26837,7 @@ def post_assumption_1(cls): { "id": "m(4,7)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(4,7,any))", + "operation": "remove_assumption_signature(sudoku(4,7,any))", } ], "children": [ @@ -26856,7 +26856,7 @@ def post_assumption_1(cls): { "id": "mi(4,7,5)", "action": "click", - "policy": "add_assumption(sudoku(4,7,5))", + "operation": "add_assumption(sudoku(4,7,5))", } ], "children": [], @@ -26876,7 +26876,7 @@ def post_assumption_1(cls): { "id": "mi(4,7,2)", "action": "click", - "policy": "add_assumption(sudoku(4,7,2))", + "operation": "add_assumption(sudoku(4,7,2))", } ], "children": [], @@ -26922,7 +26922,7 @@ def post_assumption_1(cls): { "id": "m(5,6)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(5,6,any))", + "operation": "remove_assumption_signature(sudoku(5,6,any))", } ], "children": [ @@ -26941,7 +26941,7 @@ def post_assumption_1(cls): { "id": "mi(5,6,5)", "action": "click", - "policy": "add_assumption(sudoku(5,6,5))", + "operation": "add_assumption(sudoku(5,6,5))", } ], "children": [], @@ -26987,7 +26987,7 @@ def post_assumption_1(cls): { "id": "m(3,4)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(3,4,any))", + "operation": "remove_assumption_signature(sudoku(3,4,any))", } ], "children": [ @@ -27006,7 +27006,7 @@ def post_assumption_1(cls): { "id": "mi(3,4,5)", "action": "click", - "policy": "add_assumption(sudoku(3,4,5))", + "operation": "add_assumption(sudoku(3,4,5))", } ], "children": [], @@ -27052,7 +27052,7 @@ def post_assumption_1(cls): { "id": "m(2,2)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(2,2,any))", + "operation": "remove_assumption_signature(sudoku(2,2,any))", } ], "children": [ @@ -27071,7 +27071,7 @@ def post_assumption_1(cls): { "id": "mi(2,2,5)", "action": "click", - "policy": "add_assumption(sudoku(2,2,5))", + "operation": "add_assumption(sudoku(2,2,5))", } ], "children": [], @@ -27117,7 +27117,7 @@ def post_assumption_1(cls): { "id": "m(6,1)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(6,1,any))", + "operation": "remove_assumption_signature(sudoku(6,1,any))", } ], "children": [ @@ -27136,7 +27136,7 @@ def post_assumption_1(cls): { "id": "mi(6,1,5)", "action": "click", - "policy": "add_assumption(sudoku(6,1,5))", + "operation": "add_assumption(sudoku(6,1,5))", } ], "children": [], @@ -27177,7 +27177,7 @@ def post_assumption_1(cls): { "id": "m(6,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(6,9,any))", + "operation": "remove_assumption_signature(sudoku(6,9,any))", } ], "children": [ @@ -27196,7 +27196,7 @@ def post_assumption_1(cls): { "id": "mi(6,9,4)", "action": "click", - "policy": "add_assumption(sudoku(6,9,4))", + "operation": "add_assumption(sudoku(6,9,4))", } ], "children": [], @@ -27216,7 +27216,7 @@ def post_assumption_1(cls): { "id": "mi(6,9,1)", "action": "click", - "policy": "add_assumption(sudoku(6,9,1))", + "operation": "add_assumption(sudoku(6,9,1))", } ], "children": [], @@ -27257,7 +27257,7 @@ def post_assumption_1(cls): { "id": "m(6,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(6,8,any))", + "operation": "remove_assumption_signature(sudoku(6,8,any))", } ], "children": [ @@ -27276,7 +27276,7 @@ def post_assumption_1(cls): { "id": "mi(6,8,4)", "action": "click", - "policy": "add_assumption(sudoku(6,8,4))", + "operation": "add_assumption(sudoku(6,8,4))", } ], "children": [], @@ -27296,7 +27296,7 @@ def post_assumption_1(cls): { "id": "mi(6,8,1)", "action": "click", - "policy": "add_assumption(sudoku(6,8,1))", + "operation": "add_assumption(sudoku(6,8,1))", } ], "children": [], @@ -27342,7 +27342,7 @@ def post_assumption_1(cls): { "id": "m(9,7)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(9,7,any))", + "operation": "remove_assumption_signature(sudoku(9,7,any))", } ], "children": [ @@ -27361,7 +27361,7 @@ def post_assumption_1(cls): { "id": "mi(9,7,4)", "action": "click", - "policy": "add_assumption(sudoku(9,7,4))", + "operation": "add_assumption(sudoku(9,7,4))", } ], "children": [], @@ -27407,7 +27407,7 @@ def post_assumption_1(cls): { "id": "m(1,5)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(1,5,any))", + "operation": "remove_assumption_signature(sudoku(1,5,any))", } ], "children": [ @@ -27426,7 +27426,7 @@ def post_assumption_1(cls): { "id": "mi(1,5,4)", "action": "click", - "policy": "add_assumption(sudoku(1,5,4))", + "operation": "add_assumption(sudoku(1,5,4))", } ], "children": [], @@ -27472,7 +27472,7 @@ def post_assumption_1(cls): { "id": "m(2,3)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(2,3,any))", + "operation": "remove_assumption_signature(sudoku(2,3,any))", } ], "children": [ @@ -27491,7 +27491,7 @@ def post_assumption_1(cls): { "id": "mi(2,3,4)", "action": "click", - "policy": "add_assumption(sudoku(2,3,4))", + "operation": "add_assumption(sudoku(2,3,4))", } ], "children": [], @@ -27537,7 +27537,7 @@ def post_assumption_1(cls): { "id": "m(5,2)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(5,2,any))", + "operation": "remove_assumption_signature(sudoku(5,2,any))", } ], "children": [ @@ -27556,7 +27556,7 @@ def post_assumption_1(cls): { "id": "mi(5,2,4)", "action": "click", - "policy": "add_assumption(sudoku(5,2,4))", + "operation": "add_assumption(sudoku(5,2,4))", } ], "children": [], @@ -27597,7 +27597,7 @@ def post_assumption_1(cls): { "id": "m(7,7)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(7,7,any))", + "operation": "remove_assumption_signature(sudoku(7,7,any))", } ], "children": [ @@ -27616,7 +27616,7 @@ def post_assumption_1(cls): { "id": "mi(7,7,3)", "action": "click", - "policy": "add_assumption(sudoku(7,7,3))", + "operation": "add_assumption(sudoku(7,7,3))", } ], "children": [], @@ -27636,7 +27636,7 @@ def post_assumption_1(cls): { "id": "mi(7,7,1)", "action": "click", - "policy": "add_assumption(sudoku(7,7,1))", + "operation": "add_assumption(sudoku(7,7,1))", } ], "children": [], @@ -27677,7 +27677,7 @@ def post_assumption_1(cls): { "id": "m(3,7)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(3,7,any))", + "operation": "remove_assumption_signature(sudoku(3,7,any))", } ], "children": [ @@ -27696,7 +27696,7 @@ def post_assumption_1(cls): { "id": "mi(3,7,3)", "action": "click", - "policy": "add_assumption(sudoku(3,7,3))", + "operation": "add_assumption(sudoku(3,7,3))", } ], "children": [], @@ -27716,7 +27716,7 @@ def post_assumption_1(cls): { "id": "mi(3,7,1)", "action": "click", - "policy": "add_assumption(sudoku(3,7,1))", + "operation": "add_assumption(sudoku(3,7,1))", } ], "children": [], @@ -27762,7 +27762,7 @@ def post_assumption_1(cls): { "id": "m(6,6)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(6,6,any))", + "operation": "remove_assumption_signature(sudoku(6,6,any))", } ], "children": [ @@ -27781,7 +27781,7 @@ def post_assumption_1(cls): { "id": "mi(6,6,3)", "action": "click", - "policy": "add_assumption(sudoku(6,6,3))", + "operation": "add_assumption(sudoku(6,6,3))", } ], "children": [], @@ -27827,7 +27827,7 @@ def post_assumption_1(cls): { "id": "m(1,2)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(1,2,any))", + "operation": "remove_assumption_signature(sudoku(1,2,any))", } ], "children": [ @@ -27846,7 +27846,7 @@ def post_assumption_1(cls): { "id": "mi(1,2,3)", "action": "click", - "policy": "add_assumption(sudoku(1,2,3))", + "operation": "add_assumption(sudoku(1,2,3))", } ], "children": [], @@ -27892,7 +27892,7 @@ def post_assumption_1(cls): { "id": "m(9,1)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(9,1,any))", + "operation": "remove_assumption_signature(sudoku(9,1,any))", } ], "children": [ @@ -27911,7 +27911,7 @@ def post_assumption_1(cls): { "id": "mi(9,1,3)", "action": "click", - "policy": "add_assumption(sudoku(9,1,3))", + "operation": "add_assumption(sudoku(9,1,3))", } ], "children": [], @@ -27957,7 +27957,7 @@ def post_assumption_1(cls): { "id": "m(7,6)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(7,6,any))", + "operation": "remove_assumption_signature(sudoku(7,6,any))", } ], "children": [ @@ -27976,7 +27976,7 @@ def post_assumption_1(cls): { "id": "mi(7,6,2)", "action": "click", - "policy": "add_assumption(sudoku(7,6,2))", + "operation": "add_assumption(sudoku(7,6,2))", } ], "children": [], @@ -28022,7 +28022,7 @@ def post_assumption_1(cls): { "id": "m(6,4)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(6,4,any))", + "operation": "remove_assumption_signature(sudoku(6,4,any))", } ], "children": [ @@ -28041,7 +28041,7 @@ def post_assumption_1(cls): { "id": "mi(6,4,2)", "action": "click", - "policy": "add_assumption(sudoku(6,4,2))", + "operation": "add_assumption(sudoku(6,4,2))", } ], "children": [], @@ -28087,7 +28087,7 @@ def post_assumption_1(cls): { "id": "m(5,3)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(5,3,any))", + "operation": "remove_assumption_signature(sudoku(5,3,any))", } ], "children": [ @@ -28106,7 +28106,7 @@ def post_assumption_1(cls): { "id": "mi(5,3,2)", "action": "click", - "policy": "add_assumption(sudoku(5,3,2))", + "operation": "add_assumption(sudoku(5,3,2))", } ], "children": [], @@ -28147,7 +28147,7 @@ def post_assumption_1(cls): { "id": "m(1,1)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(1,1,any))", + "operation": "remove_assumption_signature(sudoku(1,1,any))", } ], "children": [ @@ -28166,7 +28166,7 @@ def post_assumption_1(cls): { "id": "mi(1,1,2)", "action": "click", - "policy": "add_assumption(sudoku(1,1,2))", + "operation": "add_assumption(sudoku(1,1,2))", } ], "children": [], @@ -28186,7 +28186,7 @@ def post_assumption_1(cls): { "id": "mi(1,1,1)", "action": "click", - "policy": "add_assumption(sudoku(1,1,1))", + "operation": "add_assumption(sudoku(1,1,1))", } ], "children": [], @@ -28232,7 +28232,7 @@ def post_assumption_1(cls): { "id": "m(8,5)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(8,5,any))", + "operation": "remove_assumption_signature(sudoku(8,5,any))", } ], "children": [ @@ -28251,7 +28251,7 @@ def post_assumption_1(cls): { "id": "mi(8,5,1)", "action": "click", - "policy": "add_assumption(sudoku(8,5,1))", + "operation": "add_assumption(sudoku(8,5,1))", } ], "children": [], @@ -28297,7 +28297,7 @@ def post_assumption_1(cls): { "id": "m(5,4)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(5,4,any))", + "operation": "remove_assumption_signature(sudoku(5,4,any))", } ], "children": [ @@ -28316,7 +28316,7 @@ def post_assumption_1(cls): { "id": "mi(5,4,1)", "action": "click", - "policy": "add_assumption(sudoku(5,4,1))", + "operation": "add_assumption(sudoku(5,4,1))", } ], "children": [], @@ -28362,7 +28362,7 @@ def post_assumption_1(cls): { "id": "m(9,3)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(9,3,any))", + "operation": "remove_assumption_signature(sudoku(9,3,any))", } ], "children": [ @@ -28381,7 +28381,7 @@ def post_assumption_1(cls): { "id": "mi(9,3,1)", "action": "click", - "policy": "add_assumption(sudoku(9,3,1))", + "operation": "add_assumption(sudoku(9,3,1))", } ], "children": [], @@ -28427,7 +28427,7 @@ def post_assumption_1(cls): { "id": "m(4,2)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(4,2,any))", + "operation": "remove_assumption_signature(sudoku(4,2,any))", } ], "children": [ @@ -28446,7 +28446,7 @@ def post_assumption_1(cls): { "id": "mi(4,2,1)", "action": "click", - "policy": "add_assumption(sudoku(4,2,1))", + "operation": "add_assumption(sudoku(4,2,1))", } ], "children": [], @@ -28495,7 +28495,7 @@ def post_assumption_1(cls): { "id": "ms_select", "action": "click", - "policy": "select", + "operation": "select", } ], "children": [], @@ -28520,7 +28520,7 @@ def post_assumption_1(cls): { "id": "ms_next", "action": "click", - "policy": "next_solution", + "operation": "next_solution", } ], "children": [], @@ -28545,7 +28545,7 @@ def post_assumption_1(cls): { "id": "ms_clear", "action": "click", - "policy": "clear_assumptions", + "operation": "clear_assumptions", } ], "children": [], @@ -29747,7 +29747,7 @@ def post_assumption_2(cls): { "id": "m(8,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(8,9,any))", + "operation": "remove_assumption_signature(sudoku(8,9,any))", } ], "children": [ @@ -29766,7 +29766,7 @@ def post_assumption_2(cls): { "id": "mi(8,9,9)", "action": "click", - "policy": "add_assumption(sudoku(8,9,9))", + "operation": "add_assumption(sudoku(8,9,9))", } ], "children": [], @@ -29786,7 +29786,7 @@ def post_assumption_2(cls): { "id": "mi(8,9,8)", "action": "click", - "policy": "add_assumption(sudoku(8,9,8))", + "operation": "add_assumption(sudoku(8,9,8))", } ], "children": [], @@ -29827,7 +29827,7 @@ def post_assumption_2(cls): { "id": "m(2,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(2,9,any))", + "operation": "remove_assumption_signature(sudoku(2,9,any))", } ], "children": [ @@ -29846,7 +29846,7 @@ def post_assumption_2(cls): { "id": "mi(2,9,9)", "action": "click", - "policy": "add_assumption(sudoku(2,9,9))", + "operation": "add_assumption(sudoku(2,9,9))", } ], "children": [], @@ -29866,7 +29866,7 @@ def post_assumption_2(cls): { "id": "mi(2,9,8)", "action": "click", - "policy": "add_assumption(sudoku(2,9,8))", + "operation": "add_assumption(sudoku(2,9,8))", } ], "children": [], @@ -29912,7 +29912,7 @@ def post_assumption_2(cls): { "id": "m(5,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(5,8,any))", + "operation": "remove_assumption_signature(sudoku(5,8,any))", } ], "children": [ @@ -29931,7 +29931,7 @@ def post_assumption_2(cls): { "id": "mi(5,8,9)", "action": "click", - "policy": "add_assumption(sudoku(5,8,9))", + "operation": "add_assumption(sudoku(5,8,9))", } ], "children": [], @@ -29972,7 +29972,7 @@ def post_assumption_2(cls): { "id": "m(8,7)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(8,7,any))", + "operation": "remove_assumption_signature(sudoku(8,7,any))", } ], "children": [ @@ -29991,7 +29991,7 @@ def post_assumption_2(cls): { "id": "mi(8,7,9)", "action": "click", - "policy": "add_assumption(sudoku(8,7,9))", + "operation": "add_assumption(sudoku(8,7,9))", } ], "children": [], @@ -30011,7 +30011,7 @@ def post_assumption_2(cls): { "id": "mi(8,7,5)", "action": "click", - "policy": "add_assumption(sudoku(8,7,5))", + "operation": "add_assumption(sudoku(8,7,5))", } ], "children": [], @@ -30052,7 +30052,7 @@ def post_assumption_2(cls): { "id": "m(2,7)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(2,7,any))", + "operation": "remove_assumption_signature(sudoku(2,7,any))", } ], "children": [ @@ -30071,7 +30071,7 @@ def post_assumption_2(cls): { "id": "mi(2,7,9)", "action": "click", - "policy": "add_assumption(sudoku(2,7,9))", + "operation": "add_assumption(sudoku(2,7,9))", } ], "children": [], @@ -30091,7 +30091,7 @@ def post_assumption_2(cls): { "id": "mi(2,7,2)", "action": "click", - "policy": "add_assumption(sudoku(2,7,2))", + "operation": "add_assumption(sudoku(2,7,2))", } ], "children": [], @@ -30137,7 +30137,7 @@ def post_assumption_2(cls): { "id": "m(6,5)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(6,5,any))", + "operation": "remove_assumption_signature(sudoku(6,5,any))", } ], "children": [ @@ -30156,7 +30156,7 @@ def post_assumption_2(cls): { "id": "mi(6,5,9)", "action": "click", - "policy": "add_assumption(sudoku(6,5,9))", + "operation": "add_assumption(sudoku(6,5,9))", } ], "children": [], @@ -30202,7 +30202,7 @@ def post_assumption_2(cls): { "id": "m(4,1)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(4,1,any))", + "operation": "remove_assumption_signature(sudoku(4,1,any))", } ], "children": [ @@ -30221,7 +30221,7 @@ def post_assumption_2(cls): { "id": "mi(4,1,9)", "action": "click", - "policy": "add_assumption(sudoku(4,1,9))", + "operation": "add_assumption(sudoku(4,1,9))", } ], "children": [], @@ -30262,7 +30262,7 @@ def post_assumption_2(cls): { "id": "m(8,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(8,8,any))", + "operation": "remove_assumption_signature(sudoku(8,8,any))", } ], "children": [ @@ -30281,7 +30281,7 @@ def post_assumption_2(cls): { "id": "mi(8,8,8)", "action": "click", - "policy": "add_assumption(sudoku(8,8,8))", + "operation": "add_assumption(sudoku(8,8,8))", } ], "children": [], @@ -30301,7 +30301,7 @@ def post_assumption_2(cls): { "id": "mi(8,8,5)", "action": "click", - "policy": "add_assumption(sudoku(8,8,5))", + "operation": "add_assumption(sudoku(8,8,5))", } ], "children": [], @@ -30342,7 +30342,7 @@ def post_assumption_2(cls): { "id": "m(2,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(2,8,any))", + "operation": "remove_assumption_signature(sudoku(2,8,any))", } ], "children": [ @@ -30361,7 +30361,7 @@ def post_assumption_2(cls): { "id": "mi(2,8,8)", "action": "click", - "policy": "add_assumption(sudoku(2,8,8))", + "operation": "add_assumption(sudoku(2,8,8))", } ], "children": [], @@ -30381,7 +30381,7 @@ def post_assumption_2(cls): { "id": "mi(2,8,7)", "action": "click", - "policy": "add_assumption(sudoku(2,8,7))", + "operation": "add_assumption(sudoku(2,8,7))", } ], "children": [], @@ -30401,7 +30401,7 @@ def post_assumption_2(cls): { "id": "mi(2,8,2)", "action": "click", - "policy": "add_assumption(sudoku(2,8,2))", + "operation": "add_assumption(sudoku(2,8,2))", } ], "children": [], @@ -30447,7 +30447,7 @@ def post_assumption_2(cls): { "id": "m(9,4)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(9,4,any))", + "operation": "remove_assumption_signature(sudoku(9,4,any))", } ], "children": [ @@ -30466,7 +30466,7 @@ def post_assumption_2(cls): { "id": "mi(9,4,8)", "action": "click", - "policy": "add_assumption(sudoku(9,4,8))", + "operation": "add_assumption(sudoku(9,4,8))", } ], "children": [], @@ -30512,7 +30512,7 @@ def post_assumption_2(cls): { "id": "m(1,3)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(1,3,any))", + "operation": "remove_assumption_signature(sudoku(1,3,any))", } ], "children": [ @@ -30531,7 +30531,7 @@ def post_assumption_2(cls): { "id": "mi(1,3,8)", "action": "click", - "policy": "add_assumption(sudoku(1,3,8))", + "operation": "add_assumption(sudoku(1,3,8))", } ], "children": [], @@ -30577,7 +30577,7 @@ def post_assumption_2(cls): { "id": "m(7,2)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(7,2,any))", + "operation": "remove_assumption_signature(sudoku(7,2,any))", } ], "children": [ @@ -30596,7 +30596,7 @@ def post_assumption_2(cls): { "id": "mi(7,2,8)", "action": "click", - "policy": "add_assumption(sudoku(7,2,8))", + "operation": "add_assumption(sudoku(7,2,8))", } ], "children": [], @@ -30637,7 +30637,7 @@ def post_assumption_2(cls): { "id": "m(9,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(9,9,any))", + "operation": "remove_assumption_signature(sudoku(9,9,any))", } ], "children": [ @@ -30656,7 +30656,7 @@ def post_assumption_2(cls): { "id": "mi(9,9,7)", "action": "click", - "policy": "add_assumption(sudoku(9,9,7))", + "operation": "add_assumption(sudoku(9,9,7))", } ], "children": [], @@ -30676,7 +30676,7 @@ def post_assumption_2(cls): { "id": "mi(9,9,2)", "action": "click", - "policy": "add_assumption(sudoku(9,9,2))", + "operation": "add_assumption(sudoku(9,9,2))", } ], "children": [], @@ -30717,7 +30717,7 @@ def post_assumption_2(cls): { "id": "m(3,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(3,9,any))", + "operation": "remove_assumption_signature(sudoku(3,9,any))", } ], "children": [ @@ -30736,7 +30736,7 @@ def post_assumption_2(cls): { "id": "mi(3,9,7)", "action": "click", - "policy": "add_assumption(sudoku(3,9,7))", + "operation": "add_assumption(sudoku(3,9,7))", } ], "children": [], @@ -30756,7 +30756,7 @@ def post_assumption_2(cls): { "id": "mi(3,9,4)", "action": "click", - "policy": "add_assumption(sudoku(3,9,4))", + "operation": "add_assumption(sudoku(3,9,4))", } ], "children": [], @@ -30776,7 +30776,7 @@ def post_assumption_2(cls): { "id": "mi(3,9,1)", "action": "click", - "policy": "add_assumption(sudoku(3,9,1))", + "operation": "add_assumption(sudoku(3,9,1))", } ], "children": [], @@ -30817,7 +30817,7 @@ def post_assumption_2(cls): { "id": "m(9,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(9,8,any))", + "operation": "remove_assumption_signature(sudoku(9,8,any))", } ], "children": [ @@ -30836,7 +30836,7 @@ def post_assumption_2(cls): { "id": "mi(9,8,7)", "action": "click", - "policy": "add_assumption(sudoku(9,8,7))", + "operation": "add_assumption(sudoku(9,8,7))", } ], "children": [], @@ -30856,7 +30856,7 @@ def post_assumption_2(cls): { "id": "mi(9,8,2)", "action": "click", - "policy": "add_assumption(sudoku(9,8,2))", + "operation": "add_assumption(sudoku(9,8,2))", } ], "children": [], @@ -30897,7 +30897,7 @@ def post_assumption_2(cls): { "id": "m(3,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(3,8,any))", + "operation": "remove_assumption_signature(sudoku(3,8,any))", } ], "children": [ @@ -30916,7 +30916,7 @@ def post_assumption_2(cls): { "id": "mi(3,8,7)", "action": "click", - "policy": "add_assumption(sudoku(3,8,7))", + "operation": "add_assumption(sudoku(3,8,7))", } ], "children": [], @@ -30936,7 +30936,7 @@ def post_assumption_2(cls): { "id": "mi(3,8,4)", "action": "click", - "policy": "add_assumption(sudoku(3,8,4))", + "operation": "add_assumption(sudoku(3,8,4))", } ], "children": [], @@ -30956,7 +30956,7 @@ def post_assumption_2(cls): { "id": "mi(3,8,3)", "action": "click", - "policy": "add_assumption(sudoku(3,8,3))", + "operation": "add_assumption(sudoku(3,8,3))", } ], "children": [], @@ -30976,7 +30976,7 @@ def post_assumption_2(cls): { "id": "mi(3,8,1)", "action": "click", - "policy": "add_assumption(sudoku(3,8,1))", + "operation": "add_assumption(sudoku(3,8,1))", } ], "children": [], @@ -31022,7 +31022,7 @@ def post_assumption_2(cls): { "id": "m(4,6)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(4,6,any))", + "operation": "remove_assumption_signature(sudoku(4,6,any))", } ], "children": [ @@ -31041,7 +31041,7 @@ def post_assumption_2(cls): { "id": "mi(4,6,7)", "action": "click", - "policy": "add_assumption(sudoku(4,6,7))", + "operation": "add_assumption(sudoku(4,6,7))", } ], "children": [], @@ -31082,7 +31082,7 @@ def post_assumption_2(cls): { "id": "m(3,1)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(3,1,any))", + "operation": "remove_assumption_signature(sudoku(3,1,any))", } ], "children": [ @@ -31101,7 +31101,7 @@ def post_assumption_2(cls): { "id": "mi(3,1,7)", "action": "click", - "policy": "add_assumption(sudoku(3,1,7))", + "operation": "add_assumption(sudoku(3,1,7))", } ], "children": [], @@ -31121,7 +31121,7 @@ def post_assumption_2(cls): { "id": "mi(3,1,1)", "action": "click", - "policy": "add_assumption(sudoku(3,1,1))", + "operation": "add_assumption(sudoku(3,1,1))", } ], "children": [], @@ -31162,7 +31162,7 @@ def post_assumption_2(cls): { "id": "m(2,1)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(2,1,any))", + "operation": "remove_assumption_signature(sudoku(2,1,any))", } ], "children": [ @@ -31181,7 +31181,7 @@ def post_assumption_2(cls): { "id": "mi(2,1,7)", "action": "click", - "policy": "add_assumption(sudoku(2,1,7))", + "operation": "add_assumption(sudoku(2,1,7))", } ], "children": [], @@ -31201,7 +31201,7 @@ def post_assumption_2(cls): { "id": "mi(2,1,2)", "action": "click", - "policy": "add_assumption(sudoku(2,1,2))", + "operation": "add_assumption(sudoku(2,1,2))", } ], "children": [], @@ -31247,7 +31247,7 @@ def post_assumption_2(cls): { "id": "m(7,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(7,9,any))", + "operation": "remove_assumption_signature(sudoku(7,9,any))", } ], "children": [ @@ -31266,7 +31266,7 @@ def post_assumption_2(cls): { "id": "mi(7,9,6)", "action": "click", - "policy": "add_assumption(sudoku(7,9,6))", + "operation": "add_assumption(sudoku(7,9,6))", } ], "children": [], @@ -31312,7 +31312,7 @@ def post_assumption_2(cls): { "id": "m(4,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(4,8,any))", + "operation": "remove_assumption_signature(sudoku(4,8,any))", } ], "children": [ @@ -31331,7 +31331,7 @@ def post_assumption_2(cls): { "id": "mi(4,8,6)", "action": "click", - "policy": "add_assumption(sudoku(4,8,6))", + "operation": "add_assumption(sudoku(4,8,6))", } ], "children": [], @@ -31377,7 +31377,7 @@ def post_assumption_2(cls): { "id": "m(5,5)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(5,5,any))", + "operation": "remove_assumption_signature(sudoku(5,5,any))", } ], "children": [ @@ -31396,7 +31396,7 @@ def post_assumption_2(cls): { "id": "mi(5,5,6)", "action": "click", - "policy": "add_assumption(sudoku(5,5,6))", + "operation": "add_assumption(sudoku(5,5,6))", } ], "children": [], @@ -31442,7 +31442,7 @@ def post_assumption_2(cls): { "id": "m(3,2)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(3,2,any))", + "operation": "remove_assumption_signature(sudoku(3,2,any))", } ], "children": [ @@ -31461,7 +31461,7 @@ def post_assumption_2(cls): { "id": "mi(3,2,6)", "action": "click", - "policy": "add_assumption(sudoku(3,2,6))", + "operation": "add_assumption(sudoku(3,2,6))", } ], "children": [], @@ -31502,7 +31502,7 @@ def post_assumption_2(cls): { "id": "m(4,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(4,9,any))", + "operation": "remove_assumption_signature(sudoku(4,9,any))", } ], "children": [ @@ -31521,7 +31521,7 @@ def post_assumption_2(cls): { "id": "mi(4,9,5)", "action": "click", - "policy": "add_assumption(sudoku(4,9,5))", + "operation": "add_assumption(sudoku(4,9,5))", } ], "children": [], @@ -31541,7 +31541,7 @@ def post_assumption_2(cls): { "id": "mi(4,9,2)", "action": "click", - "policy": "add_assumption(sudoku(4,9,2))", + "operation": "add_assumption(sudoku(4,9,2))", } ], "children": [], @@ -31582,7 +31582,7 @@ def post_assumption_2(cls): { "id": "m(1,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(1,9,any))", + "operation": "remove_assumption_signature(sudoku(1,9,any))", } ], "children": [ @@ -31601,7 +31601,7 @@ def post_assumption_2(cls): { "id": "mi(1,9,5)", "action": "click", - "policy": "add_assumption(sudoku(1,9,5))", + "operation": "add_assumption(sudoku(1,9,5))", } ], "children": [], @@ -31621,7 +31621,7 @@ def post_assumption_2(cls): { "id": "mi(1,9,2)", "action": "click", - "policy": "add_assumption(sudoku(1,9,2))", + "operation": "add_assumption(sudoku(1,9,2))", } ], "children": [], @@ -31641,7 +31641,7 @@ def post_assumption_2(cls): { "id": "mi(1,9,1)", "action": "click", - "policy": "add_assumption(sudoku(1,9,1))", + "operation": "add_assumption(sudoku(1,9,1))", } ], "children": [], @@ -31682,7 +31682,7 @@ def post_assumption_2(cls): { "id": "m(1,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(1,8,any))", + "operation": "remove_assumption_signature(sudoku(1,8,any))", } ], "children": [ @@ -31701,7 +31701,7 @@ def post_assumption_2(cls): { "id": "mi(1,8,5)", "action": "click", - "policy": "add_assumption(sudoku(1,8,5))", + "operation": "add_assumption(sudoku(1,8,5))", } ], "children": [], @@ -31721,7 +31721,7 @@ def post_assumption_2(cls): { "id": "mi(1,8,1)", "action": "click", - "policy": "add_assumption(sudoku(1,8,1))", + "operation": "add_assumption(sudoku(1,8,1))", } ], "children": [], @@ -31762,7 +31762,7 @@ def post_assumption_2(cls): { "id": "m(4,7)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(4,7,any))", + "operation": "remove_assumption_signature(sudoku(4,7,any))", } ], "children": [ @@ -31781,7 +31781,7 @@ def post_assumption_2(cls): { "id": "mi(4,7,5)", "action": "click", - "policy": "add_assumption(sudoku(4,7,5))", + "operation": "add_assumption(sudoku(4,7,5))", } ], "children": [], @@ -31801,7 +31801,7 @@ def post_assumption_2(cls): { "id": "mi(4,7,2)", "action": "click", - "policy": "add_assumption(sudoku(4,7,2))", + "operation": "add_assumption(sudoku(4,7,2))", } ], "children": [], @@ -31847,7 +31847,7 @@ def post_assumption_2(cls): { "id": "m(5,6)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(5,6,any))", + "operation": "remove_assumption_signature(sudoku(5,6,any))", } ], "children": [ @@ -31866,7 +31866,7 @@ def post_assumption_2(cls): { "id": "mi(5,6,5)", "action": "click", - "policy": "add_assumption(sudoku(5,6,5))", + "operation": "add_assumption(sudoku(5,6,5))", } ], "children": [], @@ -31912,7 +31912,7 @@ def post_assumption_2(cls): { "id": "m(3,4)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(3,4,any))", + "operation": "remove_assumption_signature(sudoku(3,4,any))", } ], "children": [ @@ -31931,7 +31931,7 @@ def post_assumption_2(cls): { "id": "mi(3,4,5)", "action": "click", - "policy": "add_assumption(sudoku(3,4,5))", + "operation": "add_assumption(sudoku(3,4,5))", } ], "children": [], @@ -31977,7 +31977,7 @@ def post_assumption_2(cls): { "id": "m(2,2)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(2,2,any))", + "operation": "remove_assumption_signature(sudoku(2,2,any))", } ], "children": [ @@ -31996,7 +31996,7 @@ def post_assumption_2(cls): { "id": "mi(2,2,5)", "action": "click", - "policy": "add_assumption(sudoku(2,2,5))", + "operation": "add_assumption(sudoku(2,2,5))", } ], "children": [], @@ -32042,7 +32042,7 @@ def post_assumption_2(cls): { "id": "m(6,1)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(6,1,any))", + "operation": "remove_assumption_signature(sudoku(6,1,any))", } ], "children": [ @@ -32061,7 +32061,7 @@ def post_assumption_2(cls): { "id": "mi(6,1,5)", "action": "click", - "policy": "add_assumption(sudoku(6,1,5))", + "operation": "add_assumption(sudoku(6,1,5))", } ], "children": [], @@ -32102,7 +32102,7 @@ def post_assumption_2(cls): { "id": "m(6,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(6,9,any))", + "operation": "remove_assumption_signature(sudoku(6,9,any))", } ], "children": [ @@ -32121,7 +32121,7 @@ def post_assumption_2(cls): { "id": "mi(6,9,4)", "action": "click", - "policy": "add_assumption(sudoku(6,9,4))", + "operation": "add_assumption(sudoku(6,9,4))", } ], "children": [], @@ -32141,7 +32141,7 @@ def post_assumption_2(cls): { "id": "mi(6,9,1)", "action": "click", - "policy": "add_assumption(sudoku(6,9,1))", + "operation": "add_assumption(sudoku(6,9,1))", } ], "children": [], @@ -32182,7 +32182,7 @@ def post_assumption_2(cls): { "id": "m(6,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(6,8,any))", + "operation": "remove_assumption_signature(sudoku(6,8,any))", } ], "children": [ @@ -32201,7 +32201,7 @@ def post_assumption_2(cls): { "id": "mi(6,8,4)", "action": "click", - "policy": "add_assumption(sudoku(6,8,4))", + "operation": "add_assumption(sudoku(6,8,4))", } ], "children": [], @@ -32221,7 +32221,7 @@ def post_assumption_2(cls): { "id": "mi(6,8,1)", "action": "click", - "policy": "add_assumption(sudoku(6,8,1))", + "operation": "add_assumption(sudoku(6,8,1))", } ], "children": [], @@ -32267,7 +32267,7 @@ def post_assumption_2(cls): { "id": "m(9,7)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(9,7,any))", + "operation": "remove_assumption_signature(sudoku(9,7,any))", } ], "children": [ @@ -32286,7 +32286,7 @@ def post_assumption_2(cls): { "id": "mi(9,7,4)", "action": "click", - "policy": "add_assumption(sudoku(9,7,4))", + "operation": "add_assumption(sudoku(9,7,4))", } ], "children": [], @@ -32332,7 +32332,7 @@ def post_assumption_2(cls): { "id": "m(1,5)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(1,5,any))", + "operation": "remove_assumption_signature(sudoku(1,5,any))", } ], "children": [ @@ -32351,7 +32351,7 @@ def post_assumption_2(cls): { "id": "mi(1,5,4)", "action": "click", - "policy": "add_assumption(sudoku(1,5,4))", + "operation": "add_assumption(sudoku(1,5,4))", } ], "children": [], @@ -32397,7 +32397,7 @@ def post_assumption_2(cls): { "id": "m(2,3)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(2,3,any))", + "operation": "remove_assumption_signature(sudoku(2,3,any))", } ], "children": [ @@ -32416,7 +32416,7 @@ def post_assumption_2(cls): { "id": "mi(2,3,4)", "action": "click", - "policy": "add_assumption(sudoku(2,3,4))", + "operation": "add_assumption(sudoku(2,3,4))", } ], "children": [], @@ -32462,7 +32462,7 @@ def post_assumption_2(cls): { "id": "m(5,2)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(5,2,any))", + "operation": "remove_assumption_signature(sudoku(5,2,any))", } ], "children": [ @@ -32481,7 +32481,7 @@ def post_assumption_2(cls): { "id": "mi(5,2,4)", "action": "click", - "policy": "add_assumption(sudoku(5,2,4))", + "operation": "add_assumption(sudoku(5,2,4))", } ], "children": [], @@ -32527,7 +32527,7 @@ def post_assumption_2(cls): { "id": "m(5,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(5,9,any))", + "operation": "remove_assumption_signature(sudoku(5,9,any))", } ], "children": [ @@ -32546,7 +32546,7 @@ def post_assumption_2(cls): { "id": "mi(5,9,3)", "action": "click", - "policy": "add_assumption(sudoku(5,9,3))", + "operation": "add_assumption(sudoku(5,9,3))", } ], "children": [], @@ -32587,7 +32587,7 @@ def post_assumption_2(cls): { "id": "m(7,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(7,8,any))", + "operation": "remove_assumption_signature(sudoku(7,8,any))", } ], "children": [ @@ -32606,7 +32606,7 @@ def post_assumption_2(cls): { "id": "mi(7,8,3)", "action": "click", - "policy": "add_assumption(sudoku(7,8,3))", + "operation": "add_assumption(sudoku(7,8,3))", } ], "children": [], @@ -32626,7 +32626,7 @@ def post_assumption_2(cls): { "id": "mi(7,8,1)", "action": "click", - "policy": "add_assumption(sudoku(7,8,1))", + "operation": "add_assumption(sudoku(7,8,1))", } ], "children": [], @@ -32667,7 +32667,7 @@ def post_assumption_2(cls): { "id": "m(7,7)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(7,7,any))", + "operation": "remove_assumption_signature(sudoku(7,7,any))", } ], "children": [ @@ -32686,7 +32686,7 @@ def post_assumption_2(cls): { "id": "mi(7,7,3)", "action": "click", - "policy": "add_assumption(sudoku(7,7,3))", + "operation": "add_assumption(sudoku(7,7,3))", } ], "children": [], @@ -32706,7 +32706,7 @@ def post_assumption_2(cls): { "id": "mi(7,7,1)", "action": "click", - "policy": "add_assumption(sudoku(7,7,1))", + "operation": "add_assumption(sudoku(7,7,1))", } ], "children": [], @@ -32747,7 +32747,7 @@ def post_assumption_2(cls): { "id": "m(3,7)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(3,7,any))", + "operation": "remove_assumption_signature(sudoku(3,7,any))", } ], "children": [ @@ -32766,7 +32766,7 @@ def post_assumption_2(cls): { "id": "mi(3,7,3)", "action": "click", - "policy": "add_assumption(sudoku(3,7,3))", + "operation": "add_assumption(sudoku(3,7,3))", } ], "children": [], @@ -32786,7 +32786,7 @@ def post_assumption_2(cls): { "id": "mi(3,7,1)", "action": "click", - "policy": "add_assumption(sudoku(3,7,1))", + "operation": "add_assumption(sudoku(3,7,1))", } ], "children": [], @@ -32832,7 +32832,7 @@ def post_assumption_2(cls): { "id": "m(6,6)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(6,6,any))", + "operation": "remove_assumption_signature(sudoku(6,6,any))", } ], "children": [ @@ -32851,7 +32851,7 @@ def post_assumption_2(cls): { "id": "mi(6,6,3)", "action": "click", - "policy": "add_assumption(sudoku(6,6,3))", + "operation": "add_assumption(sudoku(6,6,3))", } ], "children": [], @@ -32897,7 +32897,7 @@ def post_assumption_2(cls): { "id": "m(1,2)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(1,2,any))", + "operation": "remove_assumption_signature(sudoku(1,2,any))", } ], "children": [ @@ -32916,7 +32916,7 @@ def post_assumption_2(cls): { "id": "mi(1,2,3)", "action": "click", - "policy": "add_assumption(sudoku(1,2,3))", + "operation": "add_assumption(sudoku(1,2,3))", } ], "children": [], @@ -32962,7 +32962,7 @@ def post_assumption_2(cls): { "id": "m(9,1)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(9,1,any))", + "operation": "remove_assumption_signature(sudoku(9,1,any))", } ], "children": [ @@ -32981,7 +32981,7 @@ def post_assumption_2(cls): { "id": "mi(9,1,3)", "action": "click", - "policy": "add_assumption(sudoku(9,1,3))", + "operation": "add_assumption(sudoku(9,1,3))", } ], "children": [], @@ -33027,7 +33027,7 @@ def post_assumption_2(cls): { "id": "m(7,6)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(7,6,any))", + "operation": "remove_assumption_signature(sudoku(7,6,any))", } ], "children": [ @@ -33046,7 +33046,7 @@ def post_assumption_2(cls): { "id": "mi(7,6,2)", "action": "click", - "policy": "add_assumption(sudoku(7,6,2))", + "operation": "add_assumption(sudoku(7,6,2))", } ], "children": [], @@ -33092,7 +33092,7 @@ def post_assumption_2(cls): { "id": "m(6,4)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(6,4,any))", + "operation": "remove_assumption_signature(sudoku(6,4,any))", } ], "children": [ @@ -33111,7 +33111,7 @@ def post_assumption_2(cls): { "id": "mi(6,4,2)", "action": "click", - "policy": "add_assumption(sudoku(6,4,2))", + "operation": "add_assumption(sudoku(6,4,2))", } ], "children": [], @@ -33157,7 +33157,7 @@ def post_assumption_2(cls): { "id": "m(5,3)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(5,3,any))", + "operation": "remove_assumption_signature(sudoku(5,3,any))", } ], "children": [ @@ -33176,7 +33176,7 @@ def post_assumption_2(cls): { "id": "mi(5,3,2)", "action": "click", - "policy": "add_assumption(sudoku(5,3,2))", + "operation": "add_assumption(sudoku(5,3,2))", } ], "children": [], @@ -33217,7 +33217,7 @@ def post_assumption_2(cls): { "id": "m(1,1)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(1,1,any))", + "operation": "remove_assumption_signature(sudoku(1,1,any))", } ], "children": [ @@ -33236,7 +33236,7 @@ def post_assumption_2(cls): { "id": "mi(1,1,2)", "action": "click", - "policy": "add_assumption(sudoku(1,1,2))", + "operation": "add_assumption(sudoku(1,1,2))", } ], "children": [], @@ -33256,7 +33256,7 @@ def post_assumption_2(cls): { "id": "mi(1,1,1)", "action": "click", - "policy": "add_assumption(sudoku(1,1,1))", + "operation": "add_assumption(sudoku(1,1,1))", } ], "children": [], @@ -33302,7 +33302,7 @@ def post_assumption_2(cls): { "id": "m(8,5)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(8,5,any))", + "operation": "remove_assumption_signature(sudoku(8,5,any))", } ], "children": [ @@ -33321,7 +33321,7 @@ def post_assumption_2(cls): { "id": "mi(8,5,1)", "action": "click", - "policy": "add_assumption(sudoku(8,5,1))", + "operation": "add_assumption(sudoku(8,5,1))", } ], "children": [], @@ -33367,7 +33367,7 @@ def post_assumption_2(cls): { "id": "m(5,4)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(5,4,any))", + "operation": "remove_assumption_signature(sudoku(5,4,any))", } ], "children": [ @@ -33386,7 +33386,7 @@ def post_assumption_2(cls): { "id": "mi(5,4,1)", "action": "click", - "policy": "add_assumption(sudoku(5,4,1))", + "operation": "add_assumption(sudoku(5,4,1))", } ], "children": [], @@ -33432,7 +33432,7 @@ def post_assumption_2(cls): { "id": "m(9,3)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(9,3,any))", + "operation": "remove_assumption_signature(sudoku(9,3,any))", } ], "children": [ @@ -33451,7 +33451,7 @@ def post_assumption_2(cls): { "id": "mi(9,3,1)", "action": "click", - "policy": "add_assumption(sudoku(9,3,1))", + "operation": "add_assumption(sudoku(9,3,1))", } ], "children": [], @@ -33497,7 +33497,7 @@ def post_assumption_2(cls): { "id": "m(4,2)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(4,2,any))", + "operation": "remove_assumption_signature(sudoku(4,2,any))", } ], "children": [ @@ -33516,7 +33516,7 @@ def post_assumption_2(cls): { "id": "mi(4,2,1)", "action": "click", - "policy": "add_assumption(sudoku(4,2,1))", + "operation": "add_assumption(sudoku(4,2,1))", } ], "children": [], @@ -33565,7 +33565,7 @@ def post_assumption_2(cls): { "id": "ms_select", "action": "click", - "policy": "select", + "operation": "select", } ], "children": [], @@ -33590,7 +33590,7 @@ def post_assumption_2(cls): { "id": "ms_next", "action": "click", - "policy": "next_solution", + "operation": "next_solution", } ], "children": [], @@ -33615,7 +33615,7 @@ def post_assumption_2(cls): { "id": "ms_clear", "action": "click", - "policy": "clear_assumptions", + "operation": "clear_assumptions", } ], "children": [], @@ -34822,7 +34822,7 @@ def post_assumption_3(cls): { "id": "m(8,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(8,9,any))", + "operation": "remove_assumption_signature(sudoku(8,9,any))", } ], "children": [ @@ -34841,7 +34841,7 @@ def post_assumption_3(cls): { "id": "mi(8,9,9)", "action": "click", - "policy": "add_assumption(sudoku(8,9,9))", + "operation": "add_assumption(sudoku(8,9,9))", } ], "children": [], @@ -34887,7 +34887,7 @@ def post_assumption_3(cls): { "id": "m(5,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(5,8,any))", + "operation": "remove_assumption_signature(sudoku(5,8,any))", } ], "children": [ @@ -34906,7 +34906,7 @@ def post_assumption_3(cls): { "id": "mi(5,8,9)", "action": "click", - "policy": "add_assumption(sudoku(5,8,9))", + "operation": "add_assumption(sudoku(5,8,9))", } ], "children": [], @@ -34952,7 +34952,7 @@ def post_assumption_3(cls): { "id": "m(2,7)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(2,7,any))", + "operation": "remove_assumption_signature(sudoku(2,7,any))", } ], "children": [ @@ -34971,7 +34971,7 @@ def post_assumption_3(cls): { "id": "mi(2,7,9)", "action": "click", - "policy": "add_assumption(sudoku(2,7,9))", + "operation": "add_assumption(sudoku(2,7,9))", } ], "children": [], @@ -35017,7 +35017,7 @@ def post_assumption_3(cls): { "id": "m(6,5)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(6,5,any))", + "operation": "remove_assumption_signature(sudoku(6,5,any))", } ], "children": [ @@ -35036,7 +35036,7 @@ def post_assumption_3(cls): { "id": "mi(6,5,9)", "action": "click", - "policy": "add_assumption(sudoku(6,5,9))", + "operation": "add_assumption(sudoku(6,5,9))", } ], "children": [], @@ -35082,7 +35082,7 @@ def post_assumption_3(cls): { "id": "m(4,1)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(4,1,any))", + "operation": "remove_assumption_signature(sudoku(4,1,any))", } ], "children": [ @@ -35101,7 +35101,7 @@ def post_assumption_3(cls): { "id": "mi(4,1,9)", "action": "click", - "policy": "add_assumption(sudoku(4,1,9))", + "operation": "add_assumption(sudoku(4,1,9))", } ], "children": [], @@ -35147,7 +35147,7 @@ def post_assumption_3(cls): { "id": "m(2,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(2,9,any))", + "operation": "remove_assumption_signature(sudoku(2,9,any))", } ], "children": [ @@ -35166,7 +35166,7 @@ def post_assumption_3(cls): { "id": "mi(2,9,8)", "action": "click", - "policy": "add_assumption(sudoku(2,9,8))", + "operation": "add_assumption(sudoku(2,9,8))", } ], "children": [], @@ -35212,7 +35212,7 @@ def post_assumption_3(cls): { "id": "m(8,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(8,8,any))", + "operation": "remove_assumption_signature(sudoku(8,8,any))", } ], "children": [ @@ -35231,7 +35231,7 @@ def post_assumption_3(cls): { "id": "mi(8,8,8)", "action": "click", - "policy": "add_assumption(sudoku(8,8,8))", + "operation": "add_assumption(sudoku(8,8,8))", } ], "children": [], @@ -35277,7 +35277,7 @@ def post_assumption_3(cls): { "id": "m(9,4)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(9,4,any))", + "operation": "remove_assumption_signature(sudoku(9,4,any))", } ], "children": [ @@ -35296,7 +35296,7 @@ def post_assumption_3(cls): { "id": "mi(9,4,8)", "action": "click", - "policy": "add_assumption(sudoku(9,4,8))", + "operation": "add_assumption(sudoku(9,4,8))", } ], "children": [], @@ -35342,7 +35342,7 @@ def post_assumption_3(cls): { "id": "m(1,3)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(1,3,any))", + "operation": "remove_assumption_signature(sudoku(1,3,any))", } ], "children": [ @@ -35361,7 +35361,7 @@ def post_assumption_3(cls): { "id": "mi(1,3,8)", "action": "click", - "policy": "add_assumption(sudoku(1,3,8))", + "operation": "add_assumption(sudoku(1,3,8))", } ], "children": [], @@ -35407,7 +35407,7 @@ def post_assumption_3(cls): { "id": "m(7,2)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(7,2,any))", + "operation": "remove_assumption_signature(sudoku(7,2,any))", } ], "children": [ @@ -35426,7 +35426,7 @@ def post_assumption_3(cls): { "id": "mi(7,2,8)", "action": "click", - "policy": "add_assumption(sudoku(7,2,8))", + "operation": "add_assumption(sudoku(7,2,8))", } ], "children": [], @@ -35467,7 +35467,7 @@ def post_assumption_3(cls): { "id": "m(9,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(9,9,any))", + "operation": "remove_assumption_signature(sudoku(9,9,any))", } ], "children": [ @@ -35486,7 +35486,7 @@ def post_assumption_3(cls): { "id": "mi(9,9,7)", "action": "click", - "policy": "add_assumption(sudoku(9,9,7))", + "operation": "add_assumption(sudoku(9,9,7))", } ], "children": [], @@ -35506,7 +35506,7 @@ def post_assumption_3(cls): { "id": "mi(9,9,2)", "action": "click", - "policy": "add_assumption(sudoku(9,9,2))", + "operation": "add_assumption(sudoku(9,9,2))", } ], "children": [], @@ -35547,7 +35547,7 @@ def post_assumption_3(cls): { "id": "m(3,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(3,9,any))", + "operation": "remove_assumption_signature(sudoku(3,9,any))", } ], "children": [ @@ -35566,7 +35566,7 @@ def post_assumption_3(cls): { "id": "mi(3,9,7)", "action": "click", - "policy": "add_assumption(sudoku(3,9,7))", + "operation": "add_assumption(sudoku(3,9,7))", } ], "children": [], @@ -35586,7 +35586,7 @@ def post_assumption_3(cls): { "id": "mi(3,9,4)", "action": "click", - "policy": "add_assumption(sudoku(3,9,4))", + "operation": "add_assumption(sudoku(3,9,4))", } ], "children": [], @@ -35606,7 +35606,7 @@ def post_assumption_3(cls): { "id": "mi(3,9,1)", "action": "click", - "policy": "add_assumption(sudoku(3,9,1))", + "operation": "add_assumption(sudoku(3,9,1))", } ], "children": [], @@ -35647,7 +35647,7 @@ def post_assumption_3(cls): { "id": "m(9,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(9,8,any))", + "operation": "remove_assumption_signature(sudoku(9,8,any))", } ], "children": [ @@ -35666,7 +35666,7 @@ def post_assumption_3(cls): { "id": "mi(9,8,7)", "action": "click", - "policy": "add_assumption(sudoku(9,8,7))", + "operation": "add_assumption(sudoku(9,8,7))", } ], "children": [], @@ -35686,7 +35686,7 @@ def post_assumption_3(cls): { "id": "mi(9,8,2)", "action": "click", - "policy": "add_assumption(sudoku(9,8,2))", + "operation": "add_assumption(sudoku(9,8,2))", } ], "children": [], @@ -35727,7 +35727,7 @@ def post_assumption_3(cls): { "id": "m(2,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(2,8,any))", + "operation": "remove_assumption_signature(sudoku(2,8,any))", } ], "children": [ @@ -35746,7 +35746,7 @@ def post_assumption_3(cls): { "id": "mi(2,8,7)", "action": "click", - "policy": "add_assumption(sudoku(2,8,7))", + "operation": "add_assumption(sudoku(2,8,7))", } ], "children": [], @@ -35766,7 +35766,7 @@ def post_assumption_3(cls): { "id": "mi(2,8,2)", "action": "click", - "policy": "add_assumption(sudoku(2,8,2))", + "operation": "add_assumption(sudoku(2,8,2))", } ], "children": [], @@ -35812,7 +35812,7 @@ def post_assumption_3(cls): { "id": "m(4,6)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(4,6,any))", + "operation": "remove_assumption_signature(sudoku(4,6,any))", } ], "children": [ @@ -35831,7 +35831,7 @@ def post_assumption_3(cls): { "id": "mi(4,6,7)", "action": "click", - "policy": "add_assumption(sudoku(4,6,7))", + "operation": "add_assumption(sudoku(4,6,7))", } ], "children": [], @@ -35872,7 +35872,7 @@ def post_assumption_3(cls): { "id": "m(3,1)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(3,1,any))", + "operation": "remove_assumption_signature(sudoku(3,1,any))", } ], "children": [ @@ -35891,7 +35891,7 @@ def post_assumption_3(cls): { "id": "mi(3,1,7)", "action": "click", - "policy": "add_assumption(sudoku(3,1,7))", + "operation": "add_assumption(sudoku(3,1,7))", } ], "children": [], @@ -35911,7 +35911,7 @@ def post_assumption_3(cls): { "id": "mi(3,1,1)", "action": "click", - "policy": "add_assumption(sudoku(3,1,1))", + "operation": "add_assumption(sudoku(3,1,1))", } ], "children": [], @@ -35952,7 +35952,7 @@ def post_assumption_3(cls): { "id": "m(2,1)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(2,1,any))", + "operation": "remove_assumption_signature(sudoku(2,1,any))", } ], "children": [ @@ -35971,7 +35971,7 @@ def post_assumption_3(cls): { "id": "mi(2,1,7)", "action": "click", - "policy": "add_assumption(sudoku(2,1,7))", + "operation": "add_assumption(sudoku(2,1,7))", } ], "children": [], @@ -35991,7 +35991,7 @@ def post_assumption_3(cls): { "id": "mi(2,1,2)", "action": "click", - "policy": "add_assumption(sudoku(2,1,2))", + "operation": "add_assumption(sudoku(2,1,2))", } ], "children": [], @@ -36037,7 +36037,7 @@ def post_assumption_3(cls): { "id": "m(7,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(7,9,any))", + "operation": "remove_assumption_signature(sudoku(7,9,any))", } ], "children": [ @@ -36056,7 +36056,7 @@ def post_assumption_3(cls): { "id": "mi(7,9,6)", "action": "click", - "policy": "add_assumption(sudoku(7,9,6))", + "operation": "add_assumption(sudoku(7,9,6))", } ], "children": [], @@ -36102,7 +36102,7 @@ def post_assumption_3(cls): { "id": "m(4,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(4,8,any))", + "operation": "remove_assumption_signature(sudoku(4,8,any))", } ], "children": [ @@ -36121,7 +36121,7 @@ def post_assumption_3(cls): { "id": "mi(4,8,6)", "action": "click", - "policy": "add_assumption(sudoku(4,8,6))", + "operation": "add_assumption(sudoku(4,8,6))", } ], "children": [], @@ -36167,7 +36167,7 @@ def post_assumption_3(cls): { "id": "m(5,5)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(5,5,any))", + "operation": "remove_assumption_signature(sudoku(5,5,any))", } ], "children": [ @@ -36186,7 +36186,7 @@ def post_assumption_3(cls): { "id": "mi(5,5,6)", "action": "click", - "policy": "add_assumption(sudoku(5,5,6))", + "operation": "add_assumption(sudoku(5,5,6))", } ], "children": [], @@ -36232,7 +36232,7 @@ def post_assumption_3(cls): { "id": "m(3,2)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(3,2,any))", + "operation": "remove_assumption_signature(sudoku(3,2,any))", } ], "children": [ @@ -36251,7 +36251,7 @@ def post_assumption_3(cls): { "id": "mi(3,2,6)", "action": "click", - "policy": "add_assumption(sudoku(3,2,6))", + "operation": "add_assumption(sudoku(3,2,6))", } ], "children": [], @@ -36297,7 +36297,7 @@ def post_assumption_3(cls): { "id": "m(4,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(4,9,any))", + "operation": "remove_assumption_signature(sudoku(4,9,any))", } ], "children": [ @@ -36316,7 +36316,7 @@ def post_assumption_3(cls): { "id": "mi(4,9,5)", "action": "click", - "policy": "add_assumption(sudoku(4,9,5))", + "operation": "add_assumption(sudoku(4,9,5))", } ], "children": [], @@ -36362,7 +36362,7 @@ def post_assumption_3(cls): { "id": "m(1,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(1,8,any))", + "operation": "remove_assumption_signature(sudoku(1,8,any))", } ], "children": [ @@ -36381,7 +36381,7 @@ def post_assumption_3(cls): { "id": "mi(1,8,5)", "action": "click", - "policy": "add_assumption(sudoku(1,8,5))", + "operation": "add_assumption(sudoku(1,8,5))", } ], "children": [], @@ -36427,7 +36427,7 @@ def post_assumption_3(cls): { "id": "m(8,7)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(8,7,any))", + "operation": "remove_assumption_signature(sudoku(8,7,any))", } ], "children": [ @@ -36446,7 +36446,7 @@ def post_assumption_3(cls): { "id": "mi(8,7,5)", "action": "click", - "policy": "add_assumption(sudoku(8,7,5))", + "operation": "add_assumption(sudoku(8,7,5))", } ], "children": [], @@ -36492,7 +36492,7 @@ def post_assumption_3(cls): { "id": "m(5,6)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(5,6,any))", + "operation": "remove_assumption_signature(sudoku(5,6,any))", } ], "children": [ @@ -36511,7 +36511,7 @@ def post_assumption_3(cls): { "id": "mi(5,6,5)", "action": "click", - "policy": "add_assumption(sudoku(5,6,5))", + "operation": "add_assumption(sudoku(5,6,5))", } ], "children": [], @@ -36557,7 +36557,7 @@ def post_assumption_3(cls): { "id": "m(3,4)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(3,4,any))", + "operation": "remove_assumption_signature(sudoku(3,4,any))", } ], "children": [ @@ -36576,7 +36576,7 @@ def post_assumption_3(cls): { "id": "mi(3,4,5)", "action": "click", - "policy": "add_assumption(sudoku(3,4,5))", + "operation": "add_assumption(sudoku(3,4,5))", } ], "children": [], @@ -36622,7 +36622,7 @@ def post_assumption_3(cls): { "id": "m(2,2)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(2,2,any))", + "operation": "remove_assumption_signature(sudoku(2,2,any))", } ], "children": [ @@ -36641,7 +36641,7 @@ def post_assumption_3(cls): { "id": "mi(2,2,5)", "action": "click", - "policy": "add_assumption(sudoku(2,2,5))", + "operation": "add_assumption(sudoku(2,2,5))", } ], "children": [], @@ -36687,7 +36687,7 @@ def post_assumption_3(cls): { "id": "m(6,1)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(6,1,any))", + "operation": "remove_assumption_signature(sudoku(6,1,any))", } ], "children": [ @@ -36706,7 +36706,7 @@ def post_assumption_3(cls): { "id": "mi(6,1,5)", "action": "click", - "policy": "add_assumption(sudoku(6,1,5))", + "operation": "add_assumption(sudoku(6,1,5))", } ], "children": [], @@ -36747,7 +36747,7 @@ def post_assumption_3(cls): { "id": "m(6,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(6,9,any))", + "operation": "remove_assumption_signature(sudoku(6,9,any))", } ], "children": [ @@ -36766,7 +36766,7 @@ def post_assumption_3(cls): { "id": "mi(6,9,4)", "action": "click", - "policy": "add_assumption(sudoku(6,9,4))", + "operation": "add_assumption(sudoku(6,9,4))", } ], "children": [], @@ -36786,7 +36786,7 @@ def post_assumption_3(cls): { "id": "mi(6,9,1)", "action": "click", - "policy": "add_assumption(sudoku(6,9,1))", + "operation": "add_assumption(sudoku(6,9,1))", } ], "children": [], @@ -36827,7 +36827,7 @@ def post_assumption_3(cls): { "id": "m(6,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(6,8,any))", + "operation": "remove_assumption_signature(sudoku(6,8,any))", } ], "children": [ @@ -36846,7 +36846,7 @@ def post_assumption_3(cls): { "id": "mi(6,8,4)", "action": "click", - "policy": "add_assumption(sudoku(6,8,4))", + "operation": "add_assumption(sudoku(6,8,4))", } ], "children": [], @@ -36866,7 +36866,7 @@ def post_assumption_3(cls): { "id": "mi(6,8,1)", "action": "click", - "policy": "add_assumption(sudoku(6,8,1))", + "operation": "add_assumption(sudoku(6,8,1))", } ], "children": [], @@ -36907,7 +36907,7 @@ def post_assumption_3(cls): { "id": "m(3,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(3,8,any))", + "operation": "remove_assumption_signature(sudoku(3,8,any))", } ], "children": [ @@ -36926,7 +36926,7 @@ def post_assumption_3(cls): { "id": "mi(3,8,4)", "action": "click", - "policy": "add_assumption(sudoku(3,8,4))", + "operation": "add_assumption(sudoku(3,8,4))", } ], "children": [], @@ -36946,7 +36946,7 @@ def post_assumption_3(cls): { "id": "mi(3,8,3)", "action": "click", - "policy": "add_assumption(sudoku(3,8,3))", + "operation": "add_assumption(sudoku(3,8,3))", } ], "children": [], @@ -36966,7 +36966,7 @@ def post_assumption_3(cls): { "id": "mi(3,8,1)", "action": "click", - "policy": "add_assumption(sudoku(3,8,1))", + "operation": "add_assumption(sudoku(3,8,1))", } ], "children": [], @@ -37012,7 +37012,7 @@ def post_assumption_3(cls): { "id": "m(9,7)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(9,7,any))", + "operation": "remove_assumption_signature(sudoku(9,7,any))", } ], "children": [ @@ -37031,7 +37031,7 @@ def post_assumption_3(cls): { "id": "mi(9,7,4)", "action": "click", - "policy": "add_assumption(sudoku(9,7,4))", + "operation": "add_assumption(sudoku(9,7,4))", } ], "children": [], @@ -37077,7 +37077,7 @@ def post_assumption_3(cls): { "id": "m(1,5)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(1,5,any))", + "operation": "remove_assumption_signature(sudoku(1,5,any))", } ], "children": [ @@ -37096,7 +37096,7 @@ def post_assumption_3(cls): { "id": "mi(1,5,4)", "action": "click", - "policy": "add_assumption(sudoku(1,5,4))", + "operation": "add_assumption(sudoku(1,5,4))", } ], "children": [], @@ -37142,7 +37142,7 @@ def post_assumption_3(cls): { "id": "m(2,3)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(2,3,any))", + "operation": "remove_assumption_signature(sudoku(2,3,any))", } ], "children": [ @@ -37161,7 +37161,7 @@ def post_assumption_3(cls): { "id": "mi(2,3,4)", "action": "click", - "policy": "add_assumption(sudoku(2,3,4))", + "operation": "add_assumption(sudoku(2,3,4))", } ], "children": [], @@ -37207,7 +37207,7 @@ def post_assumption_3(cls): { "id": "m(5,2)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(5,2,any))", + "operation": "remove_assumption_signature(sudoku(5,2,any))", } ], "children": [ @@ -37226,7 +37226,7 @@ def post_assumption_3(cls): { "id": "mi(5,2,4)", "action": "click", - "policy": "add_assumption(sudoku(5,2,4))", + "operation": "add_assumption(sudoku(5,2,4))", } ], "children": [], @@ -37272,7 +37272,7 @@ def post_assumption_3(cls): { "id": "m(5,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(5,9,any))", + "operation": "remove_assumption_signature(sudoku(5,9,any))", } ], "children": [ @@ -37291,7 +37291,7 @@ def post_assumption_3(cls): { "id": "mi(5,9,3)", "action": "click", - "policy": "add_assumption(sudoku(5,9,3))", + "operation": "add_assumption(sudoku(5,9,3))", } ], "children": [], @@ -37332,7 +37332,7 @@ def post_assumption_3(cls): { "id": "m(7,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(7,8,any))", + "operation": "remove_assumption_signature(sudoku(7,8,any))", } ], "children": [ @@ -37351,7 +37351,7 @@ def post_assumption_3(cls): { "id": "mi(7,8,3)", "action": "click", - "policy": "add_assumption(sudoku(7,8,3))", + "operation": "add_assumption(sudoku(7,8,3))", } ], "children": [], @@ -37371,7 +37371,7 @@ def post_assumption_3(cls): { "id": "mi(7,8,1)", "action": "click", - "policy": "add_assumption(sudoku(7,8,1))", + "operation": "add_assumption(sudoku(7,8,1))", } ], "children": [], @@ -37412,7 +37412,7 @@ def post_assumption_3(cls): { "id": "m(7,7)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(7,7,any))", + "operation": "remove_assumption_signature(sudoku(7,7,any))", } ], "children": [ @@ -37431,7 +37431,7 @@ def post_assumption_3(cls): { "id": "mi(7,7,3)", "action": "click", - "policy": "add_assumption(sudoku(7,7,3))", + "operation": "add_assumption(sudoku(7,7,3))", } ], "children": [], @@ -37451,7 +37451,7 @@ def post_assumption_3(cls): { "id": "mi(7,7,1)", "action": "click", - "policy": "add_assumption(sudoku(7,7,1))", + "operation": "add_assumption(sudoku(7,7,1))", } ], "children": [], @@ -37492,7 +37492,7 @@ def post_assumption_3(cls): { "id": "m(3,7)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(3,7,any))", + "operation": "remove_assumption_signature(sudoku(3,7,any))", } ], "children": [ @@ -37511,7 +37511,7 @@ def post_assumption_3(cls): { "id": "mi(3,7,3)", "action": "click", - "policy": "add_assumption(sudoku(3,7,3))", + "operation": "add_assumption(sudoku(3,7,3))", } ], "children": [], @@ -37531,7 +37531,7 @@ def post_assumption_3(cls): { "id": "mi(3,7,1)", "action": "click", - "policy": "add_assumption(sudoku(3,7,1))", + "operation": "add_assumption(sudoku(3,7,1))", } ], "children": [], @@ -37577,7 +37577,7 @@ def post_assumption_3(cls): { "id": "m(6,6)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(6,6,any))", + "operation": "remove_assumption_signature(sudoku(6,6,any))", } ], "children": [ @@ -37596,7 +37596,7 @@ def post_assumption_3(cls): { "id": "mi(6,6,3)", "action": "click", - "policy": "add_assumption(sudoku(6,6,3))", + "operation": "add_assumption(sudoku(6,6,3))", } ], "children": [], @@ -37642,7 +37642,7 @@ def post_assumption_3(cls): { "id": "m(1,2)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(1,2,any))", + "operation": "remove_assumption_signature(sudoku(1,2,any))", } ], "children": [ @@ -37661,7 +37661,7 @@ def post_assumption_3(cls): { "id": "mi(1,2,3)", "action": "click", - "policy": "add_assumption(sudoku(1,2,3))", + "operation": "add_assumption(sudoku(1,2,3))", } ], "children": [], @@ -37707,7 +37707,7 @@ def post_assumption_3(cls): { "id": "m(9,1)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(9,1,any))", + "operation": "remove_assumption_signature(sudoku(9,1,any))", } ], "children": [ @@ -37726,7 +37726,7 @@ def post_assumption_3(cls): { "id": "mi(9,1,3)", "action": "click", - "policy": "add_assumption(sudoku(9,1,3))", + "operation": "add_assumption(sudoku(9,1,3))", } ], "children": [], @@ -37767,7 +37767,7 @@ def post_assumption_3(cls): { "id": "m(1,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(1,9,any))", + "operation": "remove_assumption_signature(sudoku(1,9,any))", } ], "children": [ @@ -37786,7 +37786,7 @@ def post_assumption_3(cls): { "id": "mi(1,9,2)", "action": "click", - "policy": "add_assumption(sudoku(1,9,2))", + "operation": "add_assumption(sudoku(1,9,2))", } ], "children": [], @@ -37806,7 +37806,7 @@ def post_assumption_3(cls): { "id": "mi(1,9,1)", "action": "click", - "policy": "add_assumption(sudoku(1,9,1))", + "operation": "add_assumption(sudoku(1,9,1))", } ], "children": [], @@ -37852,7 +37852,7 @@ def post_assumption_3(cls): { "id": "m(4,7)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(4,7,any))", + "operation": "remove_assumption_signature(sudoku(4,7,any))", } ], "children": [ @@ -37871,7 +37871,7 @@ def post_assumption_3(cls): { "id": "mi(4,7,2)", "action": "click", - "policy": "add_assumption(sudoku(4,7,2))", + "operation": "add_assumption(sudoku(4,7,2))", } ], "children": [], @@ -37917,7 +37917,7 @@ def post_assumption_3(cls): { "id": "m(7,6)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(7,6,any))", + "operation": "remove_assumption_signature(sudoku(7,6,any))", } ], "children": [ @@ -37936,7 +37936,7 @@ def post_assumption_3(cls): { "id": "mi(7,6,2)", "action": "click", - "policy": "add_assumption(sudoku(7,6,2))", + "operation": "add_assumption(sudoku(7,6,2))", } ], "children": [], @@ -37982,7 +37982,7 @@ def post_assumption_3(cls): { "id": "m(6,4)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(6,4,any))", + "operation": "remove_assumption_signature(sudoku(6,4,any))", } ], "children": [ @@ -38001,7 +38001,7 @@ def post_assumption_3(cls): { "id": "mi(6,4,2)", "action": "click", - "policy": "add_assumption(sudoku(6,4,2))", + "operation": "add_assumption(sudoku(6,4,2))", } ], "children": [], @@ -38047,7 +38047,7 @@ def post_assumption_3(cls): { "id": "m(5,3)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(5,3,any))", + "operation": "remove_assumption_signature(sudoku(5,3,any))", } ], "children": [ @@ -38066,7 +38066,7 @@ def post_assumption_3(cls): { "id": "mi(5,3,2)", "action": "click", - "policy": "add_assumption(sudoku(5,3,2))", + "operation": "add_assumption(sudoku(5,3,2))", } ], "children": [], @@ -38107,7 +38107,7 @@ def post_assumption_3(cls): { "id": "m(1,1)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(1,1,any))", + "operation": "remove_assumption_signature(sudoku(1,1,any))", } ], "children": [ @@ -38126,7 +38126,7 @@ def post_assumption_3(cls): { "id": "mi(1,1,2)", "action": "click", - "policy": "add_assumption(sudoku(1,1,2))", + "operation": "add_assumption(sudoku(1,1,2))", } ], "children": [], @@ -38146,7 +38146,7 @@ def post_assumption_3(cls): { "id": "mi(1,1,1)", "action": "click", - "policy": "add_assumption(sudoku(1,1,1))", + "operation": "add_assumption(sudoku(1,1,1))", } ], "children": [], @@ -38192,7 +38192,7 @@ def post_assumption_3(cls): { "id": "m(8,5)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(8,5,any))", + "operation": "remove_assumption_signature(sudoku(8,5,any))", } ], "children": [ @@ -38211,7 +38211,7 @@ def post_assumption_3(cls): { "id": "mi(8,5,1)", "action": "click", - "policy": "add_assumption(sudoku(8,5,1))", + "operation": "add_assumption(sudoku(8,5,1))", } ], "children": [], @@ -38257,7 +38257,7 @@ def post_assumption_3(cls): { "id": "m(5,4)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(5,4,any))", + "operation": "remove_assumption_signature(sudoku(5,4,any))", } ], "children": [ @@ -38276,7 +38276,7 @@ def post_assumption_3(cls): { "id": "mi(5,4,1)", "action": "click", - "policy": "add_assumption(sudoku(5,4,1))", + "operation": "add_assumption(sudoku(5,4,1))", } ], "children": [], @@ -38322,7 +38322,7 @@ def post_assumption_3(cls): { "id": "m(9,3)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(9,3,any))", + "operation": "remove_assumption_signature(sudoku(9,3,any))", } ], "children": [ @@ -38341,7 +38341,7 @@ def post_assumption_3(cls): { "id": "mi(9,3,1)", "action": "click", - "policy": "add_assumption(sudoku(9,3,1))", + "operation": "add_assumption(sudoku(9,3,1))", } ], "children": [], @@ -38387,7 +38387,7 @@ def post_assumption_3(cls): { "id": "m(4,2)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(4,2,any))", + "operation": "remove_assumption_signature(sudoku(4,2,any))", } ], "children": [ @@ -38406,7 +38406,7 @@ def post_assumption_3(cls): { "id": "mi(4,2,1)", "action": "click", - "policy": "add_assumption(sudoku(4,2,1))", + "operation": "add_assumption(sudoku(4,2,1))", } ], "children": [], @@ -38455,7 +38455,7 @@ def post_assumption_3(cls): { "id": "ms_select", "action": "click", - "policy": "select", + "operation": "select", } ], "children": [], @@ -38480,7 +38480,7 @@ def post_assumption_3(cls): { "id": "ms_next", "action": "click", - "policy": "next_solution", + "operation": "next_solution", } ], "children": [], @@ -38505,7 +38505,7 @@ def post_assumption_3(cls): { "id": "ms_clear", "action": "click", - "policy": "clear_assumptions", + "operation": "clear_assumptions", } ], "children": [], @@ -39712,7 +39712,7 @@ def post_assumption_4(cls): { "id": "m(8,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(8,9,any))", + "operation": "remove_assumption_signature(sudoku(8,9,any))", } ], "children": [ @@ -39731,7 +39731,7 @@ def post_assumption_4(cls): { "id": "mi(8,9,9)", "action": "click", - "policy": "add_assumption(sudoku(8,9,9))", + "operation": "add_assumption(sudoku(8,9,9))", } ], "children": [], @@ -39777,7 +39777,7 @@ def post_assumption_4(cls): { "id": "m(5,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(5,8,any))", + "operation": "remove_assumption_signature(sudoku(5,8,any))", } ], "children": [ @@ -39796,7 +39796,7 @@ def post_assumption_4(cls): { "id": "mi(5,8,9)", "action": "click", - "policy": "add_assumption(sudoku(5,8,9))", + "operation": "add_assumption(sudoku(5,8,9))", } ], "children": [], @@ -39842,7 +39842,7 @@ def post_assumption_4(cls): { "id": "m(2,7)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(2,7,any))", + "operation": "remove_assumption_signature(sudoku(2,7,any))", } ], "children": [ @@ -39861,7 +39861,7 @@ def post_assumption_4(cls): { "id": "mi(2,7,9)", "action": "click", - "policy": "add_assumption(sudoku(2,7,9))", + "operation": "add_assumption(sudoku(2,7,9))", } ], "children": [], @@ -39907,7 +39907,7 @@ def post_assumption_4(cls): { "id": "m(6,5)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(6,5,any))", + "operation": "remove_assumption_signature(sudoku(6,5,any))", } ], "children": [ @@ -39926,7 +39926,7 @@ def post_assumption_4(cls): { "id": "mi(6,5,9)", "action": "click", - "policy": "add_assumption(sudoku(6,5,9))", + "operation": "add_assumption(sudoku(6,5,9))", } ], "children": [], @@ -39972,7 +39972,7 @@ def post_assumption_4(cls): { "id": "m(4,1)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(4,1,any))", + "operation": "remove_assumption_signature(sudoku(4,1,any))", } ], "children": [ @@ -39991,7 +39991,7 @@ def post_assumption_4(cls): { "id": "mi(4,1,9)", "action": "click", - "policy": "add_assumption(sudoku(4,1,9))", + "operation": "add_assumption(sudoku(4,1,9))", } ], "children": [], @@ -40037,7 +40037,7 @@ def post_assumption_4(cls): { "id": "m(2,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(2,9,any))", + "operation": "remove_assumption_signature(sudoku(2,9,any))", } ], "children": [ @@ -40056,7 +40056,7 @@ def post_assumption_4(cls): { "id": "mi(2,9,8)", "action": "click", - "policy": "add_assumption(sudoku(2,9,8))", + "operation": "add_assumption(sudoku(2,9,8))", } ], "children": [], @@ -40102,7 +40102,7 @@ def post_assumption_4(cls): { "id": "m(8,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(8,8,any))", + "operation": "remove_assumption_signature(sudoku(8,8,any))", } ], "children": [ @@ -40121,7 +40121,7 @@ def post_assumption_4(cls): { "id": "mi(8,8,8)", "action": "click", - "policy": "add_assumption(sudoku(8,8,8))", + "operation": "add_assumption(sudoku(8,8,8))", } ], "children": [], @@ -40167,7 +40167,7 @@ def post_assumption_4(cls): { "id": "m(9,4)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(9,4,any))", + "operation": "remove_assumption_signature(sudoku(9,4,any))", } ], "children": [ @@ -40186,7 +40186,7 @@ def post_assumption_4(cls): { "id": "mi(9,4,8)", "action": "click", - "policy": "add_assumption(sudoku(9,4,8))", + "operation": "add_assumption(sudoku(9,4,8))", } ], "children": [], @@ -40232,7 +40232,7 @@ def post_assumption_4(cls): { "id": "m(1,3)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(1,3,any))", + "operation": "remove_assumption_signature(sudoku(1,3,any))", } ], "children": [ @@ -40251,7 +40251,7 @@ def post_assumption_4(cls): { "id": "mi(1,3,8)", "action": "click", - "policy": "add_assumption(sudoku(1,3,8))", + "operation": "add_assumption(sudoku(1,3,8))", } ], "children": [], @@ -40297,7 +40297,7 @@ def post_assumption_4(cls): { "id": "m(7,2)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(7,2,any))", + "operation": "remove_assumption_signature(sudoku(7,2,any))", } ], "children": [ @@ -40316,7 +40316,7 @@ def post_assumption_4(cls): { "id": "mi(7,2,8)", "action": "click", - "policy": "add_assumption(sudoku(7,2,8))", + "operation": "add_assumption(sudoku(7,2,8))", } ], "children": [], @@ -40362,7 +40362,7 @@ def post_assumption_4(cls): { "id": "m(9,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(9,9,any))", + "operation": "remove_assumption_signature(sudoku(9,9,any))", } ], "children": [ @@ -40381,7 +40381,7 @@ def post_assumption_4(cls): { "id": "mi(9,9,7)", "action": "click", - "policy": "add_assumption(sudoku(9,9,7))", + "operation": "add_assumption(sudoku(9,9,7))", } ], "children": [], @@ -40427,7 +40427,7 @@ def post_assumption_4(cls): { "id": "m(2,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(2,8,any))", + "operation": "remove_assumption_signature(sudoku(2,8,any))", } ], "children": [ @@ -40446,7 +40446,7 @@ def post_assumption_4(cls): { "id": "mi(2,8,7)", "action": "click", - "policy": "add_assumption(sudoku(2,8,7))", + "operation": "add_assumption(sudoku(2,8,7))", } ], "children": [], @@ -40492,7 +40492,7 @@ def post_assumption_4(cls): { "id": "m(4,6)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(4,6,any))", + "operation": "remove_assumption_signature(sudoku(4,6,any))", } ], "children": [ @@ -40511,7 +40511,7 @@ def post_assumption_4(cls): { "id": "mi(4,6,7)", "action": "click", - "policy": "add_assumption(sudoku(4,6,7))", + "operation": "add_assumption(sudoku(4,6,7))", } ], "children": [], @@ -40557,7 +40557,7 @@ def post_assumption_4(cls): { "id": "m(3,1)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(3,1,any))", + "operation": "remove_assumption_signature(sudoku(3,1,any))", } ], "children": [ @@ -40576,7 +40576,7 @@ def post_assumption_4(cls): { "id": "mi(3,1,7)", "action": "click", - "policy": "add_assumption(sudoku(3,1,7))", + "operation": "add_assumption(sudoku(3,1,7))", } ], "children": [], @@ -40622,7 +40622,7 @@ def post_assumption_4(cls): { "id": "m(7,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(7,9,any))", + "operation": "remove_assumption_signature(sudoku(7,9,any))", } ], "children": [ @@ -40641,7 +40641,7 @@ def post_assumption_4(cls): { "id": "mi(7,9,6)", "action": "click", - "policy": "add_assumption(sudoku(7,9,6))", + "operation": "add_assumption(sudoku(7,9,6))", } ], "children": [], @@ -40687,7 +40687,7 @@ def post_assumption_4(cls): { "id": "m(4,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(4,8,any))", + "operation": "remove_assumption_signature(sudoku(4,8,any))", } ], "children": [ @@ -40706,7 +40706,7 @@ def post_assumption_4(cls): { "id": "mi(4,8,6)", "action": "click", - "policy": "add_assumption(sudoku(4,8,6))", + "operation": "add_assumption(sudoku(4,8,6))", } ], "children": [], @@ -40752,7 +40752,7 @@ def post_assumption_4(cls): { "id": "m(5,5)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(5,5,any))", + "operation": "remove_assumption_signature(sudoku(5,5,any))", } ], "children": [ @@ -40771,7 +40771,7 @@ def post_assumption_4(cls): { "id": "mi(5,5,6)", "action": "click", - "policy": "add_assumption(sudoku(5,5,6))", + "operation": "add_assumption(sudoku(5,5,6))", } ], "children": [], @@ -40817,7 +40817,7 @@ def post_assumption_4(cls): { "id": "m(3,2)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(3,2,any))", + "operation": "remove_assumption_signature(sudoku(3,2,any))", } ], "children": [ @@ -40836,7 +40836,7 @@ def post_assumption_4(cls): { "id": "mi(3,2,6)", "action": "click", - "policy": "add_assumption(sudoku(3,2,6))", + "operation": "add_assumption(sudoku(3,2,6))", } ], "children": [], @@ -40882,7 +40882,7 @@ def post_assumption_4(cls): { "id": "m(4,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(4,9,any))", + "operation": "remove_assumption_signature(sudoku(4,9,any))", } ], "children": [ @@ -40901,7 +40901,7 @@ def post_assumption_4(cls): { "id": "mi(4,9,5)", "action": "click", - "policy": "add_assumption(sudoku(4,9,5))", + "operation": "add_assumption(sudoku(4,9,5))", } ], "children": [], @@ -40947,7 +40947,7 @@ def post_assumption_4(cls): { "id": "m(1,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(1,8,any))", + "operation": "remove_assumption_signature(sudoku(1,8,any))", } ], "children": [ @@ -40966,7 +40966,7 @@ def post_assumption_4(cls): { "id": "mi(1,8,5)", "action": "click", - "policy": "add_assumption(sudoku(1,8,5))", + "operation": "add_assumption(sudoku(1,8,5))", } ], "children": [], @@ -41012,7 +41012,7 @@ def post_assumption_4(cls): { "id": "m(8,7)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(8,7,any))", + "operation": "remove_assumption_signature(sudoku(8,7,any))", } ], "children": [ @@ -41031,7 +41031,7 @@ def post_assumption_4(cls): { "id": "mi(8,7,5)", "action": "click", - "policy": "add_assumption(sudoku(8,7,5))", + "operation": "add_assumption(sudoku(8,7,5))", } ], "children": [], @@ -41077,7 +41077,7 @@ def post_assumption_4(cls): { "id": "m(5,6)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(5,6,any))", + "operation": "remove_assumption_signature(sudoku(5,6,any))", } ], "children": [ @@ -41096,7 +41096,7 @@ def post_assumption_4(cls): { "id": "mi(5,6,5)", "action": "click", - "policy": "add_assumption(sudoku(5,6,5))", + "operation": "add_assumption(sudoku(5,6,5))", } ], "children": [], @@ -41142,7 +41142,7 @@ def post_assumption_4(cls): { "id": "m(3,4)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(3,4,any))", + "operation": "remove_assumption_signature(sudoku(3,4,any))", } ], "children": [ @@ -41161,7 +41161,7 @@ def post_assumption_4(cls): { "id": "mi(3,4,5)", "action": "click", - "policy": "add_assumption(sudoku(3,4,5))", + "operation": "add_assumption(sudoku(3,4,5))", } ], "children": [], @@ -41207,7 +41207,7 @@ def post_assumption_4(cls): { "id": "m(2,2)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(2,2,any))", + "operation": "remove_assumption_signature(sudoku(2,2,any))", } ], "children": [ @@ -41226,7 +41226,7 @@ def post_assumption_4(cls): { "id": "mi(2,2,5)", "action": "click", - "policy": "add_assumption(sudoku(2,2,5))", + "operation": "add_assumption(sudoku(2,2,5))", } ], "children": [], @@ -41272,7 +41272,7 @@ def post_assumption_4(cls): { "id": "m(6,1)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(6,1,any))", + "operation": "remove_assumption_signature(sudoku(6,1,any))", } ], "children": [ @@ -41291,7 +41291,7 @@ def post_assumption_4(cls): { "id": "mi(6,1,5)", "action": "click", - "policy": "add_assumption(sudoku(6,1,5))", + "operation": "add_assumption(sudoku(6,1,5))", } ], "children": [], @@ -41332,7 +41332,7 @@ def post_assumption_4(cls): { "id": "m(6,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(6,9,any))", + "operation": "remove_assumption_signature(sudoku(6,9,any))", } ], "children": [ @@ -41351,7 +41351,7 @@ def post_assumption_4(cls): { "id": "mi(6,9,4)", "action": "click", - "policy": "add_assumption(sudoku(6,9,4))", + "operation": "add_assumption(sudoku(6,9,4))", } ], "children": [], @@ -41371,7 +41371,7 @@ def post_assumption_4(cls): { "id": "mi(6,9,1)", "action": "click", - "policy": "add_assumption(sudoku(6,9,1))", + "operation": "add_assumption(sudoku(6,9,1))", } ], "children": [], @@ -41412,7 +41412,7 @@ def post_assumption_4(cls): { "id": "m(3,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(3,9,any))", + "operation": "remove_assumption_signature(sudoku(3,9,any))", } ], "children": [ @@ -41431,7 +41431,7 @@ def post_assumption_4(cls): { "id": "mi(3,9,4)", "action": "click", - "policy": "add_assumption(sudoku(3,9,4))", + "operation": "add_assumption(sudoku(3,9,4))", } ], "children": [], @@ -41451,7 +41451,7 @@ def post_assumption_4(cls): { "id": "mi(3,9,1)", "action": "click", - "policy": "add_assumption(sudoku(3,9,1))", + "operation": "add_assumption(sudoku(3,9,1))", } ], "children": [], @@ -41492,7 +41492,7 @@ def post_assumption_4(cls): { "id": "m(6,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(6,8,any))", + "operation": "remove_assumption_signature(sudoku(6,8,any))", } ], "children": [ @@ -41511,7 +41511,7 @@ def post_assumption_4(cls): { "id": "mi(6,8,4)", "action": "click", - "policy": "add_assumption(sudoku(6,8,4))", + "operation": "add_assumption(sudoku(6,8,4))", } ], "children": [], @@ -41531,7 +41531,7 @@ def post_assumption_4(cls): { "id": "mi(6,8,1)", "action": "click", - "policy": "add_assumption(sudoku(6,8,1))", + "operation": "add_assumption(sudoku(6,8,1))", } ], "children": [], @@ -41572,7 +41572,7 @@ def post_assumption_4(cls): { "id": "m(3,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(3,8,any))", + "operation": "remove_assumption_signature(sudoku(3,8,any))", } ], "children": [ @@ -41591,7 +41591,7 @@ def post_assumption_4(cls): { "id": "mi(3,8,4)", "action": "click", - "policy": "add_assumption(sudoku(3,8,4))", + "operation": "add_assumption(sudoku(3,8,4))", } ], "children": [], @@ -41611,7 +41611,7 @@ def post_assumption_4(cls): { "id": "mi(3,8,3)", "action": "click", - "policy": "add_assumption(sudoku(3,8,3))", + "operation": "add_assumption(sudoku(3,8,3))", } ], "children": [], @@ -41631,7 +41631,7 @@ def post_assumption_4(cls): { "id": "mi(3,8,1)", "action": "click", - "policy": "add_assumption(sudoku(3,8,1))", + "operation": "add_assumption(sudoku(3,8,1))", } ], "children": [], @@ -41677,7 +41677,7 @@ def post_assumption_4(cls): { "id": "m(9,7)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(9,7,any))", + "operation": "remove_assumption_signature(sudoku(9,7,any))", } ], "children": [ @@ -41696,7 +41696,7 @@ def post_assumption_4(cls): { "id": "mi(9,7,4)", "action": "click", - "policy": "add_assumption(sudoku(9,7,4))", + "operation": "add_assumption(sudoku(9,7,4))", } ], "children": [], @@ -41742,7 +41742,7 @@ def post_assumption_4(cls): { "id": "m(1,5)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(1,5,any))", + "operation": "remove_assumption_signature(sudoku(1,5,any))", } ], "children": [ @@ -41761,7 +41761,7 @@ def post_assumption_4(cls): { "id": "mi(1,5,4)", "action": "click", - "policy": "add_assumption(sudoku(1,5,4))", + "operation": "add_assumption(sudoku(1,5,4))", } ], "children": [], @@ -41807,7 +41807,7 @@ def post_assumption_4(cls): { "id": "m(2,3)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(2,3,any))", + "operation": "remove_assumption_signature(sudoku(2,3,any))", } ], "children": [ @@ -41826,7 +41826,7 @@ def post_assumption_4(cls): { "id": "mi(2,3,4)", "action": "click", - "policy": "add_assumption(sudoku(2,3,4))", + "operation": "add_assumption(sudoku(2,3,4))", } ], "children": [], @@ -41872,7 +41872,7 @@ def post_assumption_4(cls): { "id": "m(5,2)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(5,2,any))", + "operation": "remove_assumption_signature(sudoku(5,2,any))", } ], "children": [ @@ -41891,7 +41891,7 @@ def post_assumption_4(cls): { "id": "mi(5,2,4)", "action": "click", - "policy": "add_assumption(sudoku(5,2,4))", + "operation": "add_assumption(sudoku(5,2,4))", } ], "children": [], @@ -41937,7 +41937,7 @@ def post_assumption_4(cls): { "id": "m(5,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(5,9,any))", + "operation": "remove_assumption_signature(sudoku(5,9,any))", } ], "children": [ @@ -41956,7 +41956,7 @@ def post_assumption_4(cls): { "id": "mi(5,9,3)", "action": "click", - "policy": "add_assumption(sudoku(5,9,3))", + "operation": "add_assumption(sudoku(5,9,3))", } ], "children": [], @@ -41997,7 +41997,7 @@ def post_assumption_4(cls): { "id": "m(7,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(7,8,any))", + "operation": "remove_assumption_signature(sudoku(7,8,any))", } ], "children": [ @@ -42016,7 +42016,7 @@ def post_assumption_4(cls): { "id": "mi(7,8,3)", "action": "click", - "policy": "add_assumption(sudoku(7,8,3))", + "operation": "add_assumption(sudoku(7,8,3))", } ], "children": [], @@ -42036,7 +42036,7 @@ def post_assumption_4(cls): { "id": "mi(7,8,1)", "action": "click", - "policy": "add_assumption(sudoku(7,8,1))", + "operation": "add_assumption(sudoku(7,8,1))", } ], "children": [], @@ -42077,7 +42077,7 @@ def post_assumption_4(cls): { "id": "m(7,7)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(7,7,any))", + "operation": "remove_assumption_signature(sudoku(7,7,any))", } ], "children": [ @@ -42096,7 +42096,7 @@ def post_assumption_4(cls): { "id": "mi(7,7,3)", "action": "click", - "policy": "add_assumption(sudoku(7,7,3))", + "operation": "add_assumption(sudoku(7,7,3))", } ], "children": [], @@ -42116,7 +42116,7 @@ def post_assumption_4(cls): { "id": "mi(7,7,1)", "action": "click", - "policy": "add_assumption(sudoku(7,7,1))", + "operation": "add_assumption(sudoku(7,7,1))", } ], "children": [], @@ -42157,7 +42157,7 @@ def post_assumption_4(cls): { "id": "m(3,7)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(3,7,any))", + "operation": "remove_assumption_signature(sudoku(3,7,any))", } ], "children": [ @@ -42176,7 +42176,7 @@ def post_assumption_4(cls): { "id": "mi(3,7,3)", "action": "click", - "policy": "add_assumption(sudoku(3,7,3))", + "operation": "add_assumption(sudoku(3,7,3))", } ], "children": [], @@ -42196,7 +42196,7 @@ def post_assumption_4(cls): { "id": "mi(3,7,1)", "action": "click", - "policy": "add_assumption(sudoku(3,7,1))", + "operation": "add_assumption(sudoku(3,7,1))", } ], "children": [], @@ -42242,7 +42242,7 @@ def post_assumption_4(cls): { "id": "m(6,6)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(6,6,any))", + "operation": "remove_assumption_signature(sudoku(6,6,any))", } ], "children": [ @@ -42261,7 +42261,7 @@ def post_assumption_4(cls): { "id": "mi(6,6,3)", "action": "click", - "policy": "add_assumption(sudoku(6,6,3))", + "operation": "add_assumption(sudoku(6,6,3))", } ], "children": [], @@ -42307,7 +42307,7 @@ def post_assumption_4(cls): { "id": "m(1,2)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(1,2,any))", + "operation": "remove_assumption_signature(sudoku(1,2,any))", } ], "children": [ @@ -42326,7 +42326,7 @@ def post_assumption_4(cls): { "id": "mi(1,2,3)", "action": "click", - "policy": "add_assumption(sudoku(1,2,3))", + "operation": "add_assumption(sudoku(1,2,3))", } ], "children": [], @@ -42372,7 +42372,7 @@ def post_assumption_4(cls): { "id": "m(9,1)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(9,1,any))", + "operation": "remove_assumption_signature(sudoku(9,1,any))", } ], "children": [ @@ -42391,7 +42391,7 @@ def post_assumption_4(cls): { "id": "mi(9,1,3)", "action": "click", - "policy": "add_assumption(sudoku(9,1,3))", + "operation": "add_assumption(sudoku(9,1,3))", } ], "children": [], @@ -42437,7 +42437,7 @@ def post_assumption_4(cls): { "id": "m(1,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(1,9,any))", + "operation": "remove_assumption_signature(sudoku(1,9,any))", } ], "children": [ @@ -42456,7 +42456,7 @@ def post_assumption_4(cls): { "id": "mi(1,9,2)", "action": "click", - "policy": "add_assumption(sudoku(1,9,2))", + "operation": "add_assumption(sudoku(1,9,2))", } ], "children": [], @@ -42502,7 +42502,7 @@ def post_assumption_4(cls): { "id": "m(9,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(9,8,any))", + "operation": "remove_assumption_signature(sudoku(9,8,any))", } ], "children": [ @@ -42521,7 +42521,7 @@ def post_assumption_4(cls): { "id": "mi(9,8,2)", "action": "click", - "policy": "add_assumption(sudoku(9,8,2))", + "operation": "add_assumption(sudoku(9,8,2))", } ], "children": [], @@ -42567,7 +42567,7 @@ def post_assumption_4(cls): { "id": "m(4,7)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(4,7,any))", + "operation": "remove_assumption_signature(sudoku(4,7,any))", } ], "children": [ @@ -42586,7 +42586,7 @@ def post_assumption_4(cls): { "id": "mi(4,7,2)", "action": "click", - "policy": "add_assumption(sudoku(4,7,2))", + "operation": "add_assumption(sudoku(4,7,2))", } ], "children": [], @@ -42632,7 +42632,7 @@ def post_assumption_4(cls): { "id": "m(7,6)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(7,6,any))", + "operation": "remove_assumption_signature(sudoku(7,6,any))", } ], "children": [ @@ -42651,7 +42651,7 @@ def post_assumption_4(cls): { "id": "mi(7,6,2)", "action": "click", - "policy": "add_assumption(sudoku(7,6,2))", + "operation": "add_assumption(sudoku(7,6,2))", } ], "children": [], @@ -42697,7 +42697,7 @@ def post_assumption_4(cls): { "id": "m(6,4)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(6,4,any))", + "operation": "remove_assumption_signature(sudoku(6,4,any))", } ], "children": [ @@ -42716,7 +42716,7 @@ def post_assumption_4(cls): { "id": "mi(6,4,2)", "action": "click", - "policy": "add_assumption(sudoku(6,4,2))", + "operation": "add_assumption(sudoku(6,4,2))", } ], "children": [], @@ -42762,7 +42762,7 @@ def post_assumption_4(cls): { "id": "m(5,3)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(5,3,any))", + "operation": "remove_assumption_signature(sudoku(5,3,any))", } ], "children": [ @@ -42781,7 +42781,7 @@ def post_assumption_4(cls): { "id": "mi(5,3,2)", "action": "click", - "policy": "add_assumption(sudoku(5,3,2))", + "operation": "add_assumption(sudoku(5,3,2))", } ], "children": [], @@ -42827,7 +42827,7 @@ def post_assumption_4(cls): { "id": "m(2,1)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(2,1,any))", + "operation": "remove_assumption_signature(sudoku(2,1,any))", } ], "children": [ @@ -42846,7 +42846,7 @@ def post_assumption_4(cls): { "id": "mi(2,1,2)", "action": "click", - "policy": "add_assumption(sudoku(2,1,2))", + "operation": "add_assumption(sudoku(2,1,2))", } ], "children": [], @@ -42892,7 +42892,7 @@ def post_assumption_4(cls): { "id": "m(8,5)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(8,5,any))", + "operation": "remove_assumption_signature(sudoku(8,5,any))", } ], "children": [ @@ -42911,7 +42911,7 @@ def post_assumption_4(cls): { "id": "mi(8,5,1)", "action": "click", - "policy": "add_assumption(sudoku(8,5,1))", + "operation": "add_assumption(sudoku(8,5,1))", } ], "children": [], @@ -42957,7 +42957,7 @@ def post_assumption_4(cls): { "id": "m(5,4)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(5,4,any))", + "operation": "remove_assumption_signature(sudoku(5,4,any))", } ], "children": [ @@ -42976,7 +42976,7 @@ def post_assumption_4(cls): { "id": "mi(5,4,1)", "action": "click", - "policy": "add_assumption(sudoku(5,4,1))", + "operation": "add_assumption(sudoku(5,4,1))", } ], "children": [], @@ -43022,7 +43022,7 @@ def post_assumption_4(cls): { "id": "m(9,3)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(9,3,any))", + "operation": "remove_assumption_signature(sudoku(9,3,any))", } ], "children": [ @@ -43041,7 +43041,7 @@ def post_assumption_4(cls): { "id": "mi(9,3,1)", "action": "click", - "policy": "add_assumption(sudoku(9,3,1))", + "operation": "add_assumption(sudoku(9,3,1))", } ], "children": [], @@ -43087,7 +43087,7 @@ def post_assumption_4(cls): { "id": "m(4,2)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(4,2,any))", + "operation": "remove_assumption_signature(sudoku(4,2,any))", } ], "children": [ @@ -43106,7 +43106,7 @@ def post_assumption_4(cls): { "id": "mi(4,2,1)", "action": "click", - "policy": "add_assumption(sudoku(4,2,1))", + "operation": "add_assumption(sudoku(4,2,1))", } ], "children": [], @@ -43152,7 +43152,7 @@ def post_assumption_4(cls): { "id": "m(1,1)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(1,1,any))", + "operation": "remove_assumption_signature(sudoku(1,1,any))", } ], "children": [ @@ -43171,7 +43171,7 @@ def post_assumption_4(cls): { "id": "mi(1,1,1)", "action": "click", - "policy": "add_assumption(sudoku(1,1,1))", + "operation": "add_assumption(sudoku(1,1,1))", } ], "children": [], @@ -43220,7 +43220,7 @@ def post_assumption_4(cls): { "id": "ms_select", "action": "click", - "policy": "select", + "operation": "select", } ], "children": [], @@ -43245,7 +43245,7 @@ def post_assumption_4(cls): { "id": "ms_next", "action": "click", - "policy": "next_solution", + "operation": "next_solution", } ], "children": [], @@ -43270,7 +43270,7 @@ def post_assumption_4(cls): { "id": "ms_clear", "action": "click", - "policy": "clear_assumptions", + "operation": "clear_assumptions", } ], "children": [], @@ -44477,7 +44477,7 @@ def post_assumption_5(cls): { "id": "m(8,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(8,9,any))", + "operation": "remove_assumption_signature(sudoku(8,9,any))", } ], "children": [ @@ -44496,7 +44496,7 @@ def post_assumption_5(cls): { "id": "mi(8,9,9)", "action": "click", - "policy": "add_assumption(sudoku(8,9,9))", + "operation": "add_assumption(sudoku(8,9,9))", } ], "children": [], @@ -44542,7 +44542,7 @@ def post_assumption_5(cls): { "id": "m(5,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(5,8,any))", + "operation": "remove_assumption_signature(sudoku(5,8,any))", } ], "children": [ @@ -44561,7 +44561,7 @@ def post_assumption_5(cls): { "id": "mi(5,8,9)", "action": "click", - "policy": "add_assumption(sudoku(5,8,9))", + "operation": "add_assumption(sudoku(5,8,9))", } ], "children": [], @@ -44607,7 +44607,7 @@ def post_assumption_5(cls): { "id": "m(2,7)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(2,7,any))", + "operation": "remove_assumption_signature(sudoku(2,7,any))", } ], "children": [ @@ -44626,7 +44626,7 @@ def post_assumption_5(cls): { "id": "mi(2,7,9)", "action": "click", - "policy": "add_assumption(sudoku(2,7,9))", + "operation": "add_assumption(sudoku(2,7,9))", } ], "children": [], @@ -44672,7 +44672,7 @@ def post_assumption_5(cls): { "id": "m(6,5)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(6,5,any))", + "operation": "remove_assumption_signature(sudoku(6,5,any))", } ], "children": [ @@ -44691,7 +44691,7 @@ def post_assumption_5(cls): { "id": "mi(6,5,9)", "action": "click", - "policy": "add_assumption(sudoku(6,5,9))", + "operation": "add_assumption(sudoku(6,5,9))", } ], "children": [], @@ -44737,7 +44737,7 @@ def post_assumption_5(cls): { "id": "m(4,1)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(4,1,any))", + "operation": "remove_assumption_signature(sudoku(4,1,any))", } ], "children": [ @@ -44756,7 +44756,7 @@ def post_assumption_5(cls): { "id": "mi(4,1,9)", "action": "click", - "policy": "add_assumption(sudoku(4,1,9))", + "operation": "add_assumption(sudoku(4,1,9))", } ], "children": [], @@ -44802,7 +44802,7 @@ def post_assumption_5(cls): { "id": "m(2,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(2,9,any))", + "operation": "remove_assumption_signature(sudoku(2,9,any))", } ], "children": [ @@ -44821,7 +44821,7 @@ def post_assumption_5(cls): { "id": "mi(2,9,8)", "action": "click", - "policy": "add_assumption(sudoku(2,9,8))", + "operation": "add_assumption(sudoku(2,9,8))", } ], "children": [], @@ -44867,7 +44867,7 @@ def post_assumption_5(cls): { "id": "m(8,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(8,8,any))", + "operation": "remove_assumption_signature(sudoku(8,8,any))", } ], "children": [ @@ -44886,7 +44886,7 @@ def post_assumption_5(cls): { "id": "mi(8,8,8)", "action": "click", - "policy": "add_assumption(sudoku(8,8,8))", + "operation": "add_assumption(sudoku(8,8,8))", } ], "children": [], @@ -44932,7 +44932,7 @@ def post_assumption_5(cls): { "id": "m(9,4)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(9,4,any))", + "operation": "remove_assumption_signature(sudoku(9,4,any))", } ], "children": [ @@ -44951,7 +44951,7 @@ def post_assumption_5(cls): { "id": "mi(9,4,8)", "action": "click", - "policy": "add_assumption(sudoku(9,4,8))", + "operation": "add_assumption(sudoku(9,4,8))", } ], "children": [], @@ -44997,7 +44997,7 @@ def post_assumption_5(cls): { "id": "m(1,3)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(1,3,any))", + "operation": "remove_assumption_signature(sudoku(1,3,any))", } ], "children": [ @@ -45016,7 +45016,7 @@ def post_assumption_5(cls): { "id": "mi(1,3,8)", "action": "click", - "policy": "add_assumption(sudoku(1,3,8))", + "operation": "add_assumption(sudoku(1,3,8))", } ], "children": [], @@ -45062,7 +45062,7 @@ def post_assumption_5(cls): { "id": "m(7,2)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(7,2,any))", + "operation": "remove_assumption_signature(sudoku(7,2,any))", } ], "children": [ @@ -45081,7 +45081,7 @@ def post_assumption_5(cls): { "id": "mi(7,2,8)", "action": "click", - "policy": "add_assumption(sudoku(7,2,8))", + "operation": "add_assumption(sudoku(7,2,8))", } ], "children": [], @@ -45127,7 +45127,7 @@ def post_assumption_5(cls): { "id": "m(9,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(9,9,any))", + "operation": "remove_assumption_signature(sudoku(9,9,any))", } ], "children": [ @@ -45146,7 +45146,7 @@ def post_assumption_5(cls): { "id": "mi(9,9,7)", "action": "click", - "policy": "add_assumption(sudoku(9,9,7))", + "operation": "add_assumption(sudoku(9,9,7))", } ], "children": [], @@ -45192,7 +45192,7 @@ def post_assumption_5(cls): { "id": "m(2,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(2,8,any))", + "operation": "remove_assumption_signature(sudoku(2,8,any))", } ], "children": [ @@ -45211,7 +45211,7 @@ def post_assumption_5(cls): { "id": "mi(2,8,7)", "action": "click", - "policy": "add_assumption(sudoku(2,8,7))", + "operation": "add_assumption(sudoku(2,8,7))", } ], "children": [], @@ -45257,7 +45257,7 @@ def post_assumption_5(cls): { "id": "m(4,6)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(4,6,any))", + "operation": "remove_assumption_signature(sudoku(4,6,any))", } ], "children": [ @@ -45276,7 +45276,7 @@ def post_assumption_5(cls): { "id": "mi(4,6,7)", "action": "click", - "policy": "add_assumption(sudoku(4,6,7))", + "operation": "add_assumption(sudoku(4,6,7))", } ], "children": [], @@ -45322,7 +45322,7 @@ def post_assumption_5(cls): { "id": "m(3,1)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(3,1,any))", + "operation": "remove_assumption_signature(sudoku(3,1,any))", } ], "children": [ @@ -45341,7 +45341,7 @@ def post_assumption_5(cls): { "id": "mi(3,1,7)", "action": "click", - "policy": "add_assumption(sudoku(3,1,7))", + "operation": "add_assumption(sudoku(3,1,7))", } ], "children": [], @@ -45387,7 +45387,7 @@ def post_assumption_5(cls): { "id": "m(7,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(7,9,any))", + "operation": "remove_assumption_signature(sudoku(7,9,any))", } ], "children": [ @@ -45406,7 +45406,7 @@ def post_assumption_5(cls): { "id": "mi(7,9,6)", "action": "click", - "policy": "add_assumption(sudoku(7,9,6))", + "operation": "add_assumption(sudoku(7,9,6))", } ], "children": [], @@ -45452,7 +45452,7 @@ def post_assumption_5(cls): { "id": "m(4,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(4,8,any))", + "operation": "remove_assumption_signature(sudoku(4,8,any))", } ], "children": [ @@ -45471,7 +45471,7 @@ def post_assumption_5(cls): { "id": "mi(4,8,6)", "action": "click", - "policy": "add_assumption(sudoku(4,8,6))", + "operation": "add_assumption(sudoku(4,8,6))", } ], "children": [], @@ -45517,7 +45517,7 @@ def post_assumption_5(cls): { "id": "m(5,5)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(5,5,any))", + "operation": "remove_assumption_signature(sudoku(5,5,any))", } ], "children": [ @@ -45536,7 +45536,7 @@ def post_assumption_5(cls): { "id": "mi(5,5,6)", "action": "click", - "policy": "add_assumption(sudoku(5,5,6))", + "operation": "add_assumption(sudoku(5,5,6))", } ], "children": [], @@ -45582,7 +45582,7 @@ def post_assumption_5(cls): { "id": "m(3,2)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(3,2,any))", + "operation": "remove_assumption_signature(sudoku(3,2,any))", } ], "children": [ @@ -45601,7 +45601,7 @@ def post_assumption_5(cls): { "id": "mi(3,2,6)", "action": "click", - "policy": "add_assumption(sudoku(3,2,6))", + "operation": "add_assumption(sudoku(3,2,6))", } ], "children": [], @@ -45647,7 +45647,7 @@ def post_assumption_5(cls): { "id": "m(4,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(4,9,any))", + "operation": "remove_assumption_signature(sudoku(4,9,any))", } ], "children": [ @@ -45666,7 +45666,7 @@ def post_assumption_5(cls): { "id": "mi(4,9,5)", "action": "click", - "policy": "add_assumption(sudoku(4,9,5))", + "operation": "add_assumption(sudoku(4,9,5))", } ], "children": [], @@ -45712,7 +45712,7 @@ def post_assumption_5(cls): { "id": "m(1,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(1,8,any))", + "operation": "remove_assumption_signature(sudoku(1,8,any))", } ], "children": [ @@ -45731,7 +45731,7 @@ def post_assumption_5(cls): { "id": "mi(1,8,5)", "action": "click", - "policy": "add_assumption(sudoku(1,8,5))", + "operation": "add_assumption(sudoku(1,8,5))", } ], "children": [], @@ -45777,7 +45777,7 @@ def post_assumption_5(cls): { "id": "m(8,7)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(8,7,any))", + "operation": "remove_assumption_signature(sudoku(8,7,any))", } ], "children": [ @@ -45796,7 +45796,7 @@ def post_assumption_5(cls): { "id": "mi(8,7,5)", "action": "click", - "policy": "add_assumption(sudoku(8,7,5))", + "operation": "add_assumption(sudoku(8,7,5))", } ], "children": [], @@ -45842,7 +45842,7 @@ def post_assumption_5(cls): { "id": "m(5,6)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(5,6,any))", + "operation": "remove_assumption_signature(sudoku(5,6,any))", } ], "children": [ @@ -45861,7 +45861,7 @@ def post_assumption_5(cls): { "id": "mi(5,6,5)", "action": "click", - "policy": "add_assumption(sudoku(5,6,5))", + "operation": "add_assumption(sudoku(5,6,5))", } ], "children": [], @@ -45907,7 +45907,7 @@ def post_assumption_5(cls): { "id": "m(3,4)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(3,4,any))", + "operation": "remove_assumption_signature(sudoku(3,4,any))", } ], "children": [ @@ -45926,7 +45926,7 @@ def post_assumption_5(cls): { "id": "mi(3,4,5)", "action": "click", - "policy": "add_assumption(sudoku(3,4,5))", + "operation": "add_assumption(sudoku(3,4,5))", } ], "children": [], @@ -45972,7 +45972,7 @@ def post_assumption_5(cls): { "id": "m(2,2)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(2,2,any))", + "operation": "remove_assumption_signature(sudoku(2,2,any))", } ], "children": [ @@ -45991,7 +45991,7 @@ def post_assumption_5(cls): { "id": "mi(2,2,5)", "action": "click", - "policy": "add_assumption(sudoku(2,2,5))", + "operation": "add_assumption(sudoku(2,2,5))", } ], "children": [], @@ -46037,7 +46037,7 @@ def post_assumption_5(cls): { "id": "m(6,1)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(6,1,any))", + "operation": "remove_assumption_signature(sudoku(6,1,any))", } ], "children": [ @@ -46056,7 +46056,7 @@ def post_assumption_5(cls): { "id": "mi(6,1,5)", "action": "click", - "policy": "add_assumption(sudoku(6,1,5))", + "operation": "add_assumption(sudoku(6,1,5))", } ], "children": [], @@ -46102,7 +46102,7 @@ def post_assumption_5(cls): { "id": "m(3,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(3,9,any))", + "operation": "remove_assumption_signature(sudoku(3,9,any))", } ], "children": [ @@ -46121,7 +46121,7 @@ def post_assumption_5(cls): { "id": "mi(3,9,4)", "action": "click", - "policy": "add_assumption(sudoku(3,9,4))", + "operation": "add_assumption(sudoku(3,9,4))", } ], "children": [], @@ -46167,7 +46167,7 @@ def post_assumption_5(cls): { "id": "m(6,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(6,8,any))", + "operation": "remove_assumption_signature(sudoku(6,8,any))", } ], "children": [ @@ -46186,7 +46186,7 @@ def post_assumption_5(cls): { "id": "mi(6,8,4)", "action": "click", - "policy": "add_assumption(sudoku(6,8,4))", + "operation": "add_assumption(sudoku(6,8,4))", } ], "children": [], @@ -46232,7 +46232,7 @@ def post_assumption_5(cls): { "id": "m(9,7)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(9,7,any))", + "operation": "remove_assumption_signature(sudoku(9,7,any))", } ], "children": [ @@ -46251,7 +46251,7 @@ def post_assumption_5(cls): { "id": "mi(9,7,4)", "action": "click", - "policy": "add_assumption(sudoku(9,7,4))", + "operation": "add_assumption(sudoku(9,7,4))", } ], "children": [], @@ -46297,7 +46297,7 @@ def post_assumption_5(cls): { "id": "m(1,5)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(1,5,any))", + "operation": "remove_assumption_signature(sudoku(1,5,any))", } ], "children": [ @@ -46316,7 +46316,7 @@ def post_assumption_5(cls): { "id": "mi(1,5,4)", "action": "click", - "policy": "add_assumption(sudoku(1,5,4))", + "operation": "add_assumption(sudoku(1,5,4))", } ], "children": [], @@ -46362,7 +46362,7 @@ def post_assumption_5(cls): { "id": "m(2,3)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(2,3,any))", + "operation": "remove_assumption_signature(sudoku(2,3,any))", } ], "children": [ @@ -46381,7 +46381,7 @@ def post_assumption_5(cls): { "id": "mi(2,3,4)", "action": "click", - "policy": "add_assumption(sudoku(2,3,4))", + "operation": "add_assumption(sudoku(2,3,4))", } ], "children": [], @@ -46427,7 +46427,7 @@ def post_assumption_5(cls): { "id": "m(5,2)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(5,2,any))", + "operation": "remove_assumption_signature(sudoku(5,2,any))", } ], "children": [ @@ -46446,7 +46446,7 @@ def post_assumption_5(cls): { "id": "mi(5,2,4)", "action": "click", - "policy": "add_assumption(sudoku(5,2,4))", + "operation": "add_assumption(sudoku(5,2,4))", } ], "children": [], @@ -46492,7 +46492,7 @@ def post_assumption_5(cls): { "id": "m(5,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(5,9,any))", + "operation": "remove_assumption_signature(sudoku(5,9,any))", } ], "children": [ @@ -46511,7 +46511,7 @@ def post_assumption_5(cls): { "id": "mi(5,9,3)", "action": "click", - "policy": "add_assumption(sudoku(5,9,3))", + "operation": "add_assumption(sudoku(5,9,3))", } ], "children": [], @@ -46552,7 +46552,7 @@ def post_assumption_5(cls): { "id": "m(7,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(7,8,any))", + "operation": "remove_assumption_signature(sudoku(7,8,any))", } ], "children": [ @@ -46571,7 +46571,7 @@ def post_assumption_5(cls): { "id": "mi(7,8,3)", "action": "click", - "policy": "add_assumption(sudoku(7,8,3))", + "operation": "add_assumption(sudoku(7,8,3))", } ], "children": [], @@ -46591,7 +46591,7 @@ def post_assumption_5(cls): { "id": "mi(7,8,1)", "action": "click", - "policy": "add_assumption(sudoku(7,8,1))", + "operation": "add_assumption(sudoku(7,8,1))", } ], "children": [], @@ -46632,7 +46632,7 @@ def post_assumption_5(cls): { "id": "m(3,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(3,8,any))", + "operation": "remove_assumption_signature(sudoku(3,8,any))", } ], "children": [ @@ -46651,7 +46651,7 @@ def post_assumption_5(cls): { "id": "mi(3,8,3)", "action": "click", - "policy": "add_assumption(sudoku(3,8,3))", + "operation": "add_assumption(sudoku(3,8,3))", } ], "children": [], @@ -46671,7 +46671,7 @@ def post_assumption_5(cls): { "id": "mi(3,8,1)", "action": "click", - "policy": "add_assumption(sudoku(3,8,1))", + "operation": "add_assumption(sudoku(3,8,1))", } ], "children": [], @@ -46712,7 +46712,7 @@ def post_assumption_5(cls): { "id": "m(7,7)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(7,7,any))", + "operation": "remove_assumption_signature(sudoku(7,7,any))", } ], "children": [ @@ -46731,7 +46731,7 @@ def post_assumption_5(cls): { "id": "mi(7,7,3)", "action": "click", - "policy": "add_assumption(sudoku(7,7,3))", + "operation": "add_assumption(sudoku(7,7,3))", } ], "children": [], @@ -46751,7 +46751,7 @@ def post_assumption_5(cls): { "id": "mi(7,7,1)", "action": "click", - "policy": "add_assumption(sudoku(7,7,1))", + "operation": "add_assumption(sudoku(7,7,1))", } ], "children": [], @@ -46792,7 +46792,7 @@ def post_assumption_5(cls): { "id": "m(3,7)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(3,7,any))", + "operation": "remove_assumption_signature(sudoku(3,7,any))", } ], "children": [ @@ -46811,7 +46811,7 @@ def post_assumption_5(cls): { "id": "mi(3,7,3)", "action": "click", - "policy": "add_assumption(sudoku(3,7,3))", + "operation": "add_assumption(sudoku(3,7,3))", } ], "children": [], @@ -46831,7 +46831,7 @@ def post_assumption_5(cls): { "id": "mi(3,7,1)", "action": "click", - "policy": "add_assumption(sudoku(3,7,1))", + "operation": "add_assumption(sudoku(3,7,1))", } ], "children": [], @@ -46877,7 +46877,7 @@ def post_assumption_5(cls): { "id": "m(6,6)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(6,6,any))", + "operation": "remove_assumption_signature(sudoku(6,6,any))", } ], "children": [ @@ -46896,7 +46896,7 @@ def post_assumption_5(cls): { "id": "mi(6,6,3)", "action": "click", - "policy": "add_assumption(sudoku(6,6,3))", + "operation": "add_assumption(sudoku(6,6,3))", } ], "children": [], @@ -46942,7 +46942,7 @@ def post_assumption_5(cls): { "id": "m(1,2)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(1,2,any))", + "operation": "remove_assumption_signature(sudoku(1,2,any))", } ], "children": [ @@ -46961,7 +46961,7 @@ def post_assumption_5(cls): { "id": "mi(1,2,3)", "action": "click", - "policy": "add_assumption(sudoku(1,2,3))", + "operation": "add_assumption(sudoku(1,2,3))", } ], "children": [], @@ -47007,7 +47007,7 @@ def post_assumption_5(cls): { "id": "m(9,1)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(9,1,any))", + "operation": "remove_assumption_signature(sudoku(9,1,any))", } ], "children": [ @@ -47026,7 +47026,7 @@ def post_assumption_5(cls): { "id": "mi(9,1,3)", "action": "click", - "policy": "add_assumption(sudoku(9,1,3))", + "operation": "add_assumption(sudoku(9,1,3))", } ], "children": [], @@ -47072,7 +47072,7 @@ def post_assumption_5(cls): { "id": "m(1,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(1,9,any))", + "operation": "remove_assumption_signature(sudoku(1,9,any))", } ], "children": [ @@ -47091,7 +47091,7 @@ def post_assumption_5(cls): { "id": "mi(1,9,2)", "action": "click", - "policy": "add_assumption(sudoku(1,9,2))", + "operation": "add_assumption(sudoku(1,9,2))", } ], "children": [], @@ -47137,7 +47137,7 @@ def post_assumption_5(cls): { "id": "m(9,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(9,8,any))", + "operation": "remove_assumption_signature(sudoku(9,8,any))", } ], "children": [ @@ -47156,7 +47156,7 @@ def post_assumption_5(cls): { "id": "mi(9,8,2)", "action": "click", - "policy": "add_assumption(sudoku(9,8,2))", + "operation": "add_assumption(sudoku(9,8,2))", } ], "children": [], @@ -47202,7 +47202,7 @@ def post_assumption_5(cls): { "id": "m(4,7)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(4,7,any))", + "operation": "remove_assumption_signature(sudoku(4,7,any))", } ], "children": [ @@ -47221,7 +47221,7 @@ def post_assumption_5(cls): { "id": "mi(4,7,2)", "action": "click", - "policy": "add_assumption(sudoku(4,7,2))", + "operation": "add_assumption(sudoku(4,7,2))", } ], "children": [], @@ -47267,7 +47267,7 @@ def post_assumption_5(cls): { "id": "m(7,6)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(7,6,any))", + "operation": "remove_assumption_signature(sudoku(7,6,any))", } ], "children": [ @@ -47286,7 +47286,7 @@ def post_assumption_5(cls): { "id": "mi(7,6,2)", "action": "click", - "policy": "add_assumption(sudoku(7,6,2))", + "operation": "add_assumption(sudoku(7,6,2))", } ], "children": [], @@ -47332,7 +47332,7 @@ def post_assumption_5(cls): { "id": "m(6,4)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(6,4,any))", + "operation": "remove_assumption_signature(sudoku(6,4,any))", } ], "children": [ @@ -47351,7 +47351,7 @@ def post_assumption_5(cls): { "id": "mi(6,4,2)", "action": "click", - "policy": "add_assumption(sudoku(6,4,2))", + "operation": "add_assumption(sudoku(6,4,2))", } ], "children": [], @@ -47397,7 +47397,7 @@ def post_assumption_5(cls): { "id": "m(5,3)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(5,3,any))", + "operation": "remove_assumption_signature(sudoku(5,3,any))", } ], "children": [ @@ -47416,7 +47416,7 @@ def post_assumption_5(cls): { "id": "mi(5,3,2)", "action": "click", - "policy": "add_assumption(sudoku(5,3,2))", + "operation": "add_assumption(sudoku(5,3,2))", } ], "children": [], @@ -47462,7 +47462,7 @@ def post_assumption_5(cls): { "id": "m(2,1)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(2,1,any))", + "operation": "remove_assumption_signature(sudoku(2,1,any))", } ], "children": [ @@ -47481,7 +47481,7 @@ def post_assumption_5(cls): { "id": "mi(2,1,2)", "action": "click", - "policy": "add_assumption(sudoku(2,1,2))", + "operation": "add_assumption(sudoku(2,1,2))", } ], "children": [], @@ -47527,7 +47527,7 @@ def post_assumption_5(cls): { "id": "m(6,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(6,9,any))", + "operation": "remove_assumption_signature(sudoku(6,9,any))", } ], "children": [ @@ -47546,7 +47546,7 @@ def post_assumption_5(cls): { "id": "mi(6,9,1)", "action": "click", - "policy": "add_assumption(sudoku(6,9,1))", + "operation": "add_assumption(sudoku(6,9,1))", } ], "children": [], @@ -47592,7 +47592,7 @@ def post_assumption_5(cls): { "id": "m(8,5)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(8,5,any))", + "operation": "remove_assumption_signature(sudoku(8,5,any))", } ], "children": [ @@ -47611,7 +47611,7 @@ def post_assumption_5(cls): { "id": "mi(8,5,1)", "action": "click", - "policy": "add_assumption(sudoku(8,5,1))", + "operation": "add_assumption(sudoku(8,5,1))", } ], "children": [], @@ -47657,7 +47657,7 @@ def post_assumption_5(cls): { "id": "m(5,4)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(5,4,any))", + "operation": "remove_assumption_signature(sudoku(5,4,any))", } ], "children": [ @@ -47676,7 +47676,7 @@ def post_assumption_5(cls): { "id": "mi(5,4,1)", "action": "click", - "policy": "add_assumption(sudoku(5,4,1))", + "operation": "add_assumption(sudoku(5,4,1))", } ], "children": [], @@ -47722,7 +47722,7 @@ def post_assumption_5(cls): { "id": "m(9,3)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(9,3,any))", + "operation": "remove_assumption_signature(sudoku(9,3,any))", } ], "children": [ @@ -47741,7 +47741,7 @@ def post_assumption_5(cls): { "id": "mi(9,3,1)", "action": "click", - "policy": "add_assumption(sudoku(9,3,1))", + "operation": "add_assumption(sudoku(9,3,1))", } ], "children": [], @@ -47787,7 +47787,7 @@ def post_assumption_5(cls): { "id": "m(4,2)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(4,2,any))", + "operation": "remove_assumption_signature(sudoku(4,2,any))", } ], "children": [ @@ -47806,7 +47806,7 @@ def post_assumption_5(cls): { "id": "mi(4,2,1)", "action": "click", - "policy": "add_assumption(sudoku(4,2,1))", + "operation": "add_assumption(sudoku(4,2,1))", } ], "children": [], @@ -47852,7 +47852,7 @@ def post_assumption_5(cls): { "id": "m(1,1)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(1,1,any))", + "operation": "remove_assumption_signature(sudoku(1,1,any))", } ], "children": [ @@ -47871,7 +47871,7 @@ def post_assumption_5(cls): { "id": "mi(1,1,1)", "action": "click", - "policy": "add_assumption(sudoku(1,1,1))", + "operation": "add_assumption(sudoku(1,1,1))", } ], "children": [], @@ -47920,7 +47920,7 @@ def post_assumption_5(cls): { "id": "ms_select", "action": "click", - "policy": "select", + "operation": "select", } ], "children": [], @@ -47945,7 +47945,7 @@ def post_assumption_5(cls): { "id": "ms_next", "action": "click", - "policy": "next_solution", + "operation": "next_solution", } ], "children": [], @@ -47970,7 +47970,7 @@ def post_assumption_5(cls): { "id": "ms_clear", "action": "click", - "policy": "clear_assumptions", + "operation": "clear_assumptions", } ], "children": [], @@ -49177,7 +49177,7 @@ def post_assumption_6(cls): { "id": "m(8,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(8,9,any))", + "operation": "remove_assumption_signature(sudoku(8,9,any))", } ], "children": [ @@ -49196,7 +49196,7 @@ def post_assumption_6(cls): { "id": "mi(8,9,9)", "action": "click", - "policy": "add_assumption(sudoku(8,9,9))", + "operation": "add_assumption(sudoku(8,9,9))", } ], "children": [], @@ -49242,7 +49242,7 @@ def post_assumption_6(cls): { "id": "m(5,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(5,8,any))", + "operation": "remove_assumption_signature(sudoku(5,8,any))", } ], "children": [ @@ -49261,7 +49261,7 @@ def post_assumption_6(cls): { "id": "mi(5,8,9)", "action": "click", - "policy": "add_assumption(sudoku(5,8,9))", + "operation": "add_assumption(sudoku(5,8,9))", } ], "children": [], @@ -49307,7 +49307,7 @@ def post_assumption_6(cls): { "id": "m(2,7)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(2,7,any))", + "operation": "remove_assumption_signature(sudoku(2,7,any))", } ], "children": [ @@ -49326,7 +49326,7 @@ def post_assumption_6(cls): { "id": "mi(2,7,9)", "action": "click", - "policy": "add_assumption(sudoku(2,7,9))", + "operation": "add_assumption(sudoku(2,7,9))", } ], "children": [], @@ -49372,7 +49372,7 @@ def post_assumption_6(cls): { "id": "m(6,5)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(6,5,any))", + "operation": "remove_assumption_signature(sudoku(6,5,any))", } ], "children": [ @@ -49391,7 +49391,7 @@ def post_assumption_6(cls): { "id": "mi(6,5,9)", "action": "click", - "policy": "add_assumption(sudoku(6,5,9))", + "operation": "add_assumption(sudoku(6,5,9))", } ], "children": [], @@ -49437,7 +49437,7 @@ def post_assumption_6(cls): { "id": "m(4,1)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(4,1,any))", + "operation": "remove_assumption_signature(sudoku(4,1,any))", } ], "children": [ @@ -49456,7 +49456,7 @@ def post_assumption_6(cls): { "id": "mi(4,1,9)", "action": "click", - "policy": "add_assumption(sudoku(4,1,9))", + "operation": "add_assumption(sudoku(4,1,9))", } ], "children": [], @@ -49502,7 +49502,7 @@ def post_assumption_6(cls): { "id": "m(2,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(2,9,any))", + "operation": "remove_assumption_signature(sudoku(2,9,any))", } ], "children": [ @@ -49521,7 +49521,7 @@ def post_assumption_6(cls): { "id": "mi(2,9,8)", "action": "click", - "policy": "add_assumption(sudoku(2,9,8))", + "operation": "add_assumption(sudoku(2,9,8))", } ], "children": [], @@ -49567,7 +49567,7 @@ def post_assumption_6(cls): { "id": "m(8,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(8,8,any))", + "operation": "remove_assumption_signature(sudoku(8,8,any))", } ], "children": [ @@ -49586,7 +49586,7 @@ def post_assumption_6(cls): { "id": "mi(8,8,8)", "action": "click", - "policy": "add_assumption(sudoku(8,8,8))", + "operation": "add_assumption(sudoku(8,8,8))", } ], "children": [], @@ -49632,7 +49632,7 @@ def post_assumption_6(cls): { "id": "m(9,4)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(9,4,any))", + "operation": "remove_assumption_signature(sudoku(9,4,any))", } ], "children": [ @@ -49651,7 +49651,7 @@ def post_assumption_6(cls): { "id": "mi(9,4,8)", "action": "click", - "policy": "add_assumption(sudoku(9,4,8))", + "operation": "add_assumption(sudoku(9,4,8))", } ], "children": [], @@ -49697,7 +49697,7 @@ def post_assumption_6(cls): { "id": "m(1,3)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(1,3,any))", + "operation": "remove_assumption_signature(sudoku(1,3,any))", } ], "children": [ @@ -49716,7 +49716,7 @@ def post_assumption_6(cls): { "id": "mi(1,3,8)", "action": "click", - "policy": "add_assumption(sudoku(1,3,8))", + "operation": "add_assumption(sudoku(1,3,8))", } ], "children": [], @@ -49762,7 +49762,7 @@ def post_assumption_6(cls): { "id": "m(7,2)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(7,2,any))", + "operation": "remove_assumption_signature(sudoku(7,2,any))", } ], "children": [ @@ -49781,7 +49781,7 @@ def post_assumption_6(cls): { "id": "mi(7,2,8)", "action": "click", - "policy": "add_assumption(sudoku(7,2,8))", + "operation": "add_assumption(sudoku(7,2,8))", } ], "children": [], @@ -49827,7 +49827,7 @@ def post_assumption_6(cls): { "id": "m(9,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(9,9,any))", + "operation": "remove_assumption_signature(sudoku(9,9,any))", } ], "children": [ @@ -49846,7 +49846,7 @@ def post_assumption_6(cls): { "id": "mi(9,9,7)", "action": "click", - "policy": "add_assumption(sudoku(9,9,7))", + "operation": "add_assumption(sudoku(9,9,7))", } ], "children": [], @@ -49892,7 +49892,7 @@ def post_assumption_6(cls): { "id": "m(2,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(2,8,any))", + "operation": "remove_assumption_signature(sudoku(2,8,any))", } ], "children": [ @@ -49911,7 +49911,7 @@ def post_assumption_6(cls): { "id": "mi(2,8,7)", "action": "click", - "policy": "add_assumption(sudoku(2,8,7))", + "operation": "add_assumption(sudoku(2,8,7))", } ], "children": [], @@ -49957,7 +49957,7 @@ def post_assumption_6(cls): { "id": "m(4,6)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(4,6,any))", + "operation": "remove_assumption_signature(sudoku(4,6,any))", } ], "children": [ @@ -49976,7 +49976,7 @@ def post_assumption_6(cls): { "id": "mi(4,6,7)", "action": "click", - "policy": "add_assumption(sudoku(4,6,7))", + "operation": "add_assumption(sudoku(4,6,7))", } ], "children": [], @@ -50022,7 +50022,7 @@ def post_assumption_6(cls): { "id": "m(3,1)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(3,1,any))", + "operation": "remove_assumption_signature(sudoku(3,1,any))", } ], "children": [ @@ -50041,7 +50041,7 @@ def post_assumption_6(cls): { "id": "mi(3,1,7)", "action": "click", - "policy": "add_assumption(sudoku(3,1,7))", + "operation": "add_assumption(sudoku(3,1,7))", } ], "children": [], @@ -50087,7 +50087,7 @@ def post_assumption_6(cls): { "id": "m(7,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(7,9,any))", + "operation": "remove_assumption_signature(sudoku(7,9,any))", } ], "children": [ @@ -50106,7 +50106,7 @@ def post_assumption_6(cls): { "id": "mi(7,9,6)", "action": "click", - "policy": "add_assumption(sudoku(7,9,6))", + "operation": "add_assumption(sudoku(7,9,6))", } ], "children": [], @@ -50152,7 +50152,7 @@ def post_assumption_6(cls): { "id": "m(4,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(4,8,any))", + "operation": "remove_assumption_signature(sudoku(4,8,any))", } ], "children": [ @@ -50171,7 +50171,7 @@ def post_assumption_6(cls): { "id": "mi(4,8,6)", "action": "click", - "policy": "add_assumption(sudoku(4,8,6))", + "operation": "add_assumption(sudoku(4,8,6))", } ], "children": [], @@ -50217,7 +50217,7 @@ def post_assumption_6(cls): { "id": "m(5,5)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(5,5,any))", + "operation": "remove_assumption_signature(sudoku(5,5,any))", } ], "children": [ @@ -50236,7 +50236,7 @@ def post_assumption_6(cls): { "id": "mi(5,5,6)", "action": "click", - "policy": "add_assumption(sudoku(5,5,6))", + "operation": "add_assumption(sudoku(5,5,6))", } ], "children": [], @@ -50282,7 +50282,7 @@ def post_assumption_6(cls): { "id": "m(3,2)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(3,2,any))", + "operation": "remove_assumption_signature(sudoku(3,2,any))", } ], "children": [ @@ -50301,7 +50301,7 @@ def post_assumption_6(cls): { "id": "mi(3,2,6)", "action": "click", - "policy": "add_assumption(sudoku(3,2,6))", + "operation": "add_assumption(sudoku(3,2,6))", } ], "children": [], @@ -50347,7 +50347,7 @@ def post_assumption_6(cls): { "id": "m(4,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(4,9,any))", + "operation": "remove_assumption_signature(sudoku(4,9,any))", } ], "children": [ @@ -50366,7 +50366,7 @@ def post_assumption_6(cls): { "id": "mi(4,9,5)", "action": "click", - "policy": "add_assumption(sudoku(4,9,5))", + "operation": "add_assumption(sudoku(4,9,5))", } ], "children": [], @@ -50412,7 +50412,7 @@ def post_assumption_6(cls): { "id": "m(1,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(1,8,any))", + "operation": "remove_assumption_signature(sudoku(1,8,any))", } ], "children": [ @@ -50431,7 +50431,7 @@ def post_assumption_6(cls): { "id": "mi(1,8,5)", "action": "click", - "policy": "add_assumption(sudoku(1,8,5))", + "operation": "add_assumption(sudoku(1,8,5))", } ], "children": [], @@ -50477,7 +50477,7 @@ def post_assumption_6(cls): { "id": "m(8,7)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(8,7,any))", + "operation": "remove_assumption_signature(sudoku(8,7,any))", } ], "children": [ @@ -50496,7 +50496,7 @@ def post_assumption_6(cls): { "id": "mi(8,7,5)", "action": "click", - "policy": "add_assumption(sudoku(8,7,5))", + "operation": "add_assumption(sudoku(8,7,5))", } ], "children": [], @@ -50542,7 +50542,7 @@ def post_assumption_6(cls): { "id": "m(5,6)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(5,6,any))", + "operation": "remove_assumption_signature(sudoku(5,6,any))", } ], "children": [ @@ -50561,7 +50561,7 @@ def post_assumption_6(cls): { "id": "mi(5,6,5)", "action": "click", - "policy": "add_assumption(sudoku(5,6,5))", + "operation": "add_assumption(sudoku(5,6,5))", } ], "children": [], @@ -50607,7 +50607,7 @@ def post_assumption_6(cls): { "id": "m(3,4)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(3,4,any))", + "operation": "remove_assumption_signature(sudoku(3,4,any))", } ], "children": [ @@ -50626,7 +50626,7 @@ def post_assumption_6(cls): { "id": "mi(3,4,5)", "action": "click", - "policy": "add_assumption(sudoku(3,4,5))", + "operation": "add_assumption(sudoku(3,4,5))", } ], "children": [], @@ -50672,7 +50672,7 @@ def post_assumption_6(cls): { "id": "m(2,2)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(2,2,any))", + "operation": "remove_assumption_signature(sudoku(2,2,any))", } ], "children": [ @@ -50691,7 +50691,7 @@ def post_assumption_6(cls): { "id": "mi(2,2,5)", "action": "click", - "policy": "add_assumption(sudoku(2,2,5))", + "operation": "add_assumption(sudoku(2,2,5))", } ], "children": [], @@ -50737,7 +50737,7 @@ def post_assumption_6(cls): { "id": "m(6,1)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(6,1,any))", + "operation": "remove_assumption_signature(sudoku(6,1,any))", } ], "children": [ @@ -50756,7 +50756,7 @@ def post_assumption_6(cls): { "id": "mi(6,1,5)", "action": "click", - "policy": "add_assumption(sudoku(6,1,5))", + "operation": "add_assumption(sudoku(6,1,5))", } ], "children": [], @@ -50802,7 +50802,7 @@ def post_assumption_6(cls): { "id": "m(3,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(3,9,any))", + "operation": "remove_assumption_signature(sudoku(3,9,any))", } ], "children": [ @@ -50821,7 +50821,7 @@ def post_assumption_6(cls): { "id": "mi(3,9,4)", "action": "click", - "policy": "add_assumption(sudoku(3,9,4))", + "operation": "add_assumption(sudoku(3,9,4))", } ], "children": [], @@ -50867,7 +50867,7 @@ def post_assumption_6(cls): { "id": "m(6,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(6,8,any))", + "operation": "remove_assumption_signature(sudoku(6,8,any))", } ], "children": [ @@ -50886,7 +50886,7 @@ def post_assumption_6(cls): { "id": "mi(6,8,4)", "action": "click", - "policy": "add_assumption(sudoku(6,8,4))", + "operation": "add_assumption(sudoku(6,8,4))", } ], "children": [], @@ -50932,7 +50932,7 @@ def post_assumption_6(cls): { "id": "m(9,7)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(9,7,any))", + "operation": "remove_assumption_signature(sudoku(9,7,any))", } ], "children": [ @@ -50951,7 +50951,7 @@ def post_assumption_6(cls): { "id": "mi(9,7,4)", "action": "click", - "policy": "add_assumption(sudoku(9,7,4))", + "operation": "add_assumption(sudoku(9,7,4))", } ], "children": [], @@ -50997,7 +50997,7 @@ def post_assumption_6(cls): { "id": "m(1,5)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(1,5,any))", + "operation": "remove_assumption_signature(sudoku(1,5,any))", } ], "children": [ @@ -51016,7 +51016,7 @@ def post_assumption_6(cls): { "id": "mi(1,5,4)", "action": "click", - "policy": "add_assumption(sudoku(1,5,4))", + "operation": "add_assumption(sudoku(1,5,4))", } ], "children": [], @@ -51062,7 +51062,7 @@ def post_assumption_6(cls): { "id": "m(2,3)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(2,3,any))", + "operation": "remove_assumption_signature(sudoku(2,3,any))", } ], "children": [ @@ -51081,7 +51081,7 @@ def post_assumption_6(cls): { "id": "mi(2,3,4)", "action": "click", - "policy": "add_assumption(sudoku(2,3,4))", + "operation": "add_assumption(sudoku(2,3,4))", } ], "children": [], @@ -51127,7 +51127,7 @@ def post_assumption_6(cls): { "id": "m(5,2)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(5,2,any))", + "operation": "remove_assumption_signature(sudoku(5,2,any))", } ], "children": [ @@ -51146,7 +51146,7 @@ def post_assumption_6(cls): { "id": "mi(5,2,4)", "action": "click", - "policy": "add_assumption(sudoku(5,2,4))", + "operation": "add_assumption(sudoku(5,2,4))", } ], "children": [], @@ -51192,7 +51192,7 @@ def post_assumption_6(cls): { "id": "m(5,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(5,9,any))", + "operation": "remove_assumption_signature(sudoku(5,9,any))", } ], "children": [ @@ -51211,7 +51211,7 @@ def post_assumption_6(cls): { "id": "mi(5,9,3)", "action": "click", - "policy": "add_assumption(sudoku(5,9,3))", + "operation": "add_assumption(sudoku(5,9,3))", } ], "children": [], @@ -51257,7 +51257,7 @@ def post_assumption_6(cls): { "id": "m(3,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(3,8,any))", + "operation": "remove_assumption_signature(sudoku(3,8,any))", } ], "children": [ @@ -51276,7 +51276,7 @@ def post_assumption_6(cls): { "id": "mi(3,8,3)", "action": "click", - "policy": "add_assumption(sudoku(3,8,3))", + "operation": "add_assumption(sudoku(3,8,3))", } ], "children": [], @@ -51322,7 +51322,7 @@ def post_assumption_6(cls): { "id": "m(7,7)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(7,7,any))", + "operation": "remove_assumption_signature(sudoku(7,7,any))", } ], "children": [ @@ -51341,7 +51341,7 @@ def post_assumption_6(cls): { "id": "mi(7,7,3)", "action": "click", - "policy": "add_assumption(sudoku(7,7,3))", + "operation": "add_assumption(sudoku(7,7,3))", } ], "children": [], @@ -51387,7 +51387,7 @@ def post_assumption_6(cls): { "id": "m(6,6)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(6,6,any))", + "operation": "remove_assumption_signature(sudoku(6,6,any))", } ], "children": [ @@ -51406,7 +51406,7 @@ def post_assumption_6(cls): { "id": "mi(6,6,3)", "action": "click", - "policy": "add_assumption(sudoku(6,6,3))", + "operation": "add_assumption(sudoku(6,6,3))", } ], "children": [], @@ -51452,7 +51452,7 @@ def post_assumption_6(cls): { "id": "m(1,2)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(1,2,any))", + "operation": "remove_assumption_signature(sudoku(1,2,any))", } ], "children": [ @@ -51471,7 +51471,7 @@ def post_assumption_6(cls): { "id": "mi(1,2,3)", "action": "click", - "policy": "add_assumption(sudoku(1,2,3))", + "operation": "add_assumption(sudoku(1,2,3))", } ], "children": [], @@ -51517,7 +51517,7 @@ def post_assumption_6(cls): { "id": "m(9,1)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(9,1,any))", + "operation": "remove_assumption_signature(sudoku(9,1,any))", } ], "children": [ @@ -51536,7 +51536,7 @@ def post_assumption_6(cls): { "id": "mi(9,1,3)", "action": "click", - "policy": "add_assumption(sudoku(9,1,3))", + "operation": "add_assumption(sudoku(9,1,3))", } ], "children": [], @@ -51582,7 +51582,7 @@ def post_assumption_6(cls): { "id": "m(1,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(1,9,any))", + "operation": "remove_assumption_signature(sudoku(1,9,any))", } ], "children": [ @@ -51601,7 +51601,7 @@ def post_assumption_6(cls): { "id": "mi(1,9,2)", "action": "click", - "policy": "add_assumption(sudoku(1,9,2))", + "operation": "add_assumption(sudoku(1,9,2))", } ], "children": [], @@ -51647,7 +51647,7 @@ def post_assumption_6(cls): { "id": "m(9,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(9,8,any))", + "operation": "remove_assumption_signature(sudoku(9,8,any))", } ], "children": [ @@ -51666,7 +51666,7 @@ def post_assumption_6(cls): { "id": "mi(9,8,2)", "action": "click", - "policy": "add_assumption(sudoku(9,8,2))", + "operation": "add_assumption(sudoku(9,8,2))", } ], "children": [], @@ -51712,7 +51712,7 @@ def post_assumption_6(cls): { "id": "m(4,7)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(4,7,any))", + "operation": "remove_assumption_signature(sudoku(4,7,any))", } ], "children": [ @@ -51731,7 +51731,7 @@ def post_assumption_6(cls): { "id": "mi(4,7,2)", "action": "click", - "policy": "add_assumption(sudoku(4,7,2))", + "operation": "add_assumption(sudoku(4,7,2))", } ], "children": [], @@ -51777,7 +51777,7 @@ def post_assumption_6(cls): { "id": "m(7,6)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(7,6,any))", + "operation": "remove_assumption_signature(sudoku(7,6,any))", } ], "children": [ @@ -51796,7 +51796,7 @@ def post_assumption_6(cls): { "id": "mi(7,6,2)", "action": "click", - "policy": "add_assumption(sudoku(7,6,2))", + "operation": "add_assumption(sudoku(7,6,2))", } ], "children": [], @@ -51842,7 +51842,7 @@ def post_assumption_6(cls): { "id": "m(6,4)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(6,4,any))", + "operation": "remove_assumption_signature(sudoku(6,4,any))", } ], "children": [ @@ -51861,7 +51861,7 @@ def post_assumption_6(cls): { "id": "mi(6,4,2)", "action": "click", - "policy": "add_assumption(sudoku(6,4,2))", + "operation": "add_assumption(sudoku(6,4,2))", } ], "children": [], @@ -51907,7 +51907,7 @@ def post_assumption_6(cls): { "id": "m(5,3)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(5,3,any))", + "operation": "remove_assumption_signature(sudoku(5,3,any))", } ], "children": [ @@ -51926,7 +51926,7 @@ def post_assumption_6(cls): { "id": "mi(5,3,2)", "action": "click", - "policy": "add_assumption(sudoku(5,3,2))", + "operation": "add_assumption(sudoku(5,3,2))", } ], "children": [], @@ -51972,7 +51972,7 @@ def post_assumption_6(cls): { "id": "m(2,1)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(2,1,any))", + "operation": "remove_assumption_signature(sudoku(2,1,any))", } ], "children": [ @@ -51991,7 +51991,7 @@ def post_assumption_6(cls): { "id": "mi(2,1,2)", "action": "click", - "policy": "add_assumption(sudoku(2,1,2))", + "operation": "add_assumption(sudoku(2,1,2))", } ], "children": [], @@ -52037,7 +52037,7 @@ def post_assumption_6(cls): { "id": "m(6,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(6,9,any))", + "operation": "remove_assumption_signature(sudoku(6,9,any))", } ], "children": [ @@ -52056,7 +52056,7 @@ def post_assumption_6(cls): { "id": "mi(6,9,1)", "action": "click", - "policy": "add_assumption(sudoku(6,9,1))", + "operation": "add_assumption(sudoku(6,9,1))", } ], "children": [], @@ -52102,7 +52102,7 @@ def post_assumption_6(cls): { "id": "m(7,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(7,8,any))", + "operation": "remove_assumption_signature(sudoku(7,8,any))", } ], "children": [ @@ -52121,7 +52121,7 @@ def post_assumption_6(cls): { "id": "mi(7,8,1)", "action": "click", - "policy": "add_assumption(sudoku(7,8,1))", + "operation": "add_assumption(sudoku(7,8,1))", } ], "children": [], @@ -52167,7 +52167,7 @@ def post_assumption_6(cls): { "id": "m(3,7)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(3,7,any))", + "operation": "remove_assumption_signature(sudoku(3,7,any))", } ], "children": [ @@ -52186,7 +52186,7 @@ def post_assumption_6(cls): { "id": "mi(3,7,1)", "action": "click", - "policy": "add_assumption(sudoku(3,7,1))", + "operation": "add_assumption(sudoku(3,7,1))", } ], "children": [], @@ -52232,7 +52232,7 @@ def post_assumption_6(cls): { "id": "m(8,5)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(8,5,any))", + "operation": "remove_assumption_signature(sudoku(8,5,any))", } ], "children": [ @@ -52251,7 +52251,7 @@ def post_assumption_6(cls): { "id": "mi(8,5,1)", "action": "click", - "policy": "add_assumption(sudoku(8,5,1))", + "operation": "add_assumption(sudoku(8,5,1))", } ], "children": [], @@ -52297,7 +52297,7 @@ def post_assumption_6(cls): { "id": "m(5,4)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(5,4,any))", + "operation": "remove_assumption_signature(sudoku(5,4,any))", } ], "children": [ @@ -52316,7 +52316,7 @@ def post_assumption_6(cls): { "id": "mi(5,4,1)", "action": "click", - "policy": "add_assumption(sudoku(5,4,1))", + "operation": "add_assumption(sudoku(5,4,1))", } ], "children": [], @@ -52362,7 +52362,7 @@ def post_assumption_6(cls): { "id": "m(9,3)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(9,3,any))", + "operation": "remove_assumption_signature(sudoku(9,3,any))", } ], "children": [ @@ -52381,7 +52381,7 @@ def post_assumption_6(cls): { "id": "mi(9,3,1)", "action": "click", - "policy": "add_assumption(sudoku(9,3,1))", + "operation": "add_assumption(sudoku(9,3,1))", } ], "children": [], @@ -52427,7 +52427,7 @@ def post_assumption_6(cls): { "id": "m(4,2)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(4,2,any))", + "operation": "remove_assumption_signature(sudoku(4,2,any))", } ], "children": [ @@ -52446,7 +52446,7 @@ def post_assumption_6(cls): { "id": "mi(4,2,1)", "action": "click", - "policy": "add_assumption(sudoku(4,2,1))", + "operation": "add_assumption(sudoku(4,2,1))", } ], "children": [], @@ -52492,7 +52492,7 @@ def post_assumption_6(cls): { "id": "m(1,1)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(1,1,any))", + "operation": "remove_assumption_signature(sudoku(1,1,any))", } ], "children": [ @@ -52511,7 +52511,7 @@ def post_assumption_6(cls): { "id": "mi(1,1,1)", "action": "click", - "policy": "add_assumption(sudoku(1,1,1))", + "operation": "add_assumption(sudoku(1,1,1))", } ], "children": [], @@ -52560,7 +52560,7 @@ def post_assumption_6(cls): { "id": "ms_select", "action": "click", - "policy": "select", + "operation": "select", } ], "children": [], @@ -52585,7 +52585,7 @@ def post_assumption_6(cls): { "id": "ms_next", "action": "click", - "policy": "next_solution", + "operation": "next_solution", } ], "children": [], @@ -52610,7 +52610,7 @@ def post_assumption_6(cls): { "id": "ms_clear", "action": "click", - "policy": "clear_assumptions", + "operation": "clear_assumptions", } ], "children": [], @@ -53817,7 +53817,7 @@ def post_assumption_7(cls): { "id": "m(8,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(8,9,any))", + "operation": "remove_assumption_signature(sudoku(8,9,any))", } ], "children": [ @@ -53836,7 +53836,7 @@ def post_assumption_7(cls): { "id": "mi(8,9,9)", "action": "click", - "policy": "add_assumption(sudoku(8,9,9))", + "operation": "add_assumption(sudoku(8,9,9))", } ], "children": [], @@ -53882,7 +53882,7 @@ def post_assumption_7(cls): { "id": "m(5,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(5,8,any))", + "operation": "remove_assumption_signature(sudoku(5,8,any))", } ], "children": [ @@ -53901,7 +53901,7 @@ def post_assumption_7(cls): { "id": "mi(5,8,9)", "action": "click", - "policy": "add_assumption(sudoku(5,8,9))", + "operation": "add_assumption(sudoku(5,8,9))", } ], "children": [], @@ -53947,7 +53947,7 @@ def post_assumption_7(cls): { "id": "m(2,7)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(2,7,any))", + "operation": "remove_assumption_signature(sudoku(2,7,any))", } ], "children": [ @@ -53966,7 +53966,7 @@ def post_assumption_7(cls): { "id": "mi(2,7,9)", "action": "click", - "policy": "add_assumption(sudoku(2,7,9))", + "operation": "add_assumption(sudoku(2,7,9))", } ], "children": [], @@ -54012,7 +54012,7 @@ def post_assumption_7(cls): { "id": "m(6,5)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(6,5,any))", + "operation": "remove_assumption_signature(sudoku(6,5,any))", } ], "children": [ @@ -54031,7 +54031,7 @@ def post_assumption_7(cls): { "id": "mi(6,5,9)", "action": "click", - "policy": "add_assumption(sudoku(6,5,9))", + "operation": "add_assumption(sudoku(6,5,9))", } ], "children": [], @@ -54077,7 +54077,7 @@ def post_assumption_7(cls): { "id": "m(4,1)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(4,1,any))", + "operation": "remove_assumption_signature(sudoku(4,1,any))", } ], "children": [ @@ -54096,7 +54096,7 @@ def post_assumption_7(cls): { "id": "mi(4,1,9)", "action": "click", - "policy": "add_assumption(sudoku(4,1,9))", + "operation": "add_assumption(sudoku(4,1,9))", } ], "children": [], @@ -54142,7 +54142,7 @@ def post_assumption_7(cls): { "id": "m(2,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(2,9,any))", + "operation": "remove_assumption_signature(sudoku(2,9,any))", } ], "children": [ @@ -54161,7 +54161,7 @@ def post_assumption_7(cls): { "id": "mi(2,9,8)", "action": "click", - "policy": "add_assumption(sudoku(2,9,8))", + "operation": "add_assumption(sudoku(2,9,8))", } ], "children": [], @@ -54207,7 +54207,7 @@ def post_assumption_7(cls): { "id": "m(8,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(8,8,any))", + "operation": "remove_assumption_signature(sudoku(8,8,any))", } ], "children": [ @@ -54226,7 +54226,7 @@ def post_assumption_7(cls): { "id": "mi(8,8,8)", "action": "click", - "policy": "add_assumption(sudoku(8,8,8))", + "operation": "add_assumption(sudoku(8,8,8))", } ], "children": [], @@ -54272,7 +54272,7 @@ def post_assumption_7(cls): { "id": "m(9,4)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(9,4,any))", + "operation": "remove_assumption_signature(sudoku(9,4,any))", } ], "children": [ @@ -54291,7 +54291,7 @@ def post_assumption_7(cls): { "id": "mi(9,4,8)", "action": "click", - "policy": "add_assumption(sudoku(9,4,8))", + "operation": "add_assumption(sudoku(9,4,8))", } ], "children": [], @@ -54337,7 +54337,7 @@ def post_assumption_7(cls): { "id": "m(1,3)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(1,3,any))", + "operation": "remove_assumption_signature(sudoku(1,3,any))", } ], "children": [ @@ -54356,7 +54356,7 @@ def post_assumption_7(cls): { "id": "mi(1,3,8)", "action": "click", - "policy": "add_assumption(sudoku(1,3,8))", + "operation": "add_assumption(sudoku(1,3,8))", } ], "children": [], @@ -54402,7 +54402,7 @@ def post_assumption_7(cls): { "id": "m(7,2)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(7,2,any))", + "operation": "remove_assumption_signature(sudoku(7,2,any))", } ], "children": [ @@ -54421,7 +54421,7 @@ def post_assumption_7(cls): { "id": "mi(7,2,8)", "action": "click", - "policy": "add_assumption(sudoku(7,2,8))", + "operation": "add_assumption(sudoku(7,2,8))", } ], "children": [], @@ -54467,7 +54467,7 @@ def post_assumption_7(cls): { "id": "m(9,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(9,9,any))", + "operation": "remove_assumption_signature(sudoku(9,9,any))", } ], "children": [ @@ -54486,7 +54486,7 @@ def post_assumption_7(cls): { "id": "mi(9,9,7)", "action": "click", - "policy": "add_assumption(sudoku(9,9,7))", + "operation": "add_assumption(sudoku(9,9,7))", } ], "children": [], @@ -54532,7 +54532,7 @@ def post_assumption_7(cls): { "id": "m(2,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(2,8,any))", + "operation": "remove_assumption_signature(sudoku(2,8,any))", } ], "children": [ @@ -54551,7 +54551,7 @@ def post_assumption_7(cls): { "id": "mi(2,8,7)", "action": "click", - "policy": "add_assumption(sudoku(2,8,7))", + "operation": "add_assumption(sudoku(2,8,7))", } ], "children": [], @@ -54597,7 +54597,7 @@ def post_assumption_7(cls): { "id": "m(4,6)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(4,6,any))", + "operation": "remove_assumption_signature(sudoku(4,6,any))", } ], "children": [ @@ -54616,7 +54616,7 @@ def post_assumption_7(cls): { "id": "mi(4,6,7)", "action": "click", - "policy": "add_assumption(sudoku(4,6,7))", + "operation": "add_assumption(sudoku(4,6,7))", } ], "children": [], @@ -54662,7 +54662,7 @@ def post_assumption_7(cls): { "id": "m(3,1)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(3,1,any))", + "operation": "remove_assumption_signature(sudoku(3,1,any))", } ], "children": [ @@ -54681,7 +54681,7 @@ def post_assumption_7(cls): { "id": "mi(3,1,7)", "action": "click", - "policy": "add_assumption(sudoku(3,1,7))", + "operation": "add_assumption(sudoku(3,1,7))", } ], "children": [], @@ -54727,7 +54727,7 @@ def post_assumption_7(cls): { "id": "m(7,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(7,9,any))", + "operation": "remove_assumption_signature(sudoku(7,9,any))", } ], "children": [ @@ -54746,7 +54746,7 @@ def post_assumption_7(cls): { "id": "mi(7,9,6)", "action": "click", - "policy": "add_assumption(sudoku(7,9,6))", + "operation": "add_assumption(sudoku(7,9,6))", } ], "children": [], @@ -54792,7 +54792,7 @@ def post_assumption_7(cls): { "id": "m(4,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(4,8,any))", + "operation": "remove_assumption_signature(sudoku(4,8,any))", } ], "children": [ @@ -54811,7 +54811,7 @@ def post_assumption_7(cls): { "id": "mi(4,8,6)", "action": "click", - "policy": "add_assumption(sudoku(4,8,6))", + "operation": "add_assumption(sudoku(4,8,6))", } ], "children": [], @@ -54857,7 +54857,7 @@ def post_assumption_7(cls): { "id": "m(5,5)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(5,5,any))", + "operation": "remove_assumption_signature(sudoku(5,5,any))", } ], "children": [ @@ -54876,7 +54876,7 @@ def post_assumption_7(cls): { "id": "mi(5,5,6)", "action": "click", - "policy": "add_assumption(sudoku(5,5,6))", + "operation": "add_assumption(sudoku(5,5,6))", } ], "children": [], @@ -54922,7 +54922,7 @@ def post_assumption_7(cls): { "id": "m(3,2)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(3,2,any))", + "operation": "remove_assumption_signature(sudoku(3,2,any))", } ], "children": [ @@ -54941,7 +54941,7 @@ def post_assumption_7(cls): { "id": "mi(3,2,6)", "action": "click", - "policy": "add_assumption(sudoku(3,2,6))", + "operation": "add_assumption(sudoku(3,2,6))", } ], "children": [], @@ -54987,7 +54987,7 @@ def post_assumption_7(cls): { "id": "m(4,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(4,9,any))", + "operation": "remove_assumption_signature(sudoku(4,9,any))", } ], "children": [ @@ -55006,7 +55006,7 @@ def post_assumption_7(cls): { "id": "mi(4,9,5)", "action": "click", - "policy": "add_assumption(sudoku(4,9,5))", + "operation": "add_assumption(sudoku(4,9,5))", } ], "children": [], @@ -55052,7 +55052,7 @@ def post_assumption_7(cls): { "id": "m(1,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(1,8,any))", + "operation": "remove_assumption_signature(sudoku(1,8,any))", } ], "children": [ @@ -55071,7 +55071,7 @@ def post_assumption_7(cls): { "id": "mi(1,8,5)", "action": "click", - "policy": "add_assumption(sudoku(1,8,5))", + "operation": "add_assumption(sudoku(1,8,5))", } ], "children": [], @@ -55117,7 +55117,7 @@ def post_assumption_7(cls): { "id": "m(8,7)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(8,7,any))", + "operation": "remove_assumption_signature(sudoku(8,7,any))", } ], "children": [ @@ -55136,7 +55136,7 @@ def post_assumption_7(cls): { "id": "mi(8,7,5)", "action": "click", - "policy": "add_assumption(sudoku(8,7,5))", + "operation": "add_assumption(sudoku(8,7,5))", } ], "children": [], @@ -55182,7 +55182,7 @@ def post_assumption_7(cls): { "id": "m(5,6)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(5,6,any))", + "operation": "remove_assumption_signature(sudoku(5,6,any))", } ], "children": [ @@ -55201,7 +55201,7 @@ def post_assumption_7(cls): { "id": "mi(5,6,5)", "action": "click", - "policy": "add_assumption(sudoku(5,6,5))", + "operation": "add_assumption(sudoku(5,6,5))", } ], "children": [], @@ -55247,7 +55247,7 @@ def post_assumption_7(cls): { "id": "m(3,4)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(3,4,any))", + "operation": "remove_assumption_signature(sudoku(3,4,any))", } ], "children": [ @@ -55266,7 +55266,7 @@ def post_assumption_7(cls): { "id": "mi(3,4,5)", "action": "click", - "policy": "add_assumption(sudoku(3,4,5))", + "operation": "add_assumption(sudoku(3,4,5))", } ], "children": [], @@ -55312,7 +55312,7 @@ def post_assumption_7(cls): { "id": "m(2,2)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(2,2,any))", + "operation": "remove_assumption_signature(sudoku(2,2,any))", } ], "children": [ @@ -55331,7 +55331,7 @@ def post_assumption_7(cls): { "id": "mi(2,2,5)", "action": "click", - "policy": "add_assumption(sudoku(2,2,5))", + "operation": "add_assumption(sudoku(2,2,5))", } ], "children": [], @@ -55377,7 +55377,7 @@ def post_assumption_7(cls): { "id": "m(6,1)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(6,1,any))", + "operation": "remove_assumption_signature(sudoku(6,1,any))", } ], "children": [ @@ -55396,7 +55396,7 @@ def post_assumption_7(cls): { "id": "mi(6,1,5)", "action": "click", - "policy": "add_assumption(sudoku(6,1,5))", + "operation": "add_assumption(sudoku(6,1,5))", } ], "children": [], @@ -55442,7 +55442,7 @@ def post_assumption_7(cls): { "id": "m(3,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(3,9,any))", + "operation": "remove_assumption_signature(sudoku(3,9,any))", } ], "children": [ @@ -55461,7 +55461,7 @@ def post_assumption_7(cls): { "id": "mi(3,9,4)", "action": "click", - "policy": "add_assumption(sudoku(3,9,4))", + "operation": "add_assumption(sudoku(3,9,4))", } ], "children": [], @@ -55507,7 +55507,7 @@ def post_assumption_7(cls): { "id": "m(6,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(6,8,any))", + "operation": "remove_assumption_signature(sudoku(6,8,any))", } ], "children": [ @@ -55526,7 +55526,7 @@ def post_assumption_7(cls): { "id": "mi(6,8,4)", "action": "click", - "policy": "add_assumption(sudoku(6,8,4))", + "operation": "add_assumption(sudoku(6,8,4))", } ], "children": [], @@ -55572,7 +55572,7 @@ def post_assumption_7(cls): { "id": "m(9,7)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(9,7,any))", + "operation": "remove_assumption_signature(sudoku(9,7,any))", } ], "children": [ @@ -55591,7 +55591,7 @@ def post_assumption_7(cls): { "id": "mi(9,7,4)", "action": "click", - "policy": "add_assumption(sudoku(9,7,4))", + "operation": "add_assumption(sudoku(9,7,4))", } ], "children": [], @@ -55637,7 +55637,7 @@ def post_assumption_7(cls): { "id": "m(1,5)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(1,5,any))", + "operation": "remove_assumption_signature(sudoku(1,5,any))", } ], "children": [ @@ -55656,7 +55656,7 @@ def post_assumption_7(cls): { "id": "mi(1,5,4)", "action": "click", - "policy": "add_assumption(sudoku(1,5,4))", + "operation": "add_assumption(sudoku(1,5,4))", } ], "children": [], @@ -55702,7 +55702,7 @@ def post_assumption_7(cls): { "id": "m(2,3)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(2,3,any))", + "operation": "remove_assumption_signature(sudoku(2,3,any))", } ], "children": [ @@ -55721,7 +55721,7 @@ def post_assumption_7(cls): { "id": "mi(2,3,4)", "action": "click", - "policy": "add_assumption(sudoku(2,3,4))", + "operation": "add_assumption(sudoku(2,3,4))", } ], "children": [], @@ -55767,7 +55767,7 @@ def post_assumption_7(cls): { "id": "m(5,2)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(5,2,any))", + "operation": "remove_assumption_signature(sudoku(5,2,any))", } ], "children": [ @@ -55786,7 +55786,7 @@ def post_assumption_7(cls): { "id": "mi(5,2,4)", "action": "click", - "policy": "add_assumption(sudoku(5,2,4))", + "operation": "add_assumption(sudoku(5,2,4))", } ], "children": [], @@ -55832,7 +55832,7 @@ def post_assumption_7(cls): { "id": "m(5,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(5,9,any))", + "operation": "remove_assumption_signature(sudoku(5,9,any))", } ], "children": [ @@ -55851,7 +55851,7 @@ def post_assumption_7(cls): { "id": "mi(5,9,3)", "action": "click", - "policy": "add_assumption(sudoku(5,9,3))", + "operation": "add_assumption(sudoku(5,9,3))", } ], "children": [], @@ -55897,7 +55897,7 @@ def post_assumption_7(cls): { "id": "m(3,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(3,8,any))", + "operation": "remove_assumption_signature(sudoku(3,8,any))", } ], "children": [ @@ -55916,7 +55916,7 @@ def post_assumption_7(cls): { "id": "mi(3,8,3)", "action": "click", - "policy": "add_assumption(sudoku(3,8,3))", + "operation": "add_assumption(sudoku(3,8,3))", } ], "children": [], @@ -55962,7 +55962,7 @@ def post_assumption_7(cls): { "id": "m(7,7)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(7,7,any))", + "operation": "remove_assumption_signature(sudoku(7,7,any))", } ], "children": [ @@ -55981,7 +55981,7 @@ def post_assumption_7(cls): { "id": "mi(7,7,3)", "action": "click", - "policy": "add_assumption(sudoku(7,7,3))", + "operation": "add_assumption(sudoku(7,7,3))", } ], "children": [], @@ -56027,7 +56027,7 @@ def post_assumption_7(cls): { "id": "m(6,6)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(6,6,any))", + "operation": "remove_assumption_signature(sudoku(6,6,any))", } ], "children": [ @@ -56046,7 +56046,7 @@ def post_assumption_7(cls): { "id": "mi(6,6,3)", "action": "click", - "policy": "add_assumption(sudoku(6,6,3))", + "operation": "add_assumption(sudoku(6,6,3))", } ], "children": [], @@ -56092,7 +56092,7 @@ def post_assumption_7(cls): { "id": "m(1,2)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(1,2,any))", + "operation": "remove_assumption_signature(sudoku(1,2,any))", } ], "children": [ @@ -56111,7 +56111,7 @@ def post_assumption_7(cls): { "id": "mi(1,2,3)", "action": "click", - "policy": "add_assumption(sudoku(1,2,3))", + "operation": "add_assumption(sudoku(1,2,3))", } ], "children": [], @@ -56157,7 +56157,7 @@ def post_assumption_7(cls): { "id": "m(9,1)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(9,1,any))", + "operation": "remove_assumption_signature(sudoku(9,1,any))", } ], "children": [ @@ -56176,7 +56176,7 @@ def post_assumption_7(cls): { "id": "mi(9,1,3)", "action": "click", - "policy": "add_assumption(sudoku(9,1,3))", + "operation": "add_assumption(sudoku(9,1,3))", } ], "children": [], @@ -56222,7 +56222,7 @@ def post_assumption_7(cls): { "id": "m(1,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(1,9,any))", + "operation": "remove_assumption_signature(sudoku(1,9,any))", } ], "children": [ @@ -56241,7 +56241,7 @@ def post_assumption_7(cls): { "id": "mi(1,9,2)", "action": "click", - "policy": "add_assumption(sudoku(1,9,2))", + "operation": "add_assumption(sudoku(1,9,2))", } ], "children": [], @@ -56287,7 +56287,7 @@ def post_assumption_7(cls): { "id": "m(9,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(9,8,any))", + "operation": "remove_assumption_signature(sudoku(9,8,any))", } ], "children": [ @@ -56306,7 +56306,7 @@ def post_assumption_7(cls): { "id": "mi(9,8,2)", "action": "click", - "policy": "add_assumption(sudoku(9,8,2))", + "operation": "add_assumption(sudoku(9,8,2))", } ], "children": [], @@ -56352,7 +56352,7 @@ def post_assumption_7(cls): { "id": "m(4,7)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(4,7,any))", + "operation": "remove_assumption_signature(sudoku(4,7,any))", } ], "children": [ @@ -56371,7 +56371,7 @@ def post_assumption_7(cls): { "id": "mi(4,7,2)", "action": "click", - "policy": "add_assumption(sudoku(4,7,2))", + "operation": "add_assumption(sudoku(4,7,2))", } ], "children": [], @@ -56417,7 +56417,7 @@ def post_assumption_7(cls): { "id": "m(7,6)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(7,6,any))", + "operation": "remove_assumption_signature(sudoku(7,6,any))", } ], "children": [ @@ -56436,7 +56436,7 @@ def post_assumption_7(cls): { "id": "mi(7,6,2)", "action": "click", - "policy": "add_assumption(sudoku(7,6,2))", + "operation": "add_assumption(sudoku(7,6,2))", } ], "children": [], @@ -56482,7 +56482,7 @@ def post_assumption_7(cls): { "id": "m(6,4)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(6,4,any))", + "operation": "remove_assumption_signature(sudoku(6,4,any))", } ], "children": [ @@ -56501,7 +56501,7 @@ def post_assumption_7(cls): { "id": "mi(6,4,2)", "action": "click", - "policy": "add_assumption(sudoku(6,4,2))", + "operation": "add_assumption(sudoku(6,4,2))", } ], "children": [], @@ -56547,7 +56547,7 @@ def post_assumption_7(cls): { "id": "m(5,3)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(5,3,any))", + "operation": "remove_assumption_signature(sudoku(5,3,any))", } ], "children": [ @@ -56566,7 +56566,7 @@ def post_assumption_7(cls): { "id": "mi(5,3,2)", "action": "click", - "policy": "add_assumption(sudoku(5,3,2))", + "operation": "add_assumption(sudoku(5,3,2))", } ], "children": [], @@ -56612,7 +56612,7 @@ def post_assumption_7(cls): { "id": "m(2,1)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(2,1,any))", + "operation": "remove_assumption_signature(sudoku(2,1,any))", } ], "children": [ @@ -56631,7 +56631,7 @@ def post_assumption_7(cls): { "id": "mi(2,1,2)", "action": "click", - "policy": "add_assumption(sudoku(2,1,2))", + "operation": "add_assumption(sudoku(2,1,2))", } ], "children": [], @@ -56677,7 +56677,7 @@ def post_assumption_7(cls): { "id": "m(6,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(6,9,any))", + "operation": "remove_assumption_signature(sudoku(6,9,any))", } ], "children": [ @@ -56696,7 +56696,7 @@ def post_assumption_7(cls): { "id": "mi(6,9,1)", "action": "click", - "policy": "add_assumption(sudoku(6,9,1))", + "operation": "add_assumption(sudoku(6,9,1))", } ], "children": [], @@ -56742,7 +56742,7 @@ def post_assumption_7(cls): { "id": "m(7,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(7,8,any))", + "operation": "remove_assumption_signature(sudoku(7,8,any))", } ], "children": [ @@ -56761,7 +56761,7 @@ def post_assumption_7(cls): { "id": "mi(7,8,1)", "action": "click", - "policy": "add_assumption(sudoku(7,8,1))", + "operation": "add_assumption(sudoku(7,8,1))", } ], "children": [], @@ -56807,7 +56807,7 @@ def post_assumption_7(cls): { "id": "m(3,7)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(3,7,any))", + "operation": "remove_assumption_signature(sudoku(3,7,any))", } ], "children": [ @@ -56826,7 +56826,7 @@ def post_assumption_7(cls): { "id": "mi(3,7,1)", "action": "click", - "policy": "add_assumption(sudoku(3,7,1))", + "operation": "add_assumption(sudoku(3,7,1))", } ], "children": [], @@ -56872,7 +56872,7 @@ def post_assumption_7(cls): { "id": "m(8,5)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(8,5,any))", + "operation": "remove_assumption_signature(sudoku(8,5,any))", } ], "children": [ @@ -56891,7 +56891,7 @@ def post_assumption_7(cls): { "id": "mi(8,5,1)", "action": "click", - "policy": "add_assumption(sudoku(8,5,1))", + "operation": "add_assumption(sudoku(8,5,1))", } ], "children": [], @@ -56937,7 +56937,7 @@ def post_assumption_7(cls): { "id": "m(5,4)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(5,4,any))", + "operation": "remove_assumption_signature(sudoku(5,4,any))", } ], "children": [ @@ -56956,7 +56956,7 @@ def post_assumption_7(cls): { "id": "mi(5,4,1)", "action": "click", - "policy": "add_assumption(sudoku(5,4,1))", + "operation": "add_assumption(sudoku(5,4,1))", } ], "children": [], @@ -57002,7 +57002,7 @@ def post_assumption_7(cls): { "id": "m(9,3)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(9,3,any))", + "operation": "remove_assumption_signature(sudoku(9,3,any))", } ], "children": [ @@ -57021,7 +57021,7 @@ def post_assumption_7(cls): { "id": "mi(9,3,1)", "action": "click", - "policy": "add_assumption(sudoku(9,3,1))", + "operation": "add_assumption(sudoku(9,3,1))", } ], "children": [], @@ -57067,7 +57067,7 @@ def post_assumption_7(cls): { "id": "m(4,2)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(4,2,any))", + "operation": "remove_assumption_signature(sudoku(4,2,any))", } ], "children": [ @@ -57086,7 +57086,7 @@ def post_assumption_7(cls): { "id": "mi(4,2,1)", "action": "click", - "policy": "add_assumption(sudoku(4,2,1))", + "operation": "add_assumption(sudoku(4,2,1))", } ], "children": [], @@ -57132,7 +57132,7 @@ def post_assumption_7(cls): { "id": "m(1,1)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(1,1,any))", + "operation": "remove_assumption_signature(sudoku(1,1,any))", } ], "children": [ @@ -57151,7 +57151,7 @@ def post_assumption_7(cls): { "id": "mi(1,1,1)", "action": "click", - "policy": "add_assumption(sudoku(1,1,1))", + "operation": "add_assumption(sudoku(1,1,1))", } ], "children": [], @@ -57200,7 +57200,7 @@ def post_assumption_7(cls): { "id": "ms_select", "action": "click", - "policy": "select", + "operation": "select", } ], "children": [], @@ -57225,7 +57225,7 @@ def post_assumption_7(cls): { "id": "ms_next", "action": "click", - "policy": "next_solution", + "operation": "next_solution", } ], "children": [], @@ -57250,7 +57250,7 @@ def post_assumption_7(cls): { "id": "ms_clear", "action": "click", - "policy": "clear_assumptions", + "operation": "clear_assumptions", } ], "children": [], @@ -58457,7 +58457,7 @@ def post_assumption_8(cls): { "id": "m(8,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(8,9,any))", + "operation": "remove_assumption_signature(sudoku(8,9,any))", } ], "children": [ @@ -58476,7 +58476,7 @@ def post_assumption_8(cls): { "id": "mi(8,9,9)", "action": "click", - "policy": "add_assumption(sudoku(8,9,9))", + "operation": "add_assumption(sudoku(8,9,9))", } ], "children": [], @@ -58522,7 +58522,7 @@ def post_assumption_8(cls): { "id": "m(5,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(5,8,any))", + "operation": "remove_assumption_signature(sudoku(5,8,any))", } ], "children": [ @@ -58541,7 +58541,7 @@ def post_assumption_8(cls): { "id": "mi(5,8,9)", "action": "click", - "policy": "add_assumption(sudoku(5,8,9))", + "operation": "add_assumption(sudoku(5,8,9))", } ], "children": [], @@ -58587,7 +58587,7 @@ def post_assumption_8(cls): { "id": "m(2,7)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(2,7,any))", + "operation": "remove_assumption_signature(sudoku(2,7,any))", } ], "children": [ @@ -58606,7 +58606,7 @@ def post_assumption_8(cls): { "id": "mi(2,7,9)", "action": "click", - "policy": "add_assumption(sudoku(2,7,9))", + "operation": "add_assumption(sudoku(2,7,9))", } ], "children": [], @@ -58652,7 +58652,7 @@ def post_assumption_8(cls): { "id": "m(6,5)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(6,5,any))", + "operation": "remove_assumption_signature(sudoku(6,5,any))", } ], "children": [ @@ -58671,7 +58671,7 @@ def post_assumption_8(cls): { "id": "mi(6,5,9)", "action": "click", - "policy": "add_assumption(sudoku(6,5,9))", + "operation": "add_assumption(sudoku(6,5,9))", } ], "children": [], @@ -58717,7 +58717,7 @@ def post_assumption_8(cls): { "id": "m(4,1)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(4,1,any))", + "operation": "remove_assumption_signature(sudoku(4,1,any))", } ], "children": [ @@ -58736,7 +58736,7 @@ def post_assumption_8(cls): { "id": "mi(4,1,9)", "action": "click", - "policy": "add_assumption(sudoku(4,1,9))", + "operation": "add_assumption(sudoku(4,1,9))", } ], "children": [], @@ -58782,7 +58782,7 @@ def post_assumption_8(cls): { "id": "m(2,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(2,9,any))", + "operation": "remove_assumption_signature(sudoku(2,9,any))", } ], "children": [ @@ -58801,7 +58801,7 @@ def post_assumption_8(cls): { "id": "mi(2,9,8)", "action": "click", - "policy": "add_assumption(sudoku(2,9,8))", + "operation": "add_assumption(sudoku(2,9,8))", } ], "children": [], @@ -58847,7 +58847,7 @@ def post_assumption_8(cls): { "id": "m(8,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(8,8,any))", + "operation": "remove_assumption_signature(sudoku(8,8,any))", } ], "children": [ @@ -58866,7 +58866,7 @@ def post_assumption_8(cls): { "id": "mi(8,8,8)", "action": "click", - "policy": "add_assumption(sudoku(8,8,8))", + "operation": "add_assumption(sudoku(8,8,8))", } ], "children": [], @@ -58912,7 +58912,7 @@ def post_assumption_8(cls): { "id": "m(9,4)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(9,4,any))", + "operation": "remove_assumption_signature(sudoku(9,4,any))", } ], "children": [ @@ -58931,7 +58931,7 @@ def post_assumption_8(cls): { "id": "mi(9,4,8)", "action": "click", - "policy": "add_assumption(sudoku(9,4,8))", + "operation": "add_assumption(sudoku(9,4,8))", } ], "children": [], @@ -58977,7 +58977,7 @@ def post_assumption_8(cls): { "id": "m(1,3)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(1,3,any))", + "operation": "remove_assumption_signature(sudoku(1,3,any))", } ], "children": [ @@ -58996,7 +58996,7 @@ def post_assumption_8(cls): { "id": "mi(1,3,8)", "action": "click", - "policy": "add_assumption(sudoku(1,3,8))", + "operation": "add_assumption(sudoku(1,3,8))", } ], "children": [], @@ -59042,7 +59042,7 @@ def post_assumption_8(cls): { "id": "m(7,2)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(7,2,any))", + "operation": "remove_assumption_signature(sudoku(7,2,any))", } ], "children": [ @@ -59061,7 +59061,7 @@ def post_assumption_8(cls): { "id": "mi(7,2,8)", "action": "click", - "policy": "add_assumption(sudoku(7,2,8))", + "operation": "add_assumption(sudoku(7,2,8))", } ], "children": [], @@ -59107,7 +59107,7 @@ def post_assumption_8(cls): { "id": "m(9,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(9,9,any))", + "operation": "remove_assumption_signature(sudoku(9,9,any))", } ], "children": [ @@ -59126,7 +59126,7 @@ def post_assumption_8(cls): { "id": "mi(9,9,7)", "action": "click", - "policy": "add_assumption(sudoku(9,9,7))", + "operation": "add_assumption(sudoku(9,9,7))", } ], "children": [], @@ -59172,7 +59172,7 @@ def post_assumption_8(cls): { "id": "m(2,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(2,8,any))", + "operation": "remove_assumption_signature(sudoku(2,8,any))", } ], "children": [ @@ -59191,7 +59191,7 @@ def post_assumption_8(cls): { "id": "mi(2,8,7)", "action": "click", - "policy": "add_assumption(sudoku(2,8,7))", + "operation": "add_assumption(sudoku(2,8,7))", } ], "children": [], @@ -59237,7 +59237,7 @@ def post_assumption_8(cls): { "id": "m(4,6)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(4,6,any))", + "operation": "remove_assumption_signature(sudoku(4,6,any))", } ], "children": [ @@ -59256,7 +59256,7 @@ def post_assumption_8(cls): { "id": "mi(4,6,7)", "action": "click", - "policy": "add_assumption(sudoku(4,6,7))", + "operation": "add_assumption(sudoku(4,6,7))", } ], "children": [], @@ -59302,7 +59302,7 @@ def post_assumption_8(cls): { "id": "m(3,1)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(3,1,any))", + "operation": "remove_assumption_signature(sudoku(3,1,any))", } ], "children": [ @@ -59321,7 +59321,7 @@ def post_assumption_8(cls): { "id": "mi(3,1,7)", "action": "click", - "policy": "add_assumption(sudoku(3,1,7))", + "operation": "add_assumption(sudoku(3,1,7))", } ], "children": [], @@ -59367,7 +59367,7 @@ def post_assumption_8(cls): { "id": "m(7,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(7,9,any))", + "operation": "remove_assumption_signature(sudoku(7,9,any))", } ], "children": [ @@ -59386,7 +59386,7 @@ def post_assumption_8(cls): { "id": "mi(7,9,6)", "action": "click", - "policy": "add_assumption(sudoku(7,9,6))", + "operation": "add_assumption(sudoku(7,9,6))", } ], "children": [], @@ -59432,7 +59432,7 @@ def post_assumption_8(cls): { "id": "m(4,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(4,8,any))", + "operation": "remove_assumption_signature(sudoku(4,8,any))", } ], "children": [ @@ -59451,7 +59451,7 @@ def post_assumption_8(cls): { "id": "mi(4,8,6)", "action": "click", - "policy": "add_assumption(sudoku(4,8,6))", + "operation": "add_assumption(sudoku(4,8,6))", } ], "children": [], @@ -59497,7 +59497,7 @@ def post_assumption_8(cls): { "id": "m(5,5)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(5,5,any))", + "operation": "remove_assumption_signature(sudoku(5,5,any))", } ], "children": [ @@ -59516,7 +59516,7 @@ def post_assumption_8(cls): { "id": "mi(5,5,6)", "action": "click", - "policy": "add_assumption(sudoku(5,5,6))", + "operation": "add_assumption(sudoku(5,5,6))", } ], "children": [], @@ -59562,7 +59562,7 @@ def post_assumption_8(cls): { "id": "m(3,2)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(3,2,any))", + "operation": "remove_assumption_signature(sudoku(3,2,any))", } ], "children": [ @@ -59581,7 +59581,7 @@ def post_assumption_8(cls): { "id": "mi(3,2,6)", "action": "click", - "policy": "add_assumption(sudoku(3,2,6))", + "operation": "add_assumption(sudoku(3,2,6))", } ], "children": [], @@ -59627,7 +59627,7 @@ def post_assumption_8(cls): { "id": "m(4,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(4,9,any))", + "operation": "remove_assumption_signature(sudoku(4,9,any))", } ], "children": [ @@ -59646,7 +59646,7 @@ def post_assumption_8(cls): { "id": "mi(4,9,5)", "action": "click", - "policy": "add_assumption(sudoku(4,9,5))", + "operation": "add_assumption(sudoku(4,9,5))", } ], "children": [], @@ -59692,7 +59692,7 @@ def post_assumption_8(cls): { "id": "m(1,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(1,8,any))", + "operation": "remove_assumption_signature(sudoku(1,8,any))", } ], "children": [ @@ -59711,7 +59711,7 @@ def post_assumption_8(cls): { "id": "mi(1,8,5)", "action": "click", - "policy": "add_assumption(sudoku(1,8,5))", + "operation": "add_assumption(sudoku(1,8,5))", } ], "children": [], @@ -59757,7 +59757,7 @@ def post_assumption_8(cls): { "id": "m(8,7)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(8,7,any))", + "operation": "remove_assumption_signature(sudoku(8,7,any))", } ], "children": [ @@ -59776,7 +59776,7 @@ def post_assumption_8(cls): { "id": "mi(8,7,5)", "action": "click", - "policy": "add_assumption(sudoku(8,7,5))", + "operation": "add_assumption(sudoku(8,7,5))", } ], "children": [], @@ -59822,7 +59822,7 @@ def post_assumption_8(cls): { "id": "m(5,6)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(5,6,any))", + "operation": "remove_assumption_signature(sudoku(5,6,any))", } ], "children": [ @@ -59841,7 +59841,7 @@ def post_assumption_8(cls): { "id": "mi(5,6,5)", "action": "click", - "policy": "add_assumption(sudoku(5,6,5))", + "operation": "add_assumption(sudoku(5,6,5))", } ], "children": [], @@ -59887,7 +59887,7 @@ def post_assumption_8(cls): { "id": "m(3,4)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(3,4,any))", + "operation": "remove_assumption_signature(sudoku(3,4,any))", } ], "children": [ @@ -59906,7 +59906,7 @@ def post_assumption_8(cls): { "id": "mi(3,4,5)", "action": "click", - "policy": "add_assumption(sudoku(3,4,5))", + "operation": "add_assumption(sudoku(3,4,5))", } ], "children": [], @@ -59952,7 +59952,7 @@ def post_assumption_8(cls): { "id": "m(2,2)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(2,2,any))", + "operation": "remove_assumption_signature(sudoku(2,2,any))", } ], "children": [ @@ -59971,7 +59971,7 @@ def post_assumption_8(cls): { "id": "mi(2,2,5)", "action": "click", - "policy": "add_assumption(sudoku(2,2,5))", + "operation": "add_assumption(sudoku(2,2,5))", } ], "children": [], @@ -60017,7 +60017,7 @@ def post_assumption_8(cls): { "id": "m(6,1)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(6,1,any))", + "operation": "remove_assumption_signature(sudoku(6,1,any))", } ], "children": [ @@ -60036,7 +60036,7 @@ def post_assumption_8(cls): { "id": "mi(6,1,5)", "action": "click", - "policy": "add_assumption(sudoku(6,1,5))", + "operation": "add_assumption(sudoku(6,1,5))", } ], "children": [], @@ -60082,7 +60082,7 @@ def post_assumption_8(cls): { "id": "m(3,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(3,9,any))", + "operation": "remove_assumption_signature(sudoku(3,9,any))", } ], "children": [ @@ -60101,7 +60101,7 @@ def post_assumption_8(cls): { "id": "mi(3,9,4)", "action": "click", - "policy": "add_assumption(sudoku(3,9,4))", + "operation": "add_assumption(sudoku(3,9,4))", } ], "children": [], @@ -60147,7 +60147,7 @@ def post_assumption_8(cls): { "id": "m(6,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(6,8,any))", + "operation": "remove_assumption_signature(sudoku(6,8,any))", } ], "children": [ @@ -60166,7 +60166,7 @@ def post_assumption_8(cls): { "id": "mi(6,8,4)", "action": "click", - "policy": "add_assumption(sudoku(6,8,4))", + "operation": "add_assumption(sudoku(6,8,4))", } ], "children": [], @@ -60212,7 +60212,7 @@ def post_assumption_8(cls): { "id": "m(9,7)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(9,7,any))", + "operation": "remove_assumption_signature(sudoku(9,7,any))", } ], "children": [ @@ -60231,7 +60231,7 @@ def post_assumption_8(cls): { "id": "mi(9,7,4)", "action": "click", - "policy": "add_assumption(sudoku(9,7,4))", + "operation": "add_assumption(sudoku(9,7,4))", } ], "children": [], @@ -60277,7 +60277,7 @@ def post_assumption_8(cls): { "id": "m(1,5)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(1,5,any))", + "operation": "remove_assumption_signature(sudoku(1,5,any))", } ], "children": [ @@ -60296,7 +60296,7 @@ def post_assumption_8(cls): { "id": "mi(1,5,4)", "action": "click", - "policy": "add_assumption(sudoku(1,5,4))", + "operation": "add_assumption(sudoku(1,5,4))", } ], "children": [], @@ -60342,7 +60342,7 @@ def post_assumption_8(cls): { "id": "m(2,3)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(2,3,any))", + "operation": "remove_assumption_signature(sudoku(2,3,any))", } ], "children": [ @@ -60361,7 +60361,7 @@ def post_assumption_8(cls): { "id": "mi(2,3,4)", "action": "click", - "policy": "add_assumption(sudoku(2,3,4))", + "operation": "add_assumption(sudoku(2,3,4))", } ], "children": [], @@ -60407,7 +60407,7 @@ def post_assumption_8(cls): { "id": "m(5,2)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(5,2,any))", + "operation": "remove_assumption_signature(sudoku(5,2,any))", } ], "children": [ @@ -60426,7 +60426,7 @@ def post_assumption_8(cls): { "id": "mi(5,2,4)", "action": "click", - "policy": "add_assumption(sudoku(5,2,4))", + "operation": "add_assumption(sudoku(5,2,4))", } ], "children": [], @@ -60472,7 +60472,7 @@ def post_assumption_8(cls): { "id": "m(5,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(5,9,any))", + "operation": "remove_assumption_signature(sudoku(5,9,any))", } ], "children": [ @@ -60491,7 +60491,7 @@ def post_assumption_8(cls): { "id": "mi(5,9,3)", "action": "click", - "policy": "add_assumption(sudoku(5,9,3))", + "operation": "add_assumption(sudoku(5,9,3))", } ], "children": [], @@ -60537,7 +60537,7 @@ def post_assumption_8(cls): { "id": "m(3,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(3,8,any))", + "operation": "remove_assumption_signature(sudoku(3,8,any))", } ], "children": [ @@ -60556,7 +60556,7 @@ def post_assumption_8(cls): { "id": "mi(3,8,3)", "action": "click", - "policy": "add_assumption(sudoku(3,8,3))", + "operation": "add_assumption(sudoku(3,8,3))", } ], "children": [], @@ -60602,7 +60602,7 @@ def post_assumption_8(cls): { "id": "m(7,7)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(7,7,any))", + "operation": "remove_assumption_signature(sudoku(7,7,any))", } ], "children": [ @@ -60621,7 +60621,7 @@ def post_assumption_8(cls): { "id": "mi(7,7,3)", "action": "click", - "policy": "add_assumption(sudoku(7,7,3))", + "operation": "add_assumption(sudoku(7,7,3))", } ], "children": [], @@ -60667,7 +60667,7 @@ def post_assumption_8(cls): { "id": "m(6,6)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(6,6,any))", + "operation": "remove_assumption_signature(sudoku(6,6,any))", } ], "children": [ @@ -60686,7 +60686,7 @@ def post_assumption_8(cls): { "id": "mi(6,6,3)", "action": "click", - "policy": "add_assumption(sudoku(6,6,3))", + "operation": "add_assumption(sudoku(6,6,3))", } ], "children": [], @@ -60732,7 +60732,7 @@ def post_assumption_8(cls): { "id": "m(1,2)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(1,2,any))", + "operation": "remove_assumption_signature(sudoku(1,2,any))", } ], "children": [ @@ -60751,7 +60751,7 @@ def post_assumption_8(cls): { "id": "mi(1,2,3)", "action": "click", - "policy": "add_assumption(sudoku(1,2,3))", + "operation": "add_assumption(sudoku(1,2,3))", } ], "children": [], @@ -60797,7 +60797,7 @@ def post_assumption_8(cls): { "id": "m(9,1)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(9,1,any))", + "operation": "remove_assumption_signature(sudoku(9,1,any))", } ], "children": [ @@ -60816,7 +60816,7 @@ def post_assumption_8(cls): { "id": "mi(9,1,3)", "action": "click", - "policy": "add_assumption(sudoku(9,1,3))", + "operation": "add_assumption(sudoku(9,1,3))", } ], "children": [], @@ -60862,7 +60862,7 @@ def post_assumption_8(cls): { "id": "m(1,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(1,9,any))", + "operation": "remove_assumption_signature(sudoku(1,9,any))", } ], "children": [ @@ -60881,7 +60881,7 @@ def post_assumption_8(cls): { "id": "mi(1,9,2)", "action": "click", - "policy": "add_assumption(sudoku(1,9,2))", + "operation": "add_assumption(sudoku(1,9,2))", } ], "children": [], @@ -60927,7 +60927,7 @@ def post_assumption_8(cls): { "id": "m(9,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(9,8,any))", + "operation": "remove_assumption_signature(sudoku(9,8,any))", } ], "children": [ @@ -60946,7 +60946,7 @@ def post_assumption_8(cls): { "id": "mi(9,8,2)", "action": "click", - "policy": "add_assumption(sudoku(9,8,2))", + "operation": "add_assumption(sudoku(9,8,2))", } ], "children": [], @@ -60992,7 +60992,7 @@ def post_assumption_8(cls): { "id": "m(4,7)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(4,7,any))", + "operation": "remove_assumption_signature(sudoku(4,7,any))", } ], "children": [ @@ -61011,7 +61011,7 @@ def post_assumption_8(cls): { "id": "mi(4,7,2)", "action": "click", - "policy": "add_assumption(sudoku(4,7,2))", + "operation": "add_assumption(sudoku(4,7,2))", } ], "children": [], @@ -61057,7 +61057,7 @@ def post_assumption_8(cls): { "id": "m(7,6)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(7,6,any))", + "operation": "remove_assumption_signature(sudoku(7,6,any))", } ], "children": [ @@ -61076,7 +61076,7 @@ def post_assumption_8(cls): { "id": "mi(7,6,2)", "action": "click", - "policy": "add_assumption(sudoku(7,6,2))", + "operation": "add_assumption(sudoku(7,6,2))", } ], "children": [], @@ -61122,7 +61122,7 @@ def post_assumption_8(cls): { "id": "m(6,4)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(6,4,any))", + "operation": "remove_assumption_signature(sudoku(6,4,any))", } ], "children": [ @@ -61141,7 +61141,7 @@ def post_assumption_8(cls): { "id": "mi(6,4,2)", "action": "click", - "policy": "add_assumption(sudoku(6,4,2))", + "operation": "add_assumption(sudoku(6,4,2))", } ], "children": [], @@ -61187,7 +61187,7 @@ def post_assumption_8(cls): { "id": "m(5,3)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(5,3,any))", + "operation": "remove_assumption_signature(sudoku(5,3,any))", } ], "children": [ @@ -61206,7 +61206,7 @@ def post_assumption_8(cls): { "id": "mi(5,3,2)", "action": "click", - "policy": "add_assumption(sudoku(5,3,2))", + "operation": "add_assumption(sudoku(5,3,2))", } ], "children": [], @@ -61252,7 +61252,7 @@ def post_assumption_8(cls): { "id": "m(2,1)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(2,1,any))", + "operation": "remove_assumption_signature(sudoku(2,1,any))", } ], "children": [ @@ -61271,7 +61271,7 @@ def post_assumption_8(cls): { "id": "mi(2,1,2)", "action": "click", - "policy": "add_assumption(sudoku(2,1,2))", + "operation": "add_assumption(sudoku(2,1,2))", } ], "children": [], @@ -61317,7 +61317,7 @@ def post_assumption_8(cls): { "id": "m(6,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(6,9,any))", + "operation": "remove_assumption_signature(sudoku(6,9,any))", } ], "children": [ @@ -61336,7 +61336,7 @@ def post_assumption_8(cls): { "id": "mi(6,9,1)", "action": "click", - "policy": "add_assumption(sudoku(6,9,1))", + "operation": "add_assumption(sudoku(6,9,1))", } ], "children": [], @@ -61382,7 +61382,7 @@ def post_assumption_8(cls): { "id": "m(7,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(7,8,any))", + "operation": "remove_assumption_signature(sudoku(7,8,any))", } ], "children": [ @@ -61401,7 +61401,7 @@ def post_assumption_8(cls): { "id": "mi(7,8,1)", "action": "click", - "policy": "add_assumption(sudoku(7,8,1))", + "operation": "add_assumption(sudoku(7,8,1))", } ], "children": [], @@ -61447,7 +61447,7 @@ def post_assumption_8(cls): { "id": "m(3,7)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(3,7,any))", + "operation": "remove_assumption_signature(sudoku(3,7,any))", } ], "children": [ @@ -61466,7 +61466,7 @@ def post_assumption_8(cls): { "id": "mi(3,7,1)", "action": "click", - "policy": "add_assumption(sudoku(3,7,1))", + "operation": "add_assumption(sudoku(3,7,1))", } ], "children": [], @@ -61512,7 +61512,7 @@ def post_assumption_8(cls): { "id": "m(8,5)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(8,5,any))", + "operation": "remove_assumption_signature(sudoku(8,5,any))", } ], "children": [ @@ -61531,7 +61531,7 @@ def post_assumption_8(cls): { "id": "mi(8,5,1)", "action": "click", - "policy": "add_assumption(sudoku(8,5,1))", + "operation": "add_assumption(sudoku(8,5,1))", } ], "children": [], @@ -61577,7 +61577,7 @@ def post_assumption_8(cls): { "id": "m(5,4)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(5,4,any))", + "operation": "remove_assumption_signature(sudoku(5,4,any))", } ], "children": [ @@ -61596,7 +61596,7 @@ def post_assumption_8(cls): { "id": "mi(5,4,1)", "action": "click", - "policy": "add_assumption(sudoku(5,4,1))", + "operation": "add_assumption(sudoku(5,4,1))", } ], "children": [], @@ -61642,7 +61642,7 @@ def post_assumption_8(cls): { "id": "m(9,3)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(9,3,any))", + "operation": "remove_assumption_signature(sudoku(9,3,any))", } ], "children": [ @@ -61661,7 +61661,7 @@ def post_assumption_8(cls): { "id": "mi(9,3,1)", "action": "click", - "policy": "add_assumption(sudoku(9,3,1))", + "operation": "add_assumption(sudoku(9,3,1))", } ], "children": [], @@ -61707,7 +61707,7 @@ def post_assumption_8(cls): { "id": "m(4,2)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(4,2,any))", + "operation": "remove_assumption_signature(sudoku(4,2,any))", } ], "children": [ @@ -61726,7 +61726,7 @@ def post_assumption_8(cls): { "id": "mi(4,2,1)", "action": "click", - "policy": "add_assumption(sudoku(4,2,1))", + "operation": "add_assumption(sudoku(4,2,1))", } ], "children": [], @@ -61772,7 +61772,7 @@ def post_assumption_8(cls): { "id": "m(1,1)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(1,1,any))", + "operation": "remove_assumption_signature(sudoku(1,1,any))", } ], "children": [ @@ -61791,7 +61791,7 @@ def post_assumption_8(cls): { "id": "mi(1,1,1)", "action": "click", - "policy": "add_assumption(sudoku(1,1,1))", + "operation": "add_assumption(sudoku(1,1,1))", } ], "children": [], @@ -61840,7 +61840,7 @@ def post_assumption_8(cls): { "id": "ms_select", "action": "click", - "policy": "select", + "operation": "select", } ], "children": [], @@ -61865,7 +61865,7 @@ def post_assumption_8(cls): { "id": "ms_next", "action": "click", - "policy": "next_solution", + "operation": "next_solution", } ], "children": [], @@ -61890,7 +61890,7 @@ def post_assumption_8(cls): { "id": "ms_clear", "action": "click", - "policy": "clear_assumptions", + "operation": "clear_assumptions", } ], "children": [], @@ -63112,7 +63112,7 @@ def post_assumption_9(cls): { "id": "m(8,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(8,9,any))", + "operation": "remove_assumption_signature(sudoku(8,9,any))", } ], "children": [ @@ -63131,7 +63131,7 @@ def post_assumption_9(cls): { "id": "mi(8,9,9)", "action": "click", - "policy": "add_assumption(sudoku(8,9,9))", + "operation": "add_assumption(sudoku(8,9,9))", } ], "children": [], @@ -63151,7 +63151,7 @@ def post_assumption_9(cls): { "id": "mi(8,9,8)", "action": "click", - "policy": "add_assumption(sudoku(8,9,8))", + "operation": "add_assumption(sudoku(8,9,8))", } ], "children": [], @@ -63171,7 +63171,7 @@ def post_assumption_9(cls): { "id": "mi(8,9,5)", "action": "click", - "policy": "add_assumption(sudoku(8,9,5))", + "operation": "add_assumption(sudoku(8,9,5))", } ], "children": [], @@ -63212,7 +63212,7 @@ def post_assumption_9(cls): { "id": "m(5,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(5,9,any))", + "operation": "remove_assumption_signature(sudoku(5,9,any))", } ], "children": [ @@ -63231,7 +63231,7 @@ def post_assumption_9(cls): { "id": "mi(5,9,9)", "action": "click", - "policy": "add_assumption(sudoku(5,9,9))", + "operation": "add_assumption(sudoku(5,9,9))", } ], "children": [], @@ -63251,7 +63251,7 @@ def post_assumption_9(cls): { "id": "mi(5,9,5)", "action": "click", - "policy": "add_assumption(sudoku(5,9,5))", + "operation": "add_assumption(sudoku(5,9,5))", } ], "children": [], @@ -63271,7 +63271,7 @@ def post_assumption_9(cls): { "id": "mi(5,9,3)", "action": "click", - "policy": "add_assumption(sudoku(5,9,3))", + "operation": "add_assumption(sudoku(5,9,3))", } ], "children": [], @@ -63291,7 +63291,7 @@ def post_assumption_9(cls): { "id": "mi(5,9,1)", "action": "click", - "policy": "add_assumption(sudoku(5,9,1))", + "operation": "add_assumption(sudoku(5,9,1))", } ], "children": [], @@ -63332,7 +63332,7 @@ def post_assumption_9(cls): { "id": "m(2,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(2,9,any))", + "operation": "remove_assumption_signature(sudoku(2,9,any))", } ], "children": [ @@ -63351,7 +63351,7 @@ def post_assumption_9(cls): { "id": "mi(2,9,9)", "action": "click", - "policy": "add_assumption(sudoku(2,9,9))", + "operation": "add_assumption(sudoku(2,9,9))", } ], "children": [], @@ -63371,7 +63371,7 @@ def post_assumption_9(cls): { "id": "mi(2,9,8)", "action": "click", - "policy": "add_assumption(sudoku(2,9,8))", + "operation": "add_assumption(sudoku(2,9,8))", } ], "children": [], @@ -63391,7 +63391,7 @@ def post_assumption_9(cls): { "id": "mi(2,9,7)", "action": "click", - "policy": "add_assumption(sudoku(2,9,7))", + "operation": "add_assumption(sudoku(2,9,7))", } ], "children": [], @@ -63411,7 +63411,7 @@ def post_assumption_9(cls): { "id": "mi(2,9,5)", "action": "click", - "policy": "add_assumption(sudoku(2,9,5))", + "operation": "add_assumption(sudoku(2,9,5))", } ], "children": [], @@ -63431,7 +63431,7 @@ def post_assumption_9(cls): { "id": "mi(2,9,2)", "action": "click", - "policy": "add_assumption(sudoku(2,9,2))", + "operation": "add_assumption(sudoku(2,9,2))", } ], "children": [], @@ -63472,7 +63472,7 @@ def post_assumption_9(cls): { "id": "m(8,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(8,8,any))", + "operation": "remove_assumption_signature(sudoku(8,8,any))", } ], "children": [ @@ -63491,7 +63491,7 @@ def post_assumption_9(cls): { "id": "mi(8,8,9)", "action": "click", - "policy": "add_assumption(sudoku(8,8,9))", + "operation": "add_assumption(sudoku(8,8,9))", } ], "children": [], @@ -63511,7 +63511,7 @@ def post_assumption_9(cls): { "id": "mi(8,8,8)", "action": "click", - "policy": "add_assumption(sudoku(8,8,8))", + "operation": "add_assumption(sudoku(8,8,8))", } ], "children": [], @@ -63531,7 +63531,7 @@ def post_assumption_9(cls): { "id": "mi(8,8,5)", "action": "click", - "policy": "add_assumption(sudoku(8,8,5))", + "operation": "add_assumption(sudoku(8,8,5))", } ], "children": [], @@ -63572,7 +63572,7 @@ def post_assumption_9(cls): { "id": "m(5,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(5,8,any))", + "operation": "remove_assumption_signature(sudoku(5,8,any))", } ], "children": [ @@ -63591,7 +63591,7 @@ def post_assumption_9(cls): { "id": "mi(5,8,9)", "action": "click", - "policy": "add_assumption(sudoku(5,8,9))", + "operation": "add_assumption(sudoku(5,8,9))", } ], "children": [], @@ -63611,7 +63611,7 @@ def post_assumption_9(cls): { "id": "mi(5,8,5)", "action": "click", - "policy": "add_assumption(sudoku(5,8,5))", + "operation": "add_assumption(sudoku(5,8,5))", } ], "children": [], @@ -63631,7 +63631,7 @@ def post_assumption_9(cls): { "id": "mi(5,8,3)", "action": "click", - "policy": "add_assumption(sudoku(5,8,3))", + "operation": "add_assumption(sudoku(5,8,3))", } ], "children": [], @@ -63651,7 +63651,7 @@ def post_assumption_9(cls): { "id": "mi(5,8,1)", "action": "click", - "policy": "add_assumption(sudoku(5,8,1))", + "operation": "add_assumption(sudoku(5,8,1))", } ], "children": [], @@ -63692,7 +63692,7 @@ def post_assumption_9(cls): { "id": "m(2,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(2,8,any))", + "operation": "remove_assumption_signature(sudoku(2,8,any))", } ], "children": [ @@ -63711,7 +63711,7 @@ def post_assumption_9(cls): { "id": "mi(2,8,9)", "action": "click", - "policy": "add_assumption(sudoku(2,8,9))", + "operation": "add_assumption(sudoku(2,8,9))", } ], "children": [], @@ -63731,7 +63731,7 @@ def post_assumption_9(cls): { "id": "mi(2,8,8)", "action": "click", - "policy": "add_assumption(sudoku(2,8,8))", + "operation": "add_assumption(sudoku(2,8,8))", } ], "children": [], @@ -63751,7 +63751,7 @@ def post_assumption_9(cls): { "id": "mi(2,8,7)", "action": "click", - "policy": "add_assumption(sudoku(2,8,7))", + "operation": "add_assumption(sudoku(2,8,7))", } ], "children": [], @@ -63771,7 +63771,7 @@ def post_assumption_9(cls): { "id": "mi(2,8,5)", "action": "click", - "policy": "add_assumption(sudoku(2,8,5))", + "operation": "add_assumption(sudoku(2,8,5))", } ], "children": [], @@ -63791,7 +63791,7 @@ def post_assumption_9(cls): { "id": "mi(2,8,2)", "action": "click", - "policy": "add_assumption(sudoku(2,8,2))", + "operation": "add_assumption(sudoku(2,8,2))", } ], "children": [], @@ -63832,7 +63832,7 @@ def post_assumption_9(cls): { "id": "m(8,7)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(8,7,any))", + "operation": "remove_assumption_signature(sudoku(8,7,any))", } ], "children": [ @@ -63851,7 +63851,7 @@ def post_assumption_9(cls): { "id": "mi(8,7,9)", "action": "click", - "policy": "add_assumption(sudoku(8,7,9))", + "operation": "add_assumption(sudoku(8,7,9))", } ], "children": [], @@ -63871,7 +63871,7 @@ def post_assumption_9(cls): { "id": "mi(8,7,5)", "action": "click", - "policy": "add_assumption(sudoku(8,7,5))", + "operation": "add_assumption(sudoku(8,7,5))", } ], "children": [], @@ -63912,7 +63912,7 @@ def post_assumption_9(cls): { "id": "m(2,7)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(2,7,any))", + "operation": "remove_assumption_signature(sudoku(2,7,any))", } ], "children": [ @@ -63931,7 +63931,7 @@ def post_assumption_9(cls): { "id": "mi(2,7,9)", "action": "click", - "policy": "add_assumption(sudoku(2,7,9))", + "operation": "add_assumption(sudoku(2,7,9))", } ], "children": [], @@ -63951,7 +63951,7 @@ def post_assumption_9(cls): { "id": "mi(2,7,5)", "action": "click", - "policy": "add_assumption(sudoku(2,7,5))", + "operation": "add_assumption(sudoku(2,7,5))", } ], "children": [], @@ -63971,7 +63971,7 @@ def post_assumption_9(cls): { "id": "mi(2,7,2)", "action": "click", - "policy": "add_assumption(sudoku(2,7,2))", + "operation": "add_assumption(sudoku(2,7,2))", } ], "children": [], @@ -64017,7 +64017,7 @@ def post_assumption_9(cls): { "id": "m(6,5)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(6,5,any))", + "operation": "remove_assumption_signature(sudoku(6,5,any))", } ], "children": [ @@ -64036,7 +64036,7 @@ def post_assumption_9(cls): { "id": "mi(6,5,9)", "action": "click", - "policy": "add_assumption(sudoku(6,5,9))", + "operation": "add_assumption(sudoku(6,5,9))", } ], "children": [], @@ -64082,7 +64082,7 @@ def post_assumption_9(cls): { "id": "m(4,1)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(4,1,any))", + "operation": "remove_assumption_signature(sudoku(4,1,any))", } ], "children": [ @@ -64101,7 +64101,7 @@ def post_assumption_9(cls): { "id": "mi(4,1,9)", "action": "click", - "policy": "add_assumption(sudoku(4,1,9))", + "operation": "add_assumption(sudoku(4,1,9))", } ], "children": [], @@ -64142,7 +64142,7 @@ def post_assumption_9(cls): { "id": "m(1,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(1,9,any))", + "operation": "remove_assumption_signature(sudoku(1,9,any))", } ], "children": [ @@ -64161,7 +64161,7 @@ def post_assumption_9(cls): { "id": "mi(1,9,8)", "action": "click", - "policy": "add_assumption(sudoku(1,9,8))", + "operation": "add_assumption(sudoku(1,9,8))", } ], "children": [], @@ -64181,7 +64181,7 @@ def post_assumption_9(cls): { "id": "mi(1,9,5)", "action": "click", - "policy": "add_assumption(sudoku(1,9,5))", + "operation": "add_assumption(sudoku(1,9,5))", } ], "children": [], @@ -64201,7 +64201,7 @@ def post_assumption_9(cls): { "id": "mi(1,9,2)", "action": "click", - "policy": "add_assumption(sudoku(1,9,2))", + "operation": "add_assumption(sudoku(1,9,2))", } ], "children": [], @@ -64221,7 +64221,7 @@ def post_assumption_9(cls): { "id": "mi(1,9,1)", "action": "click", - "policy": "add_assumption(sudoku(1,9,1))", + "operation": "add_assumption(sudoku(1,9,1))", } ], "children": [], @@ -64262,7 +64262,7 @@ def post_assumption_9(cls): { "id": "m(1,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(1,8,any))", + "operation": "remove_assumption_signature(sudoku(1,8,any))", } ], "children": [ @@ -64281,7 +64281,7 @@ def post_assumption_9(cls): { "id": "mi(1,8,8)", "action": "click", - "policy": "add_assumption(sudoku(1,8,8))", + "operation": "add_assumption(sudoku(1,8,8))", } ], "children": [], @@ -64301,7 +64301,7 @@ def post_assumption_9(cls): { "id": "mi(1,8,5)", "action": "click", - "policy": "add_assumption(sudoku(1,8,5))", + "operation": "add_assumption(sudoku(1,8,5))", } ], "children": [], @@ -64321,7 +64321,7 @@ def post_assumption_9(cls): { "id": "mi(1,8,2)", "action": "click", - "policy": "add_assumption(sudoku(1,8,2))", + "operation": "add_assumption(sudoku(1,8,2))", } ], "children": [], @@ -64341,7 +64341,7 @@ def post_assumption_9(cls): { "id": "mi(1,8,1)", "action": "click", - "policy": "add_assumption(sudoku(1,8,1))", + "operation": "add_assumption(sudoku(1,8,1))", } ], "children": [], @@ -64387,7 +64387,7 @@ def post_assumption_9(cls): { "id": "m(9,4)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(9,4,any))", + "operation": "remove_assumption_signature(sudoku(9,4,any))", } ], "children": [ @@ -64406,7 +64406,7 @@ def post_assumption_9(cls): { "id": "mi(9,4,8)", "action": "click", - "policy": "add_assumption(sudoku(9,4,8))", + "operation": "add_assumption(sudoku(9,4,8))", } ], "children": [], @@ -64447,7 +64447,7 @@ def post_assumption_9(cls): { "id": "m(2,3)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(2,3,any))", + "operation": "remove_assumption_signature(sudoku(2,3,any))", } ], "children": [ @@ -64466,7 +64466,7 @@ def post_assumption_9(cls): { "id": "mi(2,3,8)", "action": "click", - "policy": "add_assumption(sudoku(2,3,8))", + "operation": "add_assumption(sudoku(2,3,8))", } ], "children": [], @@ -64486,7 +64486,7 @@ def post_assumption_9(cls): { "id": "mi(2,3,4)", "action": "click", - "policy": "add_assumption(sudoku(2,3,4))", + "operation": "add_assumption(sudoku(2,3,4))", } ], "children": [], @@ -64506,7 +64506,7 @@ def post_assumption_9(cls): { "id": "mi(2,3,2)", "action": "click", - "policy": "add_assumption(sudoku(2,3,2))", + "operation": "add_assumption(sudoku(2,3,2))", } ], "children": [], @@ -64547,7 +64547,7 @@ def post_assumption_9(cls): { "id": "m(1,3)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(1,3,any))", + "operation": "remove_assumption_signature(sudoku(1,3,any))", } ], "children": [ @@ -64566,7 +64566,7 @@ def post_assumption_9(cls): { "id": "mi(1,3,8)", "action": "click", - "policy": "add_assumption(sudoku(1,3,8))", + "operation": "add_assumption(sudoku(1,3,8))", } ], "children": [], @@ -64586,7 +64586,7 @@ def post_assumption_9(cls): { "id": "mi(1,3,2)", "action": "click", - "policy": "add_assumption(sudoku(1,3,2))", + "operation": "add_assumption(sudoku(1,3,2))", } ], "children": [], @@ -64632,7 +64632,7 @@ def post_assumption_9(cls): { "id": "m(7,2)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(7,2,any))", + "operation": "remove_assumption_signature(sudoku(7,2,any))", } ], "children": [ @@ -64651,7 +64651,7 @@ def post_assumption_9(cls): { "id": "mi(7,2,8)", "action": "click", - "policy": "add_assumption(sudoku(7,2,8))", + "operation": "add_assumption(sudoku(7,2,8))", } ], "children": [], @@ -64692,7 +64692,7 @@ def post_assumption_9(cls): { "id": "m(9,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(9,9,any))", + "operation": "remove_assumption_signature(sudoku(9,9,any))", } ], "children": [ @@ -64711,7 +64711,7 @@ def post_assumption_9(cls): { "id": "mi(9,9,7)", "action": "click", - "policy": "add_assumption(sudoku(9,9,7))", + "operation": "add_assumption(sudoku(9,9,7))", } ], "children": [], @@ -64731,7 +64731,7 @@ def post_assumption_9(cls): { "id": "mi(9,9,4)", "action": "click", - "policy": "add_assumption(sudoku(9,9,4))", + "operation": "add_assumption(sudoku(9,9,4))", } ], "children": [], @@ -64751,7 +64751,7 @@ def post_assumption_9(cls): { "id": "mi(9,9,2)", "action": "click", - "policy": "add_assumption(sudoku(9,9,2))", + "operation": "add_assumption(sudoku(9,9,2))", } ], "children": [], @@ -64792,7 +64792,7 @@ def post_assumption_9(cls): { "id": "m(3,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(3,9,any))", + "operation": "remove_assumption_signature(sudoku(3,9,any))", } ], "children": [ @@ -64811,7 +64811,7 @@ def post_assumption_9(cls): { "id": "mi(3,9,7)", "action": "click", - "policy": "add_assumption(sudoku(3,9,7))", + "operation": "add_assumption(sudoku(3,9,7))", } ], "children": [], @@ -64831,7 +64831,7 @@ def post_assumption_9(cls): { "id": "mi(3,9,4)", "action": "click", - "policy": "add_assumption(sudoku(3,9,4))", + "operation": "add_assumption(sudoku(3,9,4))", } ], "children": [], @@ -64851,7 +64851,7 @@ def post_assumption_9(cls): { "id": "mi(3,9,3)", "action": "click", - "policy": "add_assumption(sudoku(3,9,3))", + "operation": "add_assumption(sudoku(3,9,3))", } ], "children": [], @@ -64871,7 +64871,7 @@ def post_assumption_9(cls): { "id": "mi(3,9,1)", "action": "click", - "policy": "add_assumption(sudoku(3,9,1))", + "operation": "add_assumption(sudoku(3,9,1))", } ], "children": [], @@ -64912,7 +64912,7 @@ def post_assumption_9(cls): { "id": "m(9,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(9,8,any))", + "operation": "remove_assumption_signature(sudoku(9,8,any))", } ], "children": [ @@ -64931,7 +64931,7 @@ def post_assumption_9(cls): { "id": "mi(9,8,7)", "action": "click", - "policy": "add_assumption(sudoku(9,8,7))", + "operation": "add_assumption(sudoku(9,8,7))", } ], "children": [], @@ -64951,7 +64951,7 @@ def post_assumption_9(cls): { "id": "mi(9,8,4)", "action": "click", - "policy": "add_assumption(sudoku(9,8,4))", + "operation": "add_assumption(sudoku(9,8,4))", } ], "children": [], @@ -64971,7 +64971,7 @@ def post_assumption_9(cls): { "id": "mi(9,8,2)", "action": "click", - "policy": "add_assumption(sudoku(9,8,2))", + "operation": "add_assumption(sudoku(9,8,2))", } ], "children": [], @@ -65012,7 +65012,7 @@ def post_assumption_9(cls): { "id": "m(3,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(3,8,any))", + "operation": "remove_assumption_signature(sudoku(3,8,any))", } ], "children": [ @@ -65031,7 +65031,7 @@ def post_assumption_9(cls): { "id": "mi(3,8,7)", "action": "click", - "policy": "add_assumption(sudoku(3,8,7))", + "operation": "add_assumption(sudoku(3,8,7))", } ], "children": [], @@ -65051,7 +65051,7 @@ def post_assumption_9(cls): { "id": "mi(3,8,4)", "action": "click", - "policy": "add_assumption(sudoku(3,8,4))", + "operation": "add_assumption(sudoku(3,8,4))", } ], "children": [], @@ -65071,7 +65071,7 @@ def post_assumption_9(cls): { "id": "mi(3,8,3)", "action": "click", - "policy": "add_assumption(sudoku(3,8,3))", + "operation": "add_assumption(sudoku(3,8,3))", } ], "children": [], @@ -65091,7 +65091,7 @@ def post_assumption_9(cls): { "id": "mi(3,8,1)", "action": "click", - "policy": "add_assumption(sudoku(3,8,1))", + "operation": "add_assumption(sudoku(3,8,1))", } ], "children": [], @@ -65137,7 +65137,7 @@ def post_assumption_9(cls): { "id": "m(4,6)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(4,6,any))", + "operation": "remove_assumption_signature(sudoku(4,6,any))", } ], "children": [ @@ -65156,7 +65156,7 @@ def post_assumption_9(cls): { "id": "mi(4,6,7)", "action": "click", - "policy": "add_assumption(sudoku(4,6,7))", + "operation": "add_assumption(sudoku(4,6,7))", } ], "children": [], @@ -65197,7 +65197,7 @@ def post_assumption_9(cls): { "id": "m(3,1)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(3,1,any))", + "operation": "remove_assumption_signature(sudoku(3,1,any))", } ], "children": [ @@ -65216,7 +65216,7 @@ def post_assumption_9(cls): { "id": "mi(3,1,7)", "action": "click", - "policy": "add_assumption(sudoku(3,1,7))", + "operation": "add_assumption(sudoku(3,1,7))", } ], "children": [], @@ -65236,7 +65236,7 @@ def post_assumption_9(cls): { "id": "mi(3,1,1)", "action": "click", - "policy": "add_assumption(sudoku(3,1,1))", + "operation": "add_assumption(sudoku(3,1,1))", } ], "children": [], @@ -65277,7 +65277,7 @@ def post_assumption_9(cls): { "id": "m(2,1)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(2,1,any))", + "operation": "remove_assumption_signature(sudoku(2,1,any))", } ], "children": [ @@ -65296,7 +65296,7 @@ def post_assumption_9(cls): { "id": "mi(2,1,7)", "action": "click", - "policy": "add_assumption(sudoku(2,1,7))", + "operation": "add_assumption(sudoku(2,1,7))", } ], "children": [], @@ -65316,7 +65316,7 @@ def post_assumption_9(cls): { "id": "mi(2,1,5)", "action": "click", - "policy": "add_assumption(sudoku(2,1,5))", + "operation": "add_assumption(sudoku(2,1,5))", } ], "children": [], @@ -65336,7 +65336,7 @@ def post_assumption_9(cls): { "id": "mi(2,1,2)", "action": "click", - "policy": "add_assumption(sudoku(2,1,2))", + "operation": "add_assumption(sudoku(2,1,2))", } ], "children": [], @@ -65377,7 +65377,7 @@ def post_assumption_9(cls): { "id": "m(7,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(7,9,any))", + "operation": "remove_assumption_signature(sudoku(7,9,any))", } ], "children": [ @@ -65396,7 +65396,7 @@ def post_assumption_9(cls): { "id": "mi(7,9,6)", "action": "click", - "policy": "add_assumption(sudoku(7,9,6))", + "operation": "add_assumption(sudoku(7,9,6))", } ], "children": [], @@ -65416,7 +65416,7 @@ def post_assumption_9(cls): { "id": "mi(7,9,3)", "action": "click", - "policy": "add_assumption(sudoku(7,9,3))", + "operation": "add_assumption(sudoku(7,9,3))", } ], "children": [], @@ -65436,7 +65436,7 @@ def post_assumption_9(cls): { "id": "mi(7,9,1)", "action": "click", - "policy": "add_assumption(sudoku(7,9,1))", + "operation": "add_assumption(sudoku(7,9,1))", } ], "children": [], @@ -65477,7 +65477,7 @@ def post_assumption_9(cls): { "id": "m(4,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(4,9,any))", + "operation": "remove_assumption_signature(sudoku(4,9,any))", } ], "children": [ @@ -65496,7 +65496,7 @@ def post_assumption_9(cls): { "id": "mi(4,9,6)", "action": "click", - "policy": "add_assumption(sudoku(4,9,6))", + "operation": "add_assumption(sudoku(4,9,6))", } ], "children": [], @@ -65516,7 +65516,7 @@ def post_assumption_9(cls): { "id": "mi(4,9,5)", "action": "click", - "policy": "add_assumption(sudoku(4,9,5))", + "operation": "add_assumption(sudoku(4,9,5))", } ], "children": [], @@ -65536,7 +65536,7 @@ def post_assumption_9(cls): { "id": "mi(4,9,2)", "action": "click", - "policy": "add_assumption(sudoku(4,9,2))", + "operation": "add_assumption(sudoku(4,9,2))", } ], "children": [], @@ -65556,7 +65556,7 @@ def post_assumption_9(cls): { "id": "mi(4,9,1)", "action": "click", - "policy": "add_assumption(sudoku(4,9,1))", + "operation": "add_assumption(sudoku(4,9,1))", } ], "children": [], @@ -65597,7 +65597,7 @@ def post_assumption_9(cls): { "id": "m(7,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(7,8,any))", + "operation": "remove_assumption_signature(sudoku(7,8,any))", } ], "children": [ @@ -65616,7 +65616,7 @@ def post_assumption_9(cls): { "id": "mi(7,8,6)", "action": "click", - "policy": "add_assumption(sudoku(7,8,6))", + "operation": "add_assumption(sudoku(7,8,6))", } ], "children": [], @@ -65636,7 +65636,7 @@ def post_assumption_9(cls): { "id": "mi(7,8,3)", "action": "click", - "policy": "add_assumption(sudoku(7,8,3))", + "operation": "add_assumption(sudoku(7,8,3))", } ], "children": [], @@ -65656,7 +65656,7 @@ def post_assumption_9(cls): { "id": "mi(7,8,1)", "action": "click", - "policy": "add_assumption(sudoku(7,8,1))", + "operation": "add_assumption(sudoku(7,8,1))", } ], "children": [], @@ -65697,7 +65697,7 @@ def post_assumption_9(cls): { "id": "m(4,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(4,8,any))", + "operation": "remove_assumption_signature(sudoku(4,8,any))", } ], "children": [ @@ -65716,7 +65716,7 @@ def post_assumption_9(cls): { "id": "mi(4,8,6)", "action": "click", - "policy": "add_assumption(sudoku(4,8,6))", + "operation": "add_assumption(sudoku(4,8,6))", } ], "children": [], @@ -65736,7 +65736,7 @@ def post_assumption_9(cls): { "id": "mi(4,8,5)", "action": "click", - "policy": "add_assumption(sudoku(4,8,5))", + "operation": "add_assumption(sudoku(4,8,5))", } ], "children": [], @@ -65756,7 +65756,7 @@ def post_assumption_9(cls): { "id": "mi(4,8,2)", "action": "click", - "policy": "add_assumption(sudoku(4,8,2))", + "operation": "add_assumption(sudoku(4,8,2))", } ], "children": [], @@ -65776,7 +65776,7 @@ def post_assumption_9(cls): { "id": "mi(4,8,1)", "action": "click", - "policy": "add_assumption(sudoku(4,8,1))", + "operation": "add_assumption(sudoku(4,8,1))", } ], "children": [], @@ -65822,7 +65822,7 @@ def post_assumption_9(cls): { "id": "m(5,5)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(5,5,any))", + "operation": "remove_assumption_signature(sudoku(5,5,any))", } ], "children": [ @@ -65841,7 +65841,7 @@ def post_assumption_9(cls): { "id": "mi(5,5,6)", "action": "click", - "policy": "add_assumption(sudoku(5,5,6))", + "operation": "add_assumption(sudoku(5,5,6))", } ], "children": [], @@ -65887,7 +65887,7 @@ def post_assumption_9(cls): { "id": "m(3,2)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(3,2,any))", + "operation": "remove_assumption_signature(sudoku(3,2,any))", } ], "children": [ @@ -65906,7 +65906,7 @@ def post_assumption_9(cls): { "id": "mi(3,2,6)", "action": "click", - "policy": "add_assumption(sudoku(3,2,6))", + "operation": "add_assumption(sudoku(3,2,6))", } ], "children": [], @@ -65947,7 +65947,7 @@ def post_assumption_9(cls): { "id": "m(6,9)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(6,9,any))", + "operation": "remove_assumption_signature(sudoku(6,9,any))", } ], "children": [ @@ -65966,7 +65966,7 @@ def post_assumption_9(cls): { "id": "mi(6,9,5)", "action": "click", - "policy": "add_assumption(sudoku(6,9,5))", + "operation": "add_assumption(sudoku(6,9,5))", } ], "children": [], @@ -65986,7 +65986,7 @@ def post_assumption_9(cls): { "id": "mi(6,9,4)", "action": "click", - "policy": "add_assumption(sudoku(6,9,4))", + "operation": "add_assumption(sudoku(6,9,4))", } ], "children": [], @@ -66006,7 +66006,7 @@ def post_assumption_9(cls): { "id": "mi(6,9,3)", "action": "click", - "policy": "add_assumption(sudoku(6,9,3))", + "operation": "add_assumption(sudoku(6,9,3))", } ], "children": [], @@ -66026,7 +66026,7 @@ def post_assumption_9(cls): { "id": "mi(6,9,1)", "action": "click", - "policy": "add_assumption(sudoku(6,9,1))", + "operation": "add_assumption(sudoku(6,9,1))", } ], "children": [], @@ -66067,7 +66067,7 @@ def post_assumption_9(cls): { "id": "m(6,8)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(6,8,any))", + "operation": "remove_assumption_signature(sudoku(6,8,any))", } ], "children": [ @@ -66086,7 +66086,7 @@ def post_assumption_9(cls): { "id": "mi(6,8,5)", "action": "click", - "policy": "add_assumption(sudoku(6,8,5))", + "operation": "add_assumption(sudoku(6,8,5))", } ], "children": [], @@ -66106,7 +66106,7 @@ def post_assumption_9(cls): { "id": "mi(6,8,4)", "action": "click", - "policy": "add_assumption(sudoku(6,8,4))", + "operation": "add_assumption(sudoku(6,8,4))", } ], "children": [], @@ -66126,7 +66126,7 @@ def post_assumption_9(cls): { "id": "mi(6,8,3)", "action": "click", - "policy": "add_assumption(sudoku(6,8,3))", + "operation": "add_assumption(sudoku(6,8,3))", } ], "children": [], @@ -66146,7 +66146,7 @@ def post_assumption_9(cls): { "id": "mi(6,8,1)", "action": "click", - "policy": "add_assumption(sudoku(6,8,1))", + "operation": "add_assumption(sudoku(6,8,1))", } ], "children": [], @@ -66187,7 +66187,7 @@ def post_assumption_9(cls): { "id": "m(4,7)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(4,7,any))", + "operation": "remove_assumption_signature(sudoku(4,7,any))", } ], "children": [ @@ -66206,7 +66206,7 @@ def post_assumption_9(cls): { "id": "mi(4,7,5)", "action": "click", - "policy": "add_assumption(sudoku(4,7,5))", + "operation": "add_assumption(sudoku(4,7,5))", } ], "children": [], @@ -66226,7 +66226,7 @@ def post_assumption_9(cls): { "id": "mi(4,7,2)", "action": "click", - "policy": "add_assumption(sudoku(4,7,2))", + "operation": "add_assumption(sudoku(4,7,2))", } ], "children": [], @@ -66246,7 +66246,7 @@ def post_assumption_9(cls): { "id": "mi(4,7,1)", "action": "click", - "policy": "add_assumption(sudoku(4,7,1))", + "operation": "add_assumption(sudoku(4,7,1))", } ], "children": [], @@ -66287,7 +66287,7 @@ def post_assumption_9(cls): { "id": "m(6,6)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(6,6,any))", + "operation": "remove_assumption_signature(sudoku(6,6,any))", } ], "children": [ @@ -66306,7 +66306,7 @@ def post_assumption_9(cls): { "id": "mi(6,6,5)", "action": "click", - "policy": "add_assumption(sudoku(6,6,5))", + "operation": "add_assumption(sudoku(6,6,5))", } ], "children": [], @@ -66326,7 +66326,7 @@ def post_assumption_9(cls): { "id": "mi(6,6,3)", "action": "click", - "policy": "add_assumption(sudoku(6,6,3))", + "operation": "add_assumption(sudoku(6,6,3))", } ], "children": [], @@ -66367,7 +66367,7 @@ def post_assumption_9(cls): { "id": "m(5,6)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(5,6,any))", + "operation": "remove_assumption_signature(sudoku(5,6,any))", } ], "children": [ @@ -66386,7 +66386,7 @@ def post_assumption_9(cls): { "id": "mi(5,6,5)", "action": "click", - "policy": "add_assumption(sudoku(5,6,5))", + "operation": "add_assumption(sudoku(5,6,5))", } ], "children": [], @@ -66406,7 +66406,7 @@ def post_assumption_9(cls): { "id": "mi(5,6,3)", "action": "click", - "policy": "add_assumption(sudoku(5,6,3))", + "operation": "add_assumption(sudoku(5,6,3))", } ], "children": [], @@ -66452,7 +66452,7 @@ def post_assumption_9(cls): { "id": "m(3,4)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(3,4,any))", + "operation": "remove_assumption_signature(sudoku(3,4,any))", } ], "children": [ @@ -66471,7 +66471,7 @@ def post_assumption_9(cls): { "id": "mi(3,4,5)", "action": "click", - "policy": "add_assumption(sudoku(3,4,5))", + "operation": "add_assumption(sudoku(3,4,5))", } ], "children": [], @@ -66512,7 +66512,7 @@ def post_assumption_9(cls): { "id": "m(5,2)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(5,2,any))", + "operation": "remove_assumption_signature(sudoku(5,2,any))", } ], "children": [ @@ -66531,7 +66531,7 @@ def post_assumption_9(cls): { "id": "mi(5,2,5)", "action": "click", - "policy": "add_assumption(sudoku(5,2,5))", + "operation": "add_assumption(sudoku(5,2,5))", } ], "children": [], @@ -66551,7 +66551,7 @@ def post_assumption_9(cls): { "id": "mi(5,2,4)", "action": "click", - "policy": "add_assumption(sudoku(5,2,4))", + "operation": "add_assumption(sudoku(5,2,4))", } ], "children": [], @@ -66571,7 +66571,7 @@ def post_assumption_9(cls): { "id": "mi(5,2,1)", "action": "click", - "policy": "add_assumption(sudoku(5,2,1))", + "operation": "add_assumption(sudoku(5,2,1))", } ], "children": [], @@ -66612,7 +66612,7 @@ def post_assumption_9(cls): { "id": "m(4,2)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(4,2,any))", + "operation": "remove_assumption_signature(sudoku(4,2,any))", } ], "children": [ @@ -66631,7 +66631,7 @@ def post_assumption_9(cls): { "id": "mi(4,2,5)", "action": "click", - "policy": "add_assumption(sudoku(4,2,5))", + "operation": "add_assumption(sudoku(4,2,5))", } ], "children": [], @@ -66651,7 +66651,7 @@ def post_assumption_9(cls): { "id": "mi(4,2,1)", "action": "click", - "policy": "add_assumption(sudoku(4,2,1))", + "operation": "add_assumption(sudoku(4,2,1))", } ], "children": [], @@ -66692,7 +66692,7 @@ def post_assumption_9(cls): { "id": "m(2,2)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(2,2,any))", + "operation": "remove_assumption_signature(sudoku(2,2,any))", } ], "children": [ @@ -66711,7 +66711,7 @@ def post_assumption_9(cls): { "id": "mi(2,2,5)", "action": "click", - "policy": "add_assumption(sudoku(2,2,5))", + "operation": "add_assumption(sudoku(2,2,5))", } ], "children": [], @@ -66731,7 +66731,7 @@ def post_assumption_9(cls): { "id": "mi(2,2,4)", "action": "click", - "policy": "add_assumption(sudoku(2,2,4))", + "operation": "add_assumption(sudoku(2,2,4))", } ], "children": [], @@ -66772,7 +66772,7 @@ def post_assumption_9(cls): { "id": "m(6,1)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(6,1,any))", + "operation": "remove_assumption_signature(sudoku(6,1,any))", } ], "children": [ @@ -66791,7 +66791,7 @@ def post_assumption_9(cls): { "id": "mi(6,1,5)", "action": "click", - "policy": "add_assumption(sudoku(6,1,5))", + "operation": "add_assumption(sudoku(6,1,5))", } ], "children": [], @@ -66811,7 +66811,7 @@ def post_assumption_9(cls): { "id": "mi(6,1,2)", "action": "click", - "policy": "add_assumption(sudoku(6,1,2))", + "operation": "add_assumption(sudoku(6,1,2))", } ], "children": [], @@ -66852,7 +66852,7 @@ def post_assumption_9(cls): { "id": "m(1,1)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(1,1,any))", + "operation": "remove_assumption_signature(sudoku(1,1,any))", } ], "children": [ @@ -66871,7 +66871,7 @@ def post_assumption_9(cls): { "id": "mi(1,1,5)", "action": "click", - "policy": "add_assumption(sudoku(1,1,5))", + "operation": "add_assumption(sudoku(1,1,5))", } ], "children": [], @@ -66891,7 +66891,7 @@ def post_assumption_9(cls): { "id": "mi(1,1,2)", "action": "click", - "policy": "add_assumption(sudoku(1,1,2))", + "operation": "add_assumption(sudoku(1,1,2))", } ], "children": [], @@ -66911,7 +66911,7 @@ def post_assumption_9(cls): { "id": "mi(1,1,1)", "action": "click", - "policy": "add_assumption(sudoku(1,1,1))", + "operation": "add_assumption(sudoku(1,1,1))", } ], "children": [], @@ -66952,7 +66952,7 @@ def post_assumption_9(cls): { "id": "m(9,7)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(9,7,any))", + "operation": "remove_assumption_signature(sudoku(9,7,any))", } ], "children": [ @@ -66971,7 +66971,7 @@ def post_assumption_9(cls): { "id": "mi(9,7,4)", "action": "click", - "policy": "add_assumption(sudoku(9,7,4))", + "operation": "add_assumption(sudoku(9,7,4))", } ], "children": [], @@ -66991,7 +66991,7 @@ def post_assumption_9(cls): { "id": "mi(9,7,2)", "action": "click", - "policy": "add_assumption(sudoku(9,7,2))", + "operation": "add_assumption(sudoku(9,7,2))", } ], "children": [], @@ -67032,7 +67032,7 @@ def post_assumption_9(cls): { "id": "m(3,7)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(3,7,any))", + "operation": "remove_assumption_signature(sudoku(3,7,any))", } ], "children": [ @@ -67051,7 +67051,7 @@ def post_assumption_9(cls): { "id": "mi(3,7,4)", "action": "click", - "policy": "add_assumption(sudoku(3,7,4))", + "operation": "add_assumption(sudoku(3,7,4))", } ], "children": [], @@ -67071,7 +67071,7 @@ def post_assumption_9(cls): { "id": "mi(3,7,3)", "action": "click", - "policy": "add_assumption(sudoku(3,7,3))", + "operation": "add_assumption(sudoku(3,7,3))", } ], "children": [], @@ -67091,7 +67091,7 @@ def post_assumption_9(cls): { "id": "mi(3,7,1)", "action": "click", - "policy": "add_assumption(sudoku(3,7,1))", + "operation": "add_assumption(sudoku(3,7,1))", } ], "children": [], @@ -67137,7 +67137,7 @@ def post_assumption_9(cls): { "id": "m(1,5)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(1,5,any))", + "operation": "remove_assumption_signature(sudoku(1,5,any))", } ], "children": [ @@ -67156,7 +67156,7 @@ def post_assumption_9(cls): { "id": "mi(1,5,4)", "action": "click", - "policy": "add_assumption(sudoku(1,5,4))", + "operation": "add_assumption(sudoku(1,5,4))", } ], "children": [], @@ -67197,7 +67197,7 @@ def post_assumption_9(cls): { "id": "m(5,3)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(5,3,any))", + "operation": "remove_assumption_signature(sudoku(5,3,any))", } ], "children": [ @@ -67216,7 +67216,7 @@ def post_assumption_9(cls): { "id": "mi(5,3,4)", "action": "click", - "policy": "add_assumption(sudoku(5,3,4))", + "operation": "add_assumption(sudoku(5,3,4))", } ], "children": [], @@ -67236,7 +67236,7 @@ def post_assumption_9(cls): { "id": "mi(5,3,2)", "action": "click", - "policy": "add_assumption(sudoku(5,3,2))", + "operation": "add_assumption(sudoku(5,3,2))", } ], "children": [], @@ -67277,7 +67277,7 @@ def post_assumption_9(cls): { "id": "m(7,7)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(7,7,any))", + "operation": "remove_assumption_signature(sudoku(7,7,any))", } ], "children": [ @@ -67296,7 +67296,7 @@ def post_assumption_9(cls): { "id": "mi(7,7,3)", "action": "click", - "policy": "add_assumption(sudoku(7,7,3))", + "operation": "add_assumption(sudoku(7,7,3))", } ], "children": [], @@ -67316,7 +67316,7 @@ def post_assumption_9(cls): { "id": "mi(7,7,1)", "action": "click", - "policy": "add_assumption(sudoku(7,7,1))", + "operation": "add_assumption(sudoku(7,7,1))", } ], "children": [], @@ -67362,7 +67362,7 @@ def post_assumption_9(cls): { "id": "m(1,2)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(1,2,any))", + "operation": "remove_assumption_signature(sudoku(1,2,any))", } ], "children": [ @@ -67381,7 +67381,7 @@ def post_assumption_9(cls): { "id": "mi(1,2,3)", "action": "click", - "policy": "add_assumption(sudoku(1,2,3))", + "operation": "add_assumption(sudoku(1,2,3))", } ], "children": [], @@ -67427,7 +67427,7 @@ def post_assumption_9(cls): { "id": "m(9,1)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(9,1,any))", + "operation": "remove_assumption_signature(sudoku(9,1,any))", } ], "children": [ @@ -67446,7 +67446,7 @@ def post_assumption_9(cls): { "id": "mi(9,1,3)", "action": "click", - "policy": "add_assumption(sudoku(9,1,3))", + "operation": "add_assumption(sudoku(9,1,3))", } ], "children": [], @@ -67492,7 +67492,7 @@ def post_assumption_9(cls): { "id": "m(7,6)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(7,6,any))", + "operation": "remove_assumption_signature(sudoku(7,6,any))", } ], "children": [ @@ -67511,7 +67511,7 @@ def post_assumption_9(cls): { "id": "mi(7,6,2)", "action": "click", - "policy": "add_assumption(sudoku(7,6,2))", + "operation": "add_assumption(sudoku(7,6,2))", } ], "children": [], @@ -67552,7 +67552,7 @@ def post_assumption_9(cls): { "id": "m(6,4)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(6,4,any))", + "operation": "remove_assumption_signature(sudoku(6,4,any))", } ], "children": [ @@ -67571,7 +67571,7 @@ def post_assumption_9(cls): { "id": "mi(6,4,2)", "action": "click", - "policy": "add_assumption(sudoku(6,4,2))", + "operation": "add_assumption(sudoku(6,4,2))", } ], "children": [], @@ -67591,7 +67591,7 @@ def post_assumption_9(cls): { "id": "mi(6,4,1)", "action": "click", - "policy": "add_assumption(sudoku(6,4,1))", + "operation": "add_assumption(sudoku(6,4,1))", } ], "children": [], @@ -67632,7 +67632,7 @@ def post_assumption_9(cls): { "id": "m(5,4)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(5,4,any))", + "operation": "remove_assumption_signature(sudoku(5,4,any))", } ], "children": [ @@ -67651,7 +67651,7 @@ def post_assumption_9(cls): { "id": "mi(5,4,2)", "action": "click", - "policy": "add_assumption(sudoku(5,4,2))", + "operation": "add_assumption(sudoku(5,4,2))", } ], "children": [], @@ -67671,7 +67671,7 @@ def post_assumption_9(cls): { "id": "mi(5,4,1)", "action": "click", - "policy": "add_assumption(sudoku(5,4,1))", + "operation": "add_assumption(sudoku(5,4,1))", } ], "children": [], @@ -67717,7 +67717,7 @@ def post_assumption_9(cls): { "id": "m(8,5)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(8,5,any))", + "operation": "remove_assumption_signature(sudoku(8,5,any))", } ], "children": [ @@ -67736,7 +67736,7 @@ def post_assumption_9(cls): { "id": "mi(8,5,1)", "action": "click", - "policy": "add_assumption(sudoku(8,5,1))", + "operation": "add_assumption(sudoku(8,5,1))", } ], "children": [], @@ -67782,7 +67782,7 @@ def post_assumption_9(cls): { "id": "m(9,3)", "action": "clear", - "policy": "remove_assumption_signature(sudoku(9,3,any))", + "operation": "remove_assumption_signature(sudoku(9,3,any))", } ], "children": [ @@ -67801,7 +67801,7 @@ def post_assumption_9(cls): { "id": "mi(9,3,1)", "action": "click", - "policy": "add_assumption(sudoku(9,3,1))", + "operation": "add_assumption(sudoku(9,3,1))", } ], "children": [], @@ -67850,7 +67850,7 @@ def post_assumption_9(cls): { "id": "ms_select", "action": "click", - "policy": "select", + "operation": "select", } ], "children": [], @@ -67875,7 +67875,7 @@ def post_assumption_9(cls): { "id": "ms_next", "action": "click", - "policy": "next_solution", + "operation": "next_solution", } ], "children": [], @@ -67900,7 +67900,7 @@ def post_assumption_9(cls): { "id": "ms_clear", "action": "click", - "policy": "clear_assumptions", + "operation": "clear_assumptions", } ], "children": [],