input-color-picker
Version:
Color picker library produced in Angular language.
1 lines • 24.1 kB
Source Map (JSON)
{"version":3,"file":"input-color-picker.mjs","sources":["../../../projects/input-color-picker/src/lib/input-color-picker.directive.ts","../../../projects/input-color-picker/src/lib/input-color-picker.ts","../../../projects/input-color-picker/src/lib/input-color-picker.html","../../../projects/input-color-picker/src/lib/input-color-picker.module.ts","../../../projects/input-color-picker/src/public-api.ts","../../../projects/input-color-picker/src/input-color-picker.ts"],"sourcesContent":["import {\n Input,\n Directive,\n} from \"@angular/core\"\nimport {\n ControlValueAccessor\n} from \"@angular/forms\"\n\nexport class Color {\n\n public x: number\n public y: number\n\n public palette: Palette\n\n constructor ( x: number, y: number, palette: Palette ) {\n\n this.x = x\n this.y = y\n\n this.palette = palette\n }\n}\n\nexport class Palette {\n\n public code: string\n public name: string\n\n constructor ( code: string, name: string ) {\n\n this.code = code\n this.name = name\n }\n}\n\n@Directive( {\n\n selector: '[col], [palette], [boxHeight], [colorWidth], [colorHeight], [placeholder]',\n standalone: true\n} )\nexport class InputColorPickerDirective implements ControlValueAccessor {\n\n public raw: string | undefined\n\n public onChange: any = () => {}\n public onTouched: any = () => {}\n\n @Input() public col: number = 40\n @Input() public palette ? : Array < Palette > ;\n @Input() public boxHeight: number = 48\n @Input() public colorWidth: number = 20\n @Input() public colorHeight: number = 20\n @Input() public placeholder: string = 'Color selection'\n\n constructor() {}\n\n get value(): string | undefined {\n\n return this.raw\n }\n\n set value( raw: string | undefined ) {\n\n if ( this.raw !== raw ) this.raw = raw\n }\n\n writeValue( raw: string ) {\n\n this.raw = raw\n }\n\n registerOnChange( func: any ): void {\n\n this.onChange = func\n }\n\n registerOnTouched( func: any ): void {\n\n this.onTouched = func\n }\n}","import {\n Inject,\n OnChanges,\n Component,\n ViewChild,\n ElementRef,\n forwardRef,\n PLATFORM_ID,\n AfterViewInit,\n} from '@angular/core'\nimport {\n FormsModule,\n NG_VALUE_ACCESSOR\n} from '@angular/forms'\nimport {\n CommonModule,\n isPlatformBrowser\n} from '@angular/common'\n\nimport {\n Color,\n Palette,\n InputColorPickerDirective,\n} from './input-color-picker.directive'\n\nimport defaultPalette from './palette.json'\n\n@Component( {\n\n imports: [\n\n FormsModule,\n CommonModule\n ],\n standalone: true,\n selector: 'input-color-picker',\n templateUrl: './input-color-picker.html',\n styleUrls: [ './input-color-picker.scss' ],\n providers: [ {\n\n multi: true,\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef( () => InputColorPickerComponent )\n } ],\n} )\nexport class InputColorPickerComponent extends InputColorPickerDirective implements OnChanges, AfterViewInit {\n\n public box: any\n public hover ? : Color\n public picker!: Array < Color > ;\n\n @ViewChild( 'svg' ) svg!: ElementRef\n\n constructor(\n\n @Inject( PLATFORM_ID ) private platformId: Object,\n\n private element: ElementRef ) {\n\n super()\n }\n\n ngOnChanges(): void {\n\n if ( !isPlatformBrowser( this.platformId ) ) return\n\n this.setPicker()\n }\n\n ngAfterViewInit(): void {\n\n if ( !isPlatformBrowser( this.platformId ) ) return\n\n this.setPicker()\n }\n\n /* Set */\n setPicker(): void {\n\n if ( !this.palette || this.palette?.length < 1 ) this.palette = defaultPalette\n\n this.box = [ 0, 0, this.col * this.colorWidth, this.colorHeight * Math.ceil( this.palette.length / this.col ) ].join( ' ' )\n\n this.picker = Array.from( this.palette, ( p: Palette, i: number ) => new Color( this.colorWidth * ( i % this.col ), this.colorHeight * Math.floor( i / this.col ), p ) )\n }\n\n /* Action */\n onOpen(): void {\n\n this.element.nativeElement.querySelector( '.modal-container' ).classList.add( 'active' )\n }\n\n onClose(): void {\n\n this.element.nativeElement.querySelector( '.modal-container' ).classList.remove( 'active' )\n }\n\n onClick( i: number ): void {\n\n this.value = this.palette![ i ].code\n\n this.onChange( this.value )\n\n this.onClose()\n }\n\n onInput(): void {\n\n this.onChange( this.value )\n\n if ( this.value && this.value.length ) return\n\n this.onClose()\n }\n\n onEnter( event ? : any, index ? : number ): void {\n\n let tooltip = this.element.nativeElement.querySelector( '.tooltip' )\n\n if ( event ) {\n\n this.hover = this.picker[ index! ]\n\n let parent = this.svg?.nativeElement.getBoundingClientRect()\n\n let client = event.target.getBoundingClientRect()\n\n let scroll = this.element.nativeElement.querySelector( '.palette-container' ).scrollTop\n\n tooltip.style.top = `${ client.top - parent.top - scroll }px`\n\n tooltip.style.left = `${ client.left - parent.left }px`\n\n return\n }\n\n tooltip.classList.add( 'active' )\n }\n\n onLeave(): void {\n\n this.element.nativeElement.querySelector( '.tooltip' ).classList.remove( 'active' )\n }\n\n /* Get */\n get getGray(): boolean {\n\n return this.raw ? false : true\n }\n\n get getText(): string {\n\n return this.raw || this.placeholder\n }\n}\n","<section [style.line-height.px]=\"boxHeight\">\n\n <div class=\"button-container\">\n\n <div [style.background-color]=\"raw\" class=\"color\"></div>\n\n <a (click)=\"onOpen()\" [class.gray]=\"getGray\">{{ getText }}</a>\n </div>\n\n <div class=\"modal-container\">\n\n <div>\n\n <input [(ngModel)]=\"raw\" (ngModelChange)=\"onInput()\" (keyup.enter)=\"onClose()\" [style.height.px]=\"boxHeight\" [style.line-height.px]=\"boxHeight\" name=\"raw\" type=\"search\" placeholder=\"#000000 ~ #FFFFFF\">\n </div>\n\n <div>\n\n <div class=\"palette-container\">\n\n <svg #svg (mouseenter)=\"onEnter()\" (mouseleave)=\"onLeave()\" [attr.viewBox]=\"box\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" preserveAspectRatio=\"xMidYMid meet\">\n\n <rect *ngFor=\"let color of picker let index = index\" (click)=\"onClick( index )\" (mouseenter)=\"onEnter( $event, index )\" [attr.x]=\"color.x\" [attr.y]=\"color.y\" [attr.fill]=\"color.palette.code\" [attr.name]=\"color.palette.name\" [attr.width]=\"colorWidth\" [attr.height]=\"colorHeight\"></rect>\n </svg>\n </div>\n </div>\n\n <div class=\"tooltip\">\n\n <div class=\"text\">{{ hover?.palette?.name }}</div>\n\n <div [style.background-color]=\"hover?.palette?.code\" class=\"color\"></div>\n </div>\n </div>\n</section>\n","import {\r\n NgModule\r\n} from '@angular/core'\r\nimport {\r\n FormsModule\r\n} from '@angular/forms'\r\nimport {\r\n CommonModule\r\n} from '@angular/common'\r\n\r\nimport {\r\n InputColorPickerComponent\r\n} from './input-color-picker'\r\n\r\n@NgModule( {\r\n\r\n imports: [\r\n\r\n FormsModule,\r\n CommonModule,\r\n\r\n InputColorPickerComponent\r\n ],\r\n exports: [\r\n\r\n InputColorPickerComponent\r\n ]\r\n} )\r\nexport class InputColorPickerModule {}","/*\n * Public API Surface of color-picker\n */\n\nexport * from './lib/input-color-picker'\nexport * from './lib/input-color-picker.module'\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}