{"version":3,"file":"deja-js-component-core.mjs","sources":["../../../../projects/deja-js/component/core/clipboard/clipboard.service.ts","../../../../projects/deja-js/component/core/clipboard/index.ts","../../../../projects/deja-js/component/core/date-fns/date-fns-utils.ts","../../../../projects/deja-js/component/core/date-fns/index.ts","../../../../projects/deja-js/component/core/destroy/destroy.ts","../../../../projects/deja-js/component/core/destroy/index.ts","../../../../projects/deja-js/component/core/diacritics/diacritic.service.ts","../../../../projects/deja-js/component/core/diacritics/index.ts","../../../../projects/deja-js/component/core/events/cancelable-event.interface.ts","../../../../projects/deja-js/component/core/events/index.ts","../../../../projects/deja-js/component/core/forms/input-mixin.ts","../../../../projects/deja-js/component/core/forms/index.ts","../../../../projects/deja-js/component/core/id/id.service.ts","../../../../projects/deja-js/component/core/id/index.ts","../../../../projects/deja-js/component/core/lazy-loading/lazy-loader.service.ts","../../../../projects/deja-js/component/core/lazy-loading/dialog.service.ts","../../../../projects/deja-js/component/core/lazy-loading/index.ts","../../../../projects/deja-js/component/core/media/media.service.ts","../../../../projects/deja-js/component/core/media/index.ts","../../../../projects/deja-js/component/core/message-box/message-box.model.ts","../../../../projects/deja-js/component/core/message-box/index.ts","../../../../projects/deja-js/component/core/overlay/connection-position-pair.ts","../../../../projects/deja-js/component/core/overlay/index.ts","../../../../projects/deja-js/component/core/resize-listener/resize-listener.directive.ts","../../../../projects/deja-js/component/core/resize-listener/index.ts","../../../../projects/deja-js/component/core/slimscroll/slimscroll.directive.ts","../../../../projects/deja-js/component/core/slimscroll/index.ts","../../../../projects/deja-js/component/core/text/text-metrics.service.ts","../../../../projects/deja-js/component/core/text/index.ts","../../../../projects/deja-js/component/core/util/html-utils.ts","../../../../projects/deja-js/component/core/util/reg-exp-utils.ts","../../../../projects/deja-js/component/core/util/date-utils.ts","../../../../projects/deja-js/component/core/util/index.ts","../../../../projects/deja-js/component/core/validation/child-validator.directive.ts","../../../../projects/deja-js/component/core/validation/validation-error.ts","../../../../projects/deja-js/component/core/validation/validation-messages.ts","../../../../projects/deja-js/component/core/validation/index.ts","../../../../projects/deja-js/component/core/keycodes.enum.ts","../../../../projects/deja-js/component/core/custom-operators.ts","../../../../projects/deja-js/component/core/cache.ts","../../../../projects/deja-js/component/core/index.ts","../../../../projects/deja-js/component/core/deja-js-component-core.ts"],"sourcesContent":["/*\n *  @license\n *  Copyright Hôpitaux Universitaires de Genève. All Rights Reserved.\n *\n *  Use of this source code is governed by an Apache-2.0 license that can be\n *  found in the LICENSE file at https://github.com/DSI-HUG/dejajs-components/blob/master/LICENSE\n */\n\nimport { Injectable } from '@angular/core';\n\n/**\n * Global property bag for copy paste\n */\n@Injectable({\n    providedIn: 'root'\n})\nexport class DejaClipboardService {\n    private clipboard = {} as { [key: string]: unknown };\n\n    public get(key: string): unknown {\n        return this.clipboard[key];\n    }\n\n    public set(key: string, value: unknown): void {\n        this.clipboard[key] = value;\n    }\n\n    public isAvailable(key: string): boolean {\n        return !!this.clipboard[key];\n    }\n\n    public clear(): void {\n        this.clipboard = {};\n    }\n}\n","/*\n *  @license\n *  Copyright Hôpitaux Universitaires de Genève. All Rights Reserved.\n *\n *  Use of this source code is governed by an Apache-2.0 license that can be\n *  found in the LICENSE file at https://github.com/DSI-HUG/dejajs-components/blob/master/LICENSE\n */\n\nimport { NgModule } from '@angular/core';\n\n@NgModule()\nexport class DejaClipboardModule { }\n\nexport * from './clipboard.service';\n","/*\n *  @license\n *  Copyright Hôpitaux Universitaires de Genève. All Rights Reserved.\n *\n *  Use of this source code is governed by an Apache-2.0 license that can be\n *  found in the LICENSE file at https://github.com/DSI-HUG/dejajs-components/blob/master/LICENSE\n */\nimport { format, Locale } from 'date-fns';\nimport { enUS } from 'date-fns/locale';\n\n// default Locale in date-fns is en-US: https://github.com/date-fns/date-fns/blob/master/src/format/index.js\nlet globalLocale: Locale = enUS;\n\nexport const setLocale = (locale: Locale): void => {\n    globalLocale = locale;\n};\n\nexport const formatWithLocale = (date: Date | number, dateFormat: string): string => format(date, dateFormat, { locale: globalLocale });\n","/*\n *  @license\n *  Copyright Hôpitaux Universitaires de Genève. All Rights Reserved.\n *\n *  Use of this source code is governed by an Apache-2.0 license that can be\n *  found in the LICENSE file at https://github.com/DSI-HUG/dejajs-components/blob/master/LICENSE\n */\n\nexport * from './date-fns-utils';\n","/*\n *  @license\n *  Copyright Hôpitaux Universitaires de Genève. All Rights Reserved.\n *\n *  Use of this source code is governed by an Apache-2.0 license that can be\n *  found in the LICENSE file at https://github.com/DSI-HUG/dejajs-components/blob/master/LICENSE\n */\n\nimport { Directive, OnDestroy } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n@Directive()\n// eslint-disable-next-line @angular-eslint/directive-class-suffix\nexport class Destroy implements OnDestroy {\n\n    protected destroyed$ = new Subject<void>();\n\n    public ngOnDestroy(): void {\n        if (this.destroyed$.closed) {\n            // Observable already unsubscribed\n            // eslint-disable-next-line no-debugger\n            debugger;\n            return;\n        }\n\n        this.destroyed$.next();\n        this.destroyed$.unsubscribe();\n    }\n}\n","/*\n *  @license\n *  Copyright Hôpitaux Universitaires de Genève. All Rights Reserved.\n *\n *  Use of this source code is governed by an Apache-2.0 license that can be\n *  found in the LICENSE file at https://github.com/DSI-HUG/dejajs-components/blob/master/LICENSE\n */\n\nexport * from './destroy';\n","/*\n *  @license\n *  Copyright Hôpitaux Universitaires de Genève. All Rights Reserved.\n *\n *  Use of this source code is governed by an Apache-2.0 license that can be\n *  found in the LICENSE file at https://github.com/DSI-HUG/dejajs-components/blob/master/LICENSE\n */\n\nimport { Injectable } from '@angular/core';\n\n/**\n * Remove diacritics (accent and other marks) on characters, and dissociate double characters.\n * Based on the character map of http://lehelk.com/2011/05/06/script-to-remove-diacritics/\n * but per-character walk (improved performance).\n *\n * Licensed under WTFPL v2 http://sam.zoy.org/wtfpl/COPYING\n */\n\n@Injectable({\n    providedIn: 'root'\n})\nexport class DiacriticService {\n    // eslint-disable-next-line @typescript-eslint/naming-convention\n    private static MAP = { 9398: 'A', 65313: 'A', 192: 'A', 193: 'A', 194: 'A', 7846: 'A', 7844: 'A', 7850: 'A', 7848: 'A', 195: 'A', 256: 'A', 258: 'A', 7856: 'A', 7854: 'A', 7860: 'A', 7858: 'A', 550: 'A', 480: 'A', 196: 'A', 478: 'A', 7842: 'A', 197: 'A', 506: 'A', 461: 'A', 512: 'A', 514: 'A', 7840: 'A', 7852: 'A', 7862: 'A', 7680: 'A', 260: 'A', 570: 'A', 11375: 'A', 42802: 'AA', 198: 'AE', 508: 'AE', 482: 'AE', 42804: 'AO', 42806: 'AU', 42808: 'AV', 42810: 'AV', 42812: 'AY', 9399: 'B', 65314: 'B', 7682: 'B', 7684: 'B', 7686: 'B', 579: 'B', 386: 'B', 385: 'B', 9400: 'C', 65315: 'C', 262: 'C', 264: 'C', 266: 'C', 268: 'C', 199: 'C', 7688: 'C', 391: 'C', 571: 'C', 42814: 'C', 9401: 'D', 65316: 'D', 7690: 'D', 270: 'D', 7692: 'D', 7696: 'D', 7698: 'D', 7694: 'D', 272: 'D', 395: 'D', 394: 'D', 393: 'D', 42873: 'D', 497: 'DZ', 452: 'DZ', 498: 'Dz', 453: 'Dz', 9402: 'E', 65317: 'E', 200: 'E', 201: 'E', 202: 'E', 7872: 'E', 7870: 'E', 7876: 'E', 7874: 'E', 7868: 'E', 274: 'E', 7700: 'E', 7702: 'E', 276: 'E', 278: 'E', 203: 'E', 7866: 'E', 282: 'E', 516: 'E', 518: 'E', 7864: 'E', 7878: 'E', 552: 'E', 7708: 'E', 280: 'E', 7704: 'E', 7706: 'E', 400: 'E', 398: 'E', 9403: 'F', 65318: 'F', 7710: 'F', 401: 'F', 42875: 'F', 9404: 'G', 65319: 'G', 500: 'G', 284: 'G', 7712: 'G', 286: 'G', 288: 'G', 486: 'G', 290: 'G', 484: 'G', 403: 'G', 42912: 'G', 42877: 'G', 42878: 'G', 9405: 'H', 65320: 'H', 292: 'H', 7714: 'H', 7718: 'H', 542: 'H', 7716: 'H', 7720: 'H', 7722: 'H', 294: 'H', 11367: 'H', 11381: 'H', 42893: 'H', 9406: 'I', 65321: 'I', 204: 'I', 205: 'I', 206: 'I', 296: 'I', 298: 'I', 300: 'I', 304: 'I', 207: 'I', 7726: 'I', 7880: 'I', 463: 'I', 520: 'I', 522: 'I', 7882: 'I', 302: 'I', 7724: 'I', 407: 'I', 9407: 'J', 65322: 'J', 308: 'J', 584: 'J', 9408: 'K', 65323: 'K', 7728: 'K', 488: 'K', 7730: 'K', 310: 'K', 7732: 'K', 408: 'K', 11369: 'K', 42816: 'K', 42818: 'K', 42820: 'K', 42914: 'K', 9409: 'L', 65324: 'L', 319: 'L', 313: 'L', 317: 'L', 7734: 'L', 7736: 'L', 315: 'L', 7740: 'L', 7738: 'L', 321: 'L', 573: 'L', 11362: 'L', 11360: 'L', 42824: 'L', 42822: 'L', 42880: 'L', 455: 'LJ', 456: 'Lj', 9410: 'M', 65325: 'M', 7742: 'M', 7744: 'M', 7746: 'M', 11374: 'M', 412: 'M', 9411: 'N', 65326: 'N', 504: 'N', 323: 'N', 209: 'N', 7748: 'N', 327: 'N', 7750: 'N', 325: 'N', 7754: 'N', 7752: 'N', 544: 'N', 413: 'N', 42896: 'N', 42916: 'N', 458: 'NJ', 459: 'Nj', 9412: 'O', 65327: 'O', 210: 'O', 211: 'O', 212: 'O', 7890: 'O', 7888: 'O', 7894: 'O', 7892: 'O', 213: 'O', 7756: 'O', 556: 'O', 7758: 'O', 332: 'O', 7760: 'O', 7762: 'O', 334: 'O', 558: 'O', 560: 'O', 214: 'O', 554: 'O', 7886: 'O', 336: 'O', 465: 'O', 524: 'O', 526: 'O', 416: 'O', 7900: 'O', 7898: 'O', 7904: 'O', 7902: 'O', 7906: 'O', 7884: 'O', 7896: 'O', 490: 'O', 492: 'O', 216: 'O', 510: 'O', 390: 'O', 415: 'O', 42826: 'O', 42828: 'O', 338: 'OE', 418: 'OI', 42830: 'OO', 546: 'OU', 9413: 'P', 65328: 'P', 7764: 'P', 7766: 'P', 420: 'P', 11363: 'P', 42832: 'P', 42834: 'P', 42836: 'P', 9414: 'Q', 65329: 'Q', 42838: 'Q', 42840: 'Q', 586: 'Q', 9415: 'R', 65330: 'R', 340: 'R', 7768: 'R', 344: 'R', 528: 'R', 530: 'R', 7770: 'R', 7772: 'R', 342: 'R', 7774: 'R', 588: 'R', 11364: 'R', 42842: 'R', 42918: 'R', 42882: 'R', 9416: 'S', 65331: 'S', 346: 'S', 7780: 'S', 348: 'S', 7776: 'S', 352: 'S', 7782: 'S', 7778: 'S', 7784: 'S', 536: 'S', 350: 'S', 11390: 'S', 42920: 'S', 42884: 'S', 7838: 'SS', 9417: 'T', 65332: 'T', 7786: 'T', 356: 'T', 7788: 'T', 538: 'T', 354: 'T', 7792: 'T', 7790: 'T', 358: 'T', 428: 'T', 430: 'T', 574: 'T', 42886: 'T', 42792: 'TZ', 9418: 'U', 65333: 'U', 217: 'U', 218: 'U', 219: 'U', 360: 'U', 7800: 'U', 362: 'U', 7802: 'U', 364: 'U', 220: 'U', 475: 'U', 471: 'U', 469: 'U', 473: 'U', 7910: 'U', 366: 'U', 368: 'U', 467: 'U', 532: 'U', 534: 'U', 431: 'U', 7914: 'U', 7912: 'U', 7918: 'U', 7916: 'U', 7920: 'U', 7908: 'U', 7794: 'U', 370: 'U', 7798: 'U', 7796: 'U', 580: 'U', 9419: 'V', 65334: 'V', 7804: 'V', 7806: 'V', 434: 'V', 42846: 'V', 581: 'V', 42848: 'VY', 9420: 'W', 65335: 'W', 7808: 'W', 7810: 'W', 372: 'W', 7814: 'W', 7812: 'W', 7816: 'W', 11378: 'W', 9421: 'X', 65336: 'X', 7818: 'X', 7820: 'X', 9422: 'Y', 65337: 'Y', 7922: 'Y', 221: 'Y', 374: 'Y', 7928: 'Y', 562: 'Y', 7822: 'Y', 376: 'Y', 7926: 'Y', 7924: 'Y', 435: 'Y', 590: 'Y', 7934: 'Y', 9423: 'Z', 65338: 'Z', 377: 'Z', 7824: 'Z', 379: 'Z', 381: 'Z', 7826: 'Z', 7828: 'Z', 437: 'Z', 548: 'Z', 11391: 'Z', 11371: 'Z', 42850: 'Z', 9424: 'a', 65345: 'a', 7834: 'a', 224: 'a', 225: 'a', 226: 'a', 7847: 'a', 7845: 'a', 7851: 'a', 7849: 'a', 227: 'a', 257: 'a', 259: 'a', 7857: 'a', 7855: 'a', 7861: 'a', 7859: 'a', 551: 'a', 481: 'a', 228: 'a', 479: 'a', 7843: 'a', 229: 'a', 507: 'a', 462: 'a', 513: 'a', 515: 'a', 7841: 'a', 7853: 'a', 7863: 'a', 7681: 'a', 261: 'a', 11365: 'a', 592: 'a', 42803: 'aa', 230: 'ae', 509: 'ae', 483: 'ae', 42805: 'ao', 42807: 'au', 42809: 'av', 42811: 'av', 42813: 'ay', 9425: 'b', 65346: 'b', 7683: 'b', 7685: 'b', 7687: 'b', 384: 'b', 387: 'b', 595: 'b', 9426: 'c', 65347: 'c', 263: 'c', 265: 'c', 267: 'c', 269: 'c', 231: 'c', 7689: 'c', 392: 'c', 572: 'c', 42815: 'c', 8580: 'c', 9427: 'd', 65348: 'd', 7691: 'd', 271: 'd', 7693: 'd', 7697: 'd', 7699: 'd', 7695: 'd', 273: 'd', 396: 'd', 598: 'd', 599: 'd', 42874: 'd', 499: 'dz', 454: 'dz', 9428: 'e', 65349: 'e', 232: 'e', 233: 'e', 234: 'e', 7873: 'e', 7871: 'e', 7877: 'e', 7875: 'e', 7869: 'e', 275: 'e', 7701: 'e', 7703: 'e', 277: 'e', 279: 'e', 235: 'e', 7867: 'e', 283: 'e', 517: 'e', 519: 'e', 7865: 'e', 7879: 'e', 553: 'e', 7709: 'e', 281: 'e', 7705: 'e', 7707: 'e', 583: 'e', 603: 'e', 477: 'e', 9429: 'f', 65350: 'f', 7711: 'f', 402: 'f', 42876: 'f', 9430: 'g', 65351: 'g', 501: 'g', 285: 'g', 7713: 'g', 287: 'g', 289: 'g', 487: 'g', 291: 'g', 485: 'g', 608: 'g', 42913: 'g', 7545: 'g', 42879: 'g', 9431: 'h', 65352: 'h', 293: 'h', 7715: 'h', 7719: 'h', 543: 'h', 7717: 'h', 7721: 'h', 7723: 'h', 7830: 'h', 295: 'h', 11368: 'h', 11382: 'h', 613: 'h', 405: 'hv', 9432: 'i', 65353: 'i', 236: 'i', 237: 'i', 238: 'i', 297: 'i', 299: 'i', 301: 'i', 239: 'i', 7727: 'i', 7881: 'i', 464: 'i', 521: 'i', 523: 'i', 7883: 'i', 303: 'i', 7725: 'i', 616: 'i', 305: 'i', 9433: 'j', 65354: 'j', 309: 'j', 496: 'j', 585: 'j', 9434: 'k', 65355: 'k', 7729: 'k', 489: 'k', 7731: 'k', 311: 'k', 7733: 'k', 409: 'k', 11370: 'k', 42817: 'k', 42819: 'k', 42821: 'k', 42915: 'k', 9435: 'l', 65356: 'l', 320: 'l', 314: 'l', 318: 'l', 7735: 'l', 7737: 'l', 316: 'l', 7741: 'l', 7739: 'l', 322: 'l', 410: 'l', 619: 'l', 11361: 'l', 42825: 'l', 42881: 'l', 42823: 'l', 457: 'lj', 9436: 'm', 65357: 'm', 7743: 'm', 7745: 'm', 7747: 'm', 625: 'm', 623: 'm', 9437: 'n', 65358: 'n', 505: 'n', 324: 'n', 241: 'n', 7749: 'n', 328: 'n', 7751: 'n', 326: 'n', 7755: 'n', 7753: 'n', 414: 'n', 626: 'n', 329: 'n', 42897: 'n', 42917: 'n', 460: 'nj', 9438: 'o', 65359: 'o', 242: 'o', 243: 'o', 244: 'o', 7891: 'o', 7889: 'o', 7895: 'o', 7893: 'o', 245: 'o', 7757: 'o', 557: 'o', 7759: 'o', 333: 'o', 7761: 'o', 7763: 'o', 335: 'o', 559: 'o', 561: 'o', 246: 'o', 555: 'o', 7887: 'o', 337: 'o', 466: 'o', 525: 'o', 527: 'o', 417: 'o', 7901: 'o', 7899: 'o', 7905: 'o', 7903: 'o', 7907: 'o', 7885: 'o', 7897: 'o', 491: 'o', 493: 'o', 248: 'o', 511: 'o', 596: 'o', 42827: 'o', 42829: 'o', 629: 'o', 339: 'oe', 630: 'oe', 419: 'oi', 547: 'ou', 42831: 'oo', 9439: 'p', 65360: 'p', 7765: 'p', 7767: 'p', 421: 'p', 7549: 'p', 42833: 'p', 42835: 'p', 42837: 'p', 9440: 'q', 65361: 'q', 587: 'q', 42839: 'q', 42841: 'q', 9441: 'r', 65362: 'r', 341: 'r', 7769: 'r', 345: 'r', 529: 'r', 531: 'r', 7771: 'r', 7773: 'r', 343: 'r', 7775: 'r', 589: 'r', 637: 'r', 42843: 'r', 42919: 'r', 42883: 'r', 9442: 's', 65363: 's', 347: 's', 7781: 's', 349: 's', 7777: 's', 353: 's', 7783: 's', 7779: 's', 7785: 's', 537: 's', 351: 's', 575: 's', 42921: 's', 42885: 's', 383: 's', 7835: 's', 223: 'ss', 9443: 't', 65364: 't', 7787: 't', 7831: 't', 357: 't', 7789: 't', 539: 't', 355: 't', 7793: 't', 7791: 't', 359: 't', 429: 't', 648: 't', 11366: 't', 42887: 't', 42793: 'tz', 9444: 'u', 65365: 'u', 249: 'u', 250: 'u', 251: 'u', 361: 'u', 7801: 'u', 363: 'u', 7803: 'u', 365: 'u', 252: 'u', 476: 'u', 472: 'u', 470: 'u', 474: 'u', 7911: 'u', 367: 'u', 369: 'u', 468: 'u', 533: 'u', 535: 'u', 432: 'u', 7915: 'u', 7913: 'u', 7919: 'u', 7917: 'u', 7921: 'u', 7909: 'u', 7795: 'u', 371: 'u', 7799: 'u', 7797: 'u', 649: 'u', 9445: 'v', 65366: 'v', 7805: 'v', 7807: 'v', 651: 'v', 42847: 'v', 652: 'v', 42849: 'vy', 9446: 'w', 65367: 'w', 7809: 'w', 7811: 'w', 373: 'w', 7815: 'w', 7813: 'w', 7832: 'w', 7817: 'w', 11379: 'w', 9447: 'x', 65368: 'x', 7819: 'x', 7821: 'x', 9448: 'y', 65369: 'y', 7923: 'y', 253: 'y', 375: 'y', 7929: 'y', 563: 'y', 7823: 'y', 255: 'y', 7927: 'y', 7833: 'y', 7925: 'y', 436: 'y', 591: 'y', 7935: 'y', 9449: 'z', 65370: 'z', 378: 'z', 7825: 'z', 380: 'z', 382: 'z', 7827: 'z', 7829: 'z', 438: 'z', 549: 'z', 576: 'z', 11372: 'z', 42851: 'z', 65296: '0', 8320: '0', 9450: '0', 8304: '0', 185: '1', 9332: '1', 8321: '1', 10102: '1', 9461: '1', 9352: '1', 9312: '1', 65297: '1', 178: '2', 10103: '2', 9333: '2', 65298: '2', 8322: '2', 9462: '2', 9313: '2', 9353: '2', 179: '3', 65299: '3', 9354: '3', 9334: '3', 8323: '3', 10104: '3', 9463: '3', 9314: '3', 9464: '4', 9315: '4', 9355: '4', 65300: '4', 8308: '4', 8324: '4', 10105: '4', 9335: '4', 9356: '5', 8325: '5', 9465: '5', 9336: '5', 10106: '5', 9316: '5', 65301: '5', 8309: '5', 9337: '6', 8310: '6', 65302: '6', 10107: '6', 8326: '6', 9317: '6', 9466: '6', 9357: '6', 65303: '7', 8311: '7', 10108: '7', 9467: '7', 9358: '7', 8327: '7', 9338: '7', 9318: '7', 9319: '8', 9359: '8', 9468: '8', 9339: '8', 8312: '8', 65304: '8', 10109: '8', 8328: '8', 9469: '9', 65305: '9', 9360: '9', 10110: '9', 9340: '9', 8329: '9', 9320: '9', 8313: '9' } as Record<number, string>;\n\n    public remove(str: string): string {\n        const newStr = [] as string[];\n        let alter = false;\n        const length = str?.length || 0;\n        try {\n            // eslint-disable-next-line no-loops/no-loops\n            for (let i = 0; i < length; i++) {\n                const c = str.charCodeAt(i);\n                // eslint-disable-next-line @typescript-eslint/no-explicit-any\n                const replacement = DiacriticService.MAP[c];\n                if (replacement) {\n                    newStr.push(replacement);\n                    alter = true;\n                } else {\n                    newStr.push(str.charAt(i));\n                }\n            }\n            if (alter) {\n                str = newStr.join('');\n            }\n        } catch (e) {\n            alert(e);\n        }\n        return str;\n    }\n}\n","/*\n *  @license\n *  Copyright Hôpitaux Universitaires de Genève. All Rights Reserved.\n *\n *  Use of this source code is governed by an Apache-2.0 license that can be\n *  found in the LICENSE file at https://github.com/DSI-HUG/dejajs-components/blob/master/LICENSE\n */\n\nexport * from './diacritic.service';\n","/*\n *  @license\n *  Copyright Hôpitaux Universitaires de Genève. All Rights Reserved.\n *\n *  Use of this source code is governed by an Apache-2.0 license that can be\n *  found in the LICENSE file at https://github.com/DSI-HUG/dejajs-components/blob/master/LICENSE\n */\n\nimport { Subject } from 'rxjs';\n\nexport interface IDejaCancelableEvent extends CustomEvent {\n    cancel$: Subject<unknown>;\n}\n","/*\n *  @license\n *  Copyright Hôpitaux Universitaires de Genève. All Rights Reserved.\n *\n *  Use of this source code is governed by an Apache-2.0 license that can be\n *  found in the LICENSE file at https://github.com/DSI-HUG/dejajs-components/blob/master/LICENSE\n */\n\nexport * from './cancelable-event.interface';\n","/*\n *  @license\n *  Copyright Hôpitaux Universitaires de Genève. All Rights Reserved.\n *\n *  Use of this source code is governed by an Apache-2.0 license that can be\n *  found in the LICENSE file at https://github.com/DSI-HUG/dejajs-components/blob/master/LICENSE\n */\n\n/**\n * Copy of private mixin https://github.com/angular/components/blob/master/src/material/input/input.ts\n * to make easier input forms.\n */\n\n/* eslint-disable @typescript-eslint/naming-convention */\nimport { FormGroupDirective, NgControl, NgForm } from '@angular/forms';\nimport { _Constructor, CanUpdateErrorState, ErrorStateMatcher, mixinErrorState } from '@angular/material/core';\nimport { Subject } from 'rxjs';\n\nexport class MatInputBase {\n    // eslint-disable-next-line rxjs/finnish\n    public stateChanges: Subject<void>;\n\n    public constructor(\n        public _defaultErrorStateMatcher: ErrorStateMatcher,\n        public _parentForm: NgForm,\n        public _parentFormGroup: FormGroupDirective,\n        public ngControl: NgControl\n    ) { }\n}\n\nexport const _MatInputMixinBase: _Constructor<CanUpdateErrorState> & typeof MatInputBase = mixinErrorState(MatInputBase);\n","/*\n *  @license\n *  Copyright Hôpitaux Universitaires de Genève. All Rights Reserved.\n *\n *  Use of this source code is governed by an Apache-2.0 license that can be\n *  found in the LICENSE file at https://github.com/DSI-HUG/dejajs-components/blob/master/LICENSE\n */\n\nimport { FormArray, FormControl, ɵElement } from '@angular/forms';\n\nexport type ControlsOf<T> = {\n    [K in keyof T]:\n    T[K] extends Array<infer U> ? FormArray<FormControl<U>> :\n        T[K] extends Array<infer U> | undefined ? FormArray<FormControl<U>> :\n            T[K] extends ReadonlyArray<infer U> ? FormArray<FormControl<U>> :\n                T[K] extends ReadonlyArray<infer U> | undefined ? FormArray<FormControl<U>> :\n                    ɵElement<T[K], never> | undefined;\n};\n\nexport * from './input-mixin';\n","/*\n *  @license\n *  Copyright Hôpitaux Universitaires de Genève. All Rights Reserved.\n *\n *  Use of this source code is governed by an Apache-2.0 license that can be\n *  found in the LICENSE file at https://github.com/DSI-HUG/dejajs-components/blob/master/LICENSE\n */\n\nimport { Injectable } from '@angular/core';\n\n/** Classe de génération d'un guid. */\n@Injectable({\n    providedIn: 'root'\n})\nexport class IdService {\n    /** Renvoie le guid sous format string. */\n    public generate(): string {\n        let d = new Date().getTime();\n        if (window.performance !== undefined) {\n            if (typeof window.performance.now === 'function') {\n                d += performance.now();\n            }\n        }\n        return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, c => {\n            // eslint-disable-next-line no-bitwise\n            const r = (d + Math.random() * 16) % 16 | 0;\n            d = Math.floor(d / 16);\n            // eslint-disable-next-line no-bitwise\n            return (c === 'x' ? r : (r & 0x3 | 0x8)).toString(16);\n        });\n    }\n}\n","/*\n *  @license\n *  Copyright Hôpitaux Universitaires de Genève. All Rights Reserved.\n *\n *  Use of this source code is governed by an Apache-2.0 license that can be\n *  found in the LICENSE file at https://github.com/DSI-HUG/dejajs-components/blob/master/LICENSE\n */\n\nexport * from './id.service';\n","/*\n *  @license\n *  Copyright Hôpitaux Universitaires de Genève. All Rights Reserved.\n *\n *  Use of this source code is governed by an Apache-2.0 license that can be\n *  found in the LICENSE file at https://github.com/DSI-HUG/dejajs-components/blob/master/LICENSE\n */\n\nimport { ComponentType } from '@angular/cdk/portal';\nimport { Injectable, Injector, ɵcreateInjector as createInjector, Type } from '@angular/core';\nimport { from, map, Observable } from 'rxjs';\n\nexport abstract class AbstractLazyModule<Component> {\n\n    public constructor(\n        public componentType: ComponentType<Component>\n    ) {\n    }\n}\n\nexport interface LoadModuleInfos<T> {\n    injector: Injector;\n    module: T;\n}\n\n@Injectable({\n    providedIn: 'root'\n})\nexport class LazyLoaderService {\n\n    public constructor(private injector: Injector) {\n    }\n\n    public loadModule$<T extends AbstractLazyModule<unknown>>(path: Promise<Type<T>>, parentInjector?: Injector): Observable<LoadModuleInfos<T>> {\n        return from(path).pipe(\n            map(elementModuleOrFactory => {\n                const injector = createInjector(elementModuleOrFactory, parentInjector || this.injector);\n                return {\n                    injector,\n                    module: injector.get(elementModuleOrFactory)\n                };\n            })\n        );\n    }\n}\n","/*\n *  @license\n *  Copyright Hôpitaux Universitaires de Genève. All Rights Reserved.\n *\n *  Use of this source code is governed by an Apache-2.0 license that can be\n *  found in the LICENSE file at https://github.com/DSI-HUG/dejajs-components/blob/master/LICENSE\n */\n\nimport { Type } from '@angular/core';\nimport { MatDialog, MatDialogConfig, MatDialogRef } from '@angular/material/dialog';\nimport { Observable, ReplaySubject, switchMap, take, throttleTime } from 'rxjs';\n\nimport { AbstractLazyModule, LazyLoaderService } from './lazy-loader.service';\n\nexport abstract class DialogService<ReturnType, DataType> {\n    protected openDialogSub$ = new ReplaySubject<MatDialogConfig<DataType>>(1);\n    protected dialogResponse$: Observable<ReturnType>;\n    protected dialogRef: MatDialogRef<unknown, ReturnType>;\n\n    public constructor(\n        private lazyLoaderService: LazyLoaderService,\n        private dialog: MatDialog,\n        matDialogConfig?: MatDialogConfig<DataType>\n    ) {\n        this.dialogResponse$ = this.openDialogSub$.pipe(\n            throttleTime(10),\n            take(1),\n            switchMap(dialogConfig => this.lazyLoaderService.loadModule$(this.getModule(), dialogConfig.injector).pipe(\n                switchMap(moduleInfos => {\n                    const config = { ...matDialogConfig || {} as MatDialogConfig<DataType>, ...dialogConfig };\n                    config.minWidth = config.minWidth || '400px';\n                    config.injector = moduleInfos.injector;\n\n                    this.dialogRef = this.dialog.open<unknown, DataType, ReturnType>(moduleInfos.module.componentType, config);\n\n                    return this.dialogRef.afterClosed();\n                })\n            ))\n        );\n    }\n\n    public openDialog$(dialogData?: DataType, dialogConfig?: MatDialogConfig<DataType>): Observable<ReturnType> {\n        dialogConfig = dialogConfig || {};\n        dialogConfig.data = dialogData ?? {} as DataType;\n        this.openDialogSub$.next(dialogConfig);\n        return this.dialogResponse$;\n    }\n\n    public closeDialog(): void {\n        this.dialogRef.close();\n    }\n\n    protected abstract getModule(): Promise<Type<AbstractLazyModule<unknown>>>;\n}\n","/*\n *  @license\n *  Copyright Hôpitaux Universitaires de Genève. All Rights Reserved.\n *\n *  Use of this source code is governed by an Apache-2.0 license that can be\n *  found in the LICENSE file at https://github.com/DSI-HUG/dejajs-components/blob/master/LICENSE\n */\n\nexport * from './lazy-loader.service';\nexport * from './dialog.service';\n","/*\n *  @license\n *  Copyright Hôpitaux Universitaires de Genève. All Rights Reserved.\n *\n *  Use of this source code is governed by an Apache-2.0 license that can be\n *  found in the LICENSE file at https://github.com/DSI-HUG/dejajs-components/blob/master/LICENSE\n */\n\nimport { Inject, Injectable, InjectionToken, NgZone, OnDestroy, Optional } from '@angular/core';\nimport { BehaviorSubject, distinctUntilChanged, map, Observable } from 'rxjs';\n\nexport interface MediaQueryDefinition {\n    alias: string;\n    mediaQuery: string;\n    overlapping?: boolean;\n}\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const MEDIA_QUERY_DEFINITIONS = new InjectionToken<MediaQueryDefinition[]>('MEDIA_QUERY_DEFINITIONS');\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const DEFAULT_MEDIA_QUERY_DEFINITIONS = [\n    {\n        alias: 'xs',\n        mediaQuery: '(min-width: 0px) and (max-width: 599px)'\n    },\n    {\n        alias: 'gt-xs',\n        overlapping: true,\n        mediaQuery: '(min-width: 600px)'\n    },\n    {\n        alias: 'lt-sm',\n        overlapping: true,\n        mediaQuery: '(max-width: 599px)'\n    },\n    {\n        alias: 'sm',\n        mediaQuery: '(min-width: 600px) and (max-width: 959px)'\n    },\n    {\n        alias: 'gt-sm',\n        overlapping: true,\n        mediaQuery: '(min-width: 960px)'\n    },\n    {\n        alias: 'lt-md',\n        overlapping: true,\n        mediaQuery: '(max-width: 959px)'\n    },\n    {\n        alias: 'md',\n        mediaQuery: '(min-width: 960px) and (max-width: 1279px)'\n    },\n    {\n        alias: 'gt-md',\n        overlapping: true,\n        mediaQuery: '(min-width: 1280px)'\n    },\n    {\n        alias: 'lt-lg',\n        overlapping: true,\n        mediaQuery: '(max-width: 1279px)'\n    },\n    {\n        alias: 'lg',\n        mediaQuery: '(min-width: 1280px) and (max-width: 1919px)'\n    },\n    {\n        alias: 'gt-lg',\n        overlapping: true,\n        mediaQuery: '(min-width: 1920px)'\n    },\n    {\n        alias: 'lt-xl',\n        overlapping: true,\n        mediaQuery: '(max-width: 1920px)'\n    },\n    {\n        alias: 'xl',\n        mediaQuery: '(min-width: 1920px) and (max-width: 5000px)'\n    }\n] as MediaQueryDefinition[];\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const SIMPLIFIED_MEDIA_QUERY_DEFINITIONS = [\n    {\n        alias: 'xs',\n        mediaQuery: '(max-width: 599px)'\n    }, {\n        alias: 'sm',\n        mediaQuery: '(min-width: 600px) and (max-width: 959px)'\n    }, {\n        alias: 'md',\n        mediaQuery: '(min-width: 860px) and (max-width: 1279px)'\n    }, {\n        alias: 'lg',\n        mediaQuery: '(min-width: 1280px)'\n    }\n] as MediaQueryDefinition[];\n\n@Injectable()\nexport class MediaService implements OnDestroy {\n    public isMobile$: Observable<boolean>;\n    public mediaChanged$: BehaviorSubject<string>;\n    public mql = {} as { [alias: string]: MediaQueryList };\n\n    public constructor(private zone: NgZone, @Optional() @Inject(MEDIA_QUERY_DEFINITIONS) mediaDefinitions?: MediaQueryDefinition[]) {\n        if (!mediaDefinitions) {\n            mediaDefinitions = SIMPLIFIED_MEDIA_QUERY_DEFINITIONS;\n        }\n\n        mediaDefinitions.forEach(mediaDefinition => {\n            const { alias, mediaQuery } = mediaDefinition;\n            this.mql[alias] = window.matchMedia(mediaQuery);\n            // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n            this.mql[alias].addEventListener('change', this.onMqlEvent.bind(this, alias));\n            if (this.mql[alias].matches) {\n                this.mediaChanged$ = new BehaviorSubject(alias);\n            }\n        });\n\n        if (!this.mediaChanged$) {\n            this.mediaChanged$ = new BehaviorSubject('lg');\n        }\n\n        this.isMobile$ = this.mediaChanged$.pipe(\n            map(alias => alias === 'xs' || alias === 'sm'),\n            distinctUntilChanged()\n        );\n    }\n\n    public ngOnDestroy(): void {\n        Object.keys(this.mql).forEach(alias => {\n            // eslint-disable-next-line @typescript-eslint/unbound-method\n            this.mql[alias].removeEventListener('change', this.onMqlEvent as never);\n            delete this.mql[alias];\n        });\n    }\n\n    private onMqlEvent(alias: string, event: MediaQueryListEvent): void {\n        this.zone.run(() => {\n            if (event.matches) {\n                this.mediaChanged$.next(alias);\n            }\n        });\n    }\n}\n","/*\n *  @license\n *  Copyright Hôpitaux Universitaires de Genève. All Rights Reserved.\n *\n *  Use of this source code is governed by an Apache-2.0 license that can be\n *  found in the LICENSE file at https://github.com/DSI-HUG/dejajs-components/blob/master/LICENSE\n */\n\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { MediaService } from './media.service';\n\n@NgModule({\n    imports: [CommonModule],\n    providers: [MediaService]\n})\nexport class MediaModule { }\n\nexport * from './media.service';\n","/*\n *  @license\n *  Copyright Hôpitaux Universitaires de Genève. All Rights Reserved.\n *\n *  Use of this source code is governed by an Apache-2.0 license that can be\n *  found in the LICENSE file at https://github.com/DSI-HUG/dejajs-components/blob/master/LICENSE\n */\n\nexport type DejaMessageBoxType = 'info' | 'primary' | 'success' | 'warn' | 'danger';\n\nexport interface DejaMessageBoxAction {\n    text?: string;\n    type?: DejaMessageBoxType;\n    icon?: string;\n    action: () => unknown;\n}\n","/*\n *  @license\n *  Copyright Hôpitaux Universitaires de Genève. All Rights Reserved.\n *\n *  Use of this source code is governed by an Apache-2.0 license that can be\n *  found in the LICENSE file at https://github.com/DSI-HUG/dejajs-components/blob/master/LICENSE\n */\n\nexport * from './message-box.model';\n","/*\n *  @license\n *  Copyright Hôpitaux Universitaires de Genève. All Rights Reserved.\n *\n *  Use of this source code is governed by an Apache-2.0 license that can be\n *  found in the LICENSE file at https://github.com/DSI-HUG/dejajs-components/blob/master/LICENSE\n */\n\nimport { ConnectionPositionPair, OriginConnectionPosition, OverlayConnectionPosition } from '@angular/cdk/overlay';\n\nexport class DejaConnectionPositionPair extends ConnectionPositionPair {\n    // eslint-disable-next-line @typescript-eslint/naming-convention\n    public static default = DejaConnectionPositionPair.parse('start bottom start top,start top start bottom,end bottom end top,end top end bottom');\n\n    public static parse(value: string): ConnectionPositionPair[] {\n        const values = value.trim().split(',');\n        const positions = [] as ConnectionPositionPair[];\n        values.forEach(pos => {\n            const poss = pos.trim().split(' ');\n            if (poss.length !== 4) {\n                throw new Error('Invalid positions property for DejaMenuComponent. String entry must be of type \\'positions=\"start top end bottom\"\\'');\n            }\n\n            const originPosition = {\n                originX: poss[0],\n                originY: poss[1]\n            } as OriginConnectionPosition;\n\n            const overlayPosition = {\n                overlayX: poss[2],\n                overlayY: poss[3]\n            } as OverlayConnectionPosition;\n\n            positions.push(new DejaConnectionPositionPair(originPosition, overlayPosition));\n        });\n\n        return positions;\n    }\n}\n","/*\n *  @license\n *  Copyright Hôpitaux Universitaires de Genève. All Rights Reserved.\n *\n *  Use of this source code is governed by an Apache-2.0 license that can be\n *  found in the LICENSE file at https://github.com/DSI-HUG/dejajs-components/blob/master/LICENSE\n */\n\nexport * from './connection-position-pair';\n","/*\n *  @license\n *  Copyright Hôpitaux Universitaires de Genève. All Rights Reserved.\n *\n *  Use of this source code is governed by an Apache-2.0 license that can be\n *  found in the LICENSE file at https://github.com/DSI-HUG/dejajs-components/blob/master/LICENSE\n */\n\nimport { Directive, ElementRef, EventEmitter, OnDestroy, Output } from '@angular/core';\n\n@Directive({\n    selector: '[resize-listener]'\n})\nexport class DejaResizeListenerDirective implements OnDestroy {\n    @Output() public readonly sizeChanged = new EventEmitter<Event>();\n    private element: HTMLElement;\n    private resizeSensor: HTMLDivElement;\n\n    public constructor(public elementRef: ElementRef) {\n        this.element = elementRef.nativeElement as HTMLElement;\n        this.resizeSensor = document.createElement('div');\n        this.resizeSensor.dir = 'ltr';\n        this.resizeSensor.className = 'resize-sensor';\n        const style = 'position: absolute; left: -10px; top: -10px; right: 0; bottom: 0; overflow: hidden; z-index: -1; visibility: hidden;';\n        const styleChild = 'position: absolute; left: 0; top: 0; transition: 0s;';\n\n        this.resizeSensor.style.cssText = style;\n        this.resizeSensor.innerHTML =\n            `<div class=\"resize-sensor-expand\" style=\"${style}\">\n                <div style=\"${styleChild}\"></div>\n            </div>\n            <div class=\"resize-sensor-shrink\" style=\"${style}\">\n                <div style=\"${styleChild}width: 200%; height: 200%\"></div>\n            </div>`;\n        this.element.appendChild(this.resizeSensor);\n        const expand = this.resizeSensor.children[0] as HTMLElement;\n        const expandChild = expand.children[0] as HTMLElement;\n        const shrink = this.resizeSensor.children[1] as HTMLElement;\n\n        const position = window.getComputedStyle(this.element).getPropertyPriority('position');\n        if ('absolute' !== position && 'relative' !== position && 'fixed' !== position) {\n            this.element.style.position = 'relative';\n        }\n\n        const getElementSize = (e: HTMLElement): { width: number; height: number } => {\n            if (!e.getBoundingClientRect) {\n                return {\n                    width: e.offsetWidth,\n                    height: e.offsetHeight\n                };\n            }\n\n            const rect = e.getBoundingClientRect();\n            return {\n                width: Math.round(rect.width),\n                height: Math.round(rect.height)\n            };\n        };\n\n        let rafId: number;\n        const size = getElementSize(this.element);\n        let lastWidth = size.width;\n        let lastHeight = size.height;\n\n        const reset = (): void => {\n            // set display to block, necessary otherwise hidden elements won't ever work\n            const invisible = this.element.offsetWidth === 0 && this.element.offsetHeight === 0;\n            const saveDisplay = invisible && this.element.style.display;\n\n            if (invisible) {\n                this.element.style.display = 'block';\n            }\n\n            expandChild.style.width = expandChild.style.height = '100000px';\n            expand.scrollLeft = expand.scrollTop = shrink.scrollLeft = shrink.scrollTop = 100000;\n\n            if (invisible) {\n                this.element.style.display = saveDisplay;\n            }\n        };\n\n        const onScroll = (): void => {\n\n            const s = getElementSize(this.element);\n            const newWidth = s.width;\n            const newHeight = s.height;\n\n            const onResized = (): void => {\n                rafId = 0;\n\n                if (newWidth === lastWidth && newHeight === lastHeight) {\n                    return;\n                }\n\n                lastWidth = newWidth;\n                lastHeight = newHeight;\n                this.sizeChanged.emit();\n            };\n\n            if ((newWidth !== lastWidth || newHeight !== lastHeight) && !rafId) {\n                rafId = requestAnimationFrame(onResized);\n            }\n\n            reset();\n        };\n\n        expand.addEventListener('scroll', onScroll);\n        shrink.addEventListener('scroll', onScroll);\n\n        // Fix for custom Elements\n        requestAnimationFrame(reset);\n    }\n\n    public ngOnDestroy(): void {\n        if (this.resizeSensor) {\n            if (this.element.contains(this.resizeSensor)) {\n                this.element.removeChild(this.resizeSensor);\n            }\n            delete this.resizeSensor;\n        }\n    }\n}\n","/*\n *  @license\n *  Copyright Hôpitaux Universitaires de Genève. All Rights Reserved.\n *\n *  Use of this source code is governed by an Apache-2.0 license that can be\n *  found in the LICENSE file at https://github.com/DSI-HUG/dejajs-components/blob/master/LICENSE\n */\n\nimport { NgModule } from '@angular/core';\n\nimport { DejaResizeListenerDirective } from './resize-listener.directive';\n\n@NgModule({\n    declarations: [\n        DejaResizeListenerDirective\n    ],\n    exports: [\n        DejaResizeListenerDirective\n    ]\n})\nexport class ResizeListenerModule { }\n\nexport * from './resize-listener.directive';\n","/*\n *  @license\n *  Copyright Hôpitaux Universitaires de Genève. All Rights Reserved.\n *\n *  Use of this source code is governed by an Apache-2.0 license that can be\n *  found in the LICENSE file at https://github.com/DSI-HUG/dejajs-components/blob/master/LICENSE\n */\n\n/**\n* Licensed under MIT https://github.com/rd-dev-ukraine/angular-io-slimscroll/blob/master/LICENSE\n*/\n\n/* eslint-disable @typescript-eslint/unbound-method */\nimport { Directive, ElementRef, HostListener, Input, OnDestroy, OnInit, Renderer2, RendererFactory2 } from '@angular/core';\nimport { filter, interval, Subscription, take, takeUntil, timer } from 'rxjs';\n\nimport { Destroy } from '../destroy/destroy';\n\ninterface SlimScrollOptions {\n    // width in pixels of the visible scroll area\n    width: string;\n\n    // height in pixels of the visible scroll area\n    height: string;\n\n    // width in pixels of the scrollbar and rail\n    size: string;\n\n    // scrollbar color, accepts any hex/color value\n    color: string;\n\n    // scrollbar position - left/right\n    position: string;\n\n    // distance in pixels between the side edge and the scrollbar\n    distance: string;\n\n    // default scroll position on load - top / bottom\n    start: string;\n\n    // sets scrollbar opacity\n    opacity: number;\n\n    // set transition for opacity\n    transition: number;\n\n    // enables always-on mode for the scrollbar\n    alwaysVisible: boolean;\n\n    // check if we should hide the scrollbar when user is hovering over\n    disableFadeOut: boolean;\n\n    // sets visibility of the rail\n    railVisible: boolean;\n\n    // sets rail color\n    railColor: string;\n\n    // sets rail opacity\n    railOpacity: number;\n\n    // defautlt CSS class of the slimscroll rail\n    railClass: string;\n\n    // defautlt CSS class of the slimscroll bar\n    barClass: string;\n\n    // defautlt CSS class of the slimscroll wrapper\n    wrapperClass: string;\n\n    // check if mousewheel should scroll the window if we reach top/bottom\n    allowPageScroll: boolean;\n\n    // scroll amount applied to each mouse wheel step\n    wheelStep: number;\n\n    // scroll amount applied when user is using gestures\n    touchScrollStep: number;\n\n    // sets border radius\n    borderRadius: string;\n\n    // sets border radius of the rail\n    railBorderRadius: string;\n\n    // set default point from which to start scrolling\n    scrollTo: number;\n\n    // auto scroll to bottom when content was added\n    autoScrollToBottom: boolean;\n\n    // if content will have height more than the value - slimscroll will be enabled\n    maxHeightBeforeEnable?: number;\n}\n\nconst defaults: SlimScrollOptions = {\n    width: 'auto',\n    height: '100%',\n    size: '7px',\n    color: '#000',\n    position: 'right',\n    distance: '1px',\n    start: 'top',\n    opacity: 0.4,\n    transition: 0.3,\n    alwaysVisible: false,\n    disableFadeOut: false,\n    railVisible: false,\n    railColor: '#333',\n    railOpacity: 0.2,\n    railClass: 'slimScrollRail',\n    barClass: 'slimScrollBar',\n    wrapperClass: 'slimScrollDiv',\n    allowPageScroll: false,\n    wheelStep: 20,\n    touchScrollStep: 200,\n    borderRadius: '7px',\n    railBorderRadius: '7px',\n    scrollTo: 0,\n    autoScrollToBottom: false,\n    maxHeightBeforeEnable: undefined\n};\n\n@Directive({\n    selector: '[slimScroll]'\n})\nexport class DejaSlimScrollDirective extends Destroy implements OnInit, OnDestroy {\n    private _me: HTMLElement;\n    private _bar: HTMLDivElement;\n    private _rail: HTMLDivElement;\n    private _isOverPanel: boolean;\n    private _isOverBar: boolean;\n    private _isDragg: boolean;\n    private _touchDif: number;\n    private _barHeight: number;\n    private _percentScroll: number;\n    private _minBarHeight = 30;\n    private _releaseScroll = false;\n    private _options: SlimScrollOptions;\n    private _previousHeight: number;\n    private _queueHide: Subscription;\n    private _barMouseDownPageY: number;\n    private _startBarTop: number;\n\n    private _renderer: Renderer2;\n\n    public constructor(\n        rendererFactory: RendererFactory2,\n        elementRef: ElementRef<HTMLElement>\n    ) {\n        super();\n\n        this._renderer = rendererFactory.createRenderer(null, null);\n        this._me = elementRef.nativeElement;\n        this._options = { ...defaults };\n\n        /* eslint-disable @typescript-eslint/no-unsafe-assignment */\n        this.showBar = this.showBar.bind(this);\n        this.hideBar = this.hideBar.bind(this);\n        this.onWheel = this.onWheel.bind(this);\n        this.barMouseMove = this.barMouseMove.bind(this);\n        this.barMouseUp = this.barMouseUp.bind(this);\n        this.barMouseDown = this.barMouseDown.bind(this);\n        this.railMouseDown = this.railMouseDown.bind(this);\n        /* eslint-enable @typescript-eslint/no-unsafe-assignment */\n    }\n\n    @HostListener('window:resize', ['$event'])\n    public onResize(): void {\n        this.init();\n    }\n\n    public ngOnInit(): void {\n        this.init();\n    }\n\n    public ngOnDestroy(): void {\n        super.ngOnDestroy();\n\n        if (window.removeEventListener) {\n            window.removeEventListener('DOMMouseScroll', this.onWheel);\n            window.removeEventListener('mousewheel', this.onWheel);\n        } else {\n            document.removeEventListener('mousewheel', this.onWheel);\n        }\n\n        document.removeEventListener('mousemove', this.barMouseMove, false);\n        document.removeEventListener('mouseup', this.barMouseUp, false);\n    }\n\n    @Input()\n    public set width(value: string) {\n        this._options.width = value || defaults.width;\n    }\n\n    @Input()\n    public set height(value: string) {\n        this._options.height = value || defaults.height;\n    }\n\n    @Input()\n    public set size(value: string) {\n        this._options.size = value || defaults.size;\n    }\n\n    @Input()\n    public set color(value: string) {\n        this._options.color = value || defaults.color;\n    }\n\n    @Input()\n    public set position(value: string) {\n        this._options.position = value || defaults.position;\n    }\n\n    @Input()\n    public set distance(value: string) {\n        this._options.distance = value || defaults.distance;\n    }\n\n    @Input()\n    public set start(value: string) {\n        this._options.start = value || defaults.start;\n    }\n\n    @Input()\n    public set opacity(value: number) {\n        this._options.opacity = value || defaults.opacity;\n    }\n\n    @Input()\n    public set transition(value: number) {\n        this._options.transition = value || defaults.transition;\n    }\n\n    @Input()\n    public set alwaysVisible(value: boolean) {\n        this._options.alwaysVisible = value || defaults.alwaysVisible;\n    }\n\n    @Input()\n    public set disableFadeOut(value: boolean) {\n        this._options.disableFadeOut = value || defaults.disableFadeOut;\n    }\n\n    @Input()\n    public set railVisible(value: boolean) {\n        this._options.railVisible = value || defaults.railVisible;\n    }\n\n    @Input()\n    public set railColor(value: string) {\n        this._options.railColor = value || defaults.railColor;\n    }\n\n    @Input()\n    public set railOpacity(value: number) {\n        this._options.railOpacity = value || defaults.railOpacity;\n    }\n\n    @Input()\n    public set railClass(value: string) {\n        this._options.railClass = value || defaults.railClass;\n    }\n\n    @Input()\n    public set barClass(value: string) {\n        this._options.barClass = value || defaults.barClass;\n    }\n\n    @Input()\n    public set wrapperClass(value: string) {\n        this._options.wrapperClass = value || defaults.wrapperClass;\n    }\n\n    @Input()\n    public set allowPageScroll(value: boolean) {\n        this._options.allowPageScroll = value || defaults.allowPageScroll;\n    }\n\n    @Input()\n    public set wheelStep(value: number) {\n        this._options.wheelStep = value || defaults.wheelStep;\n    }\n\n    @Input()\n    public set touchScrollStep(value: number) {\n        this._options.touchScrollStep = value || defaults.touchScrollStep;\n    }\n\n    @Input()\n    public set borderRadius(value: string) {\n        this._options.borderRadius = value || defaults.borderRadius;\n    }\n\n    @Input()\n    public set railBorderRadius(value: string) {\n        this._options.railBorderRadius = value || defaults.railBorderRadius;\n    }\n\n    @Input()\n    public set scrollTo(value: number) {\n        this._options.scrollTo = value || defaults.scrollTo;\n    }\n\n    @Input()\n    public set autoScrollToBottom(value: boolean) {\n        this._options.autoScrollToBottom = value || defaults.autoScrollToBottom;\n    }\n\n    @Input()\n    public set maxHeightBeforeEnable(value: number) {\n        this._options.maxHeightBeforeEnable = value || defaults.maxHeightBeforeEnable;\n    }\n\n    public scrollContent(y: number, isWheel: boolean, isJump = false): void {\n        this._releaseScroll = false;\n        let delta: number = y;\n        const maxTop: number = this._me.offsetHeight - this._bar.offsetHeight;\n\n        if (isWheel) {\n            // move bar with mouse wheel\n            delta = parseInt(this._bar.style.top, 10) + y * this._options.wheelStep / 100 * this._bar.offsetHeight;\n\n            // move bar, make sure it doesn't go out\n            delta = Math.min(Math.max(delta, 0), maxTop);\n\n            // if scrolling down, make sure a fractional change to the\n            // scroll position isn't rounded away when the scrollbar's CSS is set\n            // this flooring of delta would happened automatically when\n            // bar.css is set below, but we floor here for clarity\n            delta = (y > 0) ? Math.ceil(delta) : Math.floor(delta);\n\n            // scroll the scrollbar\n            this._renderer.setStyle(this._bar, 'top', `${delta}px`);\n        }\n\n        // calculate actual scroll amount\n        this._percentScroll = parseInt(this._bar.style.top, 10) / (this._me.offsetHeight - this._bar.offsetHeight);\n        delta = this._percentScroll * (this._me.scrollHeight - this._me.offsetHeight);\n\n        if (isJump) {\n            delta = y;\n            let offsetTop = delta / this._me.scrollHeight * this._me.offsetHeight;\n            offsetTop = Math.min(Math.max(offsetTop, 0), maxTop);\n            this._renderer.setStyle(this._bar, 'top', `${offsetTop}px`);\n        }\n\n        // scroll content\n        this._me.scrollTop = delta;\n\n        // ensure bar is visible\n        this.showBar();\n\n        // trigger hide when scroll is stopped\n        this.hideBar();\n    }\n\n    private init(): void {\n        // ensure we are not binding it again\n        if (this._bar && this._rail) {\n            this.refresh();\n        } else {\n            this.setup();\n        }\n    }\n\n    private trackPanelHeightChanged = (): void => {\n        this._previousHeight = this._me.scrollHeight;\n\n        interval(1000).pipe(\n            takeUntil(this.destroyed$)\n        ).subscribe(() => {\n            if (this._previousHeight !== this._me.scrollHeight) {\n                this._previousHeight = this._me.scrollHeight;\n\n                this.init();\n\n                if (this._options.autoScrollToBottom) {\n                    this._renderer.setStyle(this._bar, 'top', `${this._me.offsetHeight - this._bar.offsetHeight}px`);\n                    this.scrollContent(0, true);\n                }\n            }\n        });\n    };\n\n    private hasParentClass(e: HTMLElement, className: string): boolean {\n        if (!e) {\n            return false;\n        }\n\n        if (e.classList.contains(this._options.wrapperClass)) {\n            return true;\n        }\n\n        return this.hasParentClass(e.parentElement, className);\n    }\n\n    private onWheel(e: WheelEvent): void {\n        // use mouse wheel only when mouse is over\n        if (!this._isOverPanel) {\n            return;\n        }\n\n        let delta = 0;\n        if (e.deltaY) {\n            delta = e.deltaY / 120;\n        }\n        if (e.detail) {\n            delta = e.detail / 3;\n        }\n\n        const target = (e.target || e.currentTarget || e.relatedTarget) as HTMLElement;\n        if (this.hasParentClass(target, this._options.wrapperClass)) {\n            // scroll content\n            this.scrollContent(delta, true);\n        }\n\n        // stop window scroll\n        if (e.preventDefault && !this._releaseScroll) {\n            e.preventDefault();\n        }\n        if (!this._releaseScroll) {\n            e.returnValue = false;\n        }\n    }\n\n    private attachWheel(target: Window): void {\n        if (window.addEventListener) {\n            target.addEventListener('DOMMouseScroll', this.onWheel, false);\n            target.addEventListener('mousewheel', this.onWheel, false);\n        } else {\n            document.addEventListener('mousewheel', this.onWheel, false);\n        }\n    }\n\n    private showBar(): void {\n        // recalculate bar height\n        this.getBarHeight();\n        if (this._queueHide) {\n            this._queueHide.unsubscribe();\n            this._queueHide = null;\n        }\n\n        // when bar reached top or bottom\n        // eslint-disable-next-line no-bitwise\n        if (this._percentScroll === ~~this._percentScroll) {\n            // release wheel\n            this._releaseScroll = this._options.allowPageScroll;\n        } else {\n            this._releaseScroll = false;\n        }\n\n        // show only when required\n        if (this._barHeight >= this._me.offsetHeight) {\n            // allow window scroll\n            this._releaseScroll = true;\n            return;\n        }\n\n        this._renderer.setStyle(this._bar, 'opacity', this._options.opacity.toString());\n        this._renderer.setStyle(this._rail, 'opacity', this._options.railOpacity.toString());\n    }\n\n    private hideBar(): void {\n        // only hide when options allow it\n        if (!this._options.alwaysVisible && !(this._options.disableFadeOut && this._isOverPanel) && !this._isOverBar && !this._isDragg) {\n            this._queueHide = timer(1000).pipe(\n                take(1),\n                filter(() => !this._queueHide),\n                takeUntil(this.destroyed$)\n            ).subscribe(() => {\n                this._renderer.setStyle(this._bar, 'opacity', '0');\n                this._renderer.setStyle(this._rail, 'opacity', '0');\n            });\n        }\n    }\n\n    private getBarHeight(): void {\n        // calculate scrollbar height and make sure it is not too small\n        this._barHeight = Math.max(this._me.offsetHeight / (this._me.scrollHeight === 0 ? 1 : this._me.scrollHeight) * this._me.offsetHeight, this._minBarHeight);\n        this._renderer.setStyle(this._bar, 'height', `${this._barHeight}px`);\n\n        // hide scrollbar if content is not long enough\n        const display = this._barHeight === this._me.offsetHeight ? 'none' : 'block';\n        this._renderer.setStyle(this._bar, 'display', display);\n    }\n\n    private refresh(): void {\n        this.getBarHeight();\n\n        // Pass height: auto to an existing slimscroll object to force a resize after contents have changed\n        if ('height' in this._options && this._options.height === 'auto') {\n            this._renderer.setStyle(this._me.parentElement, 'height', 'auto');\n            this._renderer.setStyle(this._me, 'height', 'auto');\n            const height = this._me.parentElement.clientHeight;\n            this._renderer.setStyle(this._me.parentElement, 'height', `${height}px`);\n            this._renderer.setStyle(this._me, 'height', `${height}px`);\n        } else if ('height' in this._options) {\n            const h = this._options.height;\n            this._renderer.setStyle(this._me.parentElement, 'height', h);\n            this._renderer.setStyle(this._me, 'height', h);\n        }\n\n    }\n\n    private railMouseDown(event: MouseEvent): void {\n        const clientRects = this._rail.getBoundingClientRect();\n        const elementOffsetTop = clientRects.top + window.scrollY;\n        const moveTo = event.pageY - elementOffsetTop - (this._barHeight / 2);\n        const scrollTo = this._me.scrollHeight * (moveTo / clientRects.height);\n        this._renderer.setStyle(this._bar, 'top', `${(moveTo >= 0 ? moveTo : 0)}px`);\n\n        this.scrollContent(scrollTo, false, true);\n    }\n\n    private barMouseMove(event: MouseEvent): void {\n        const currTop = this._startBarTop + event.pageY - this._barMouseDownPageY;\n        this._renderer.setStyle(this._bar, 'top', `${(currTop >= 0 ? currTop : 0)}px`);\n        const position = this._bar.getClientRects()[0];\n\n        if (position) {\n            this.scrollContent(0, position.top > 0);\n        }\n    }\n\n    private barMouseUp(): void {\n        this._isDragg = false;\n\n        // return normal text selection\n        const body = document.body;\n        this._renderer.setStyle(body, '-webkit-user-select', 'initial');\n        this._renderer.setStyle(body, '-moz-user-select', 'initial');\n        this._renderer.setStyle(body, '-ms-user-select', 'initial');\n        this._renderer.setStyle(body, 'user-select', 'initial');\n\n        this.hideBar();\n\n        document.removeEventListener('mousemove', this.barMouseMove, false);\n        document.removeEventListener('mouseup', this.barMouseUp, false);\n    }\n\n    private barMouseDown(e: MouseEvent): false {\n        this._isDragg = true;\n\n        // disable text selection\n        const body = document.body;\n        this._renderer.setStyle(body, '-webkit-user-select', 'none');\n        this._renderer.setStyle(body, '-moz-user-select', 'none');\n        this._renderer.setStyle(body, '-ms-user-select', 'none');\n        this._renderer.setStyle(body, 'user-select', 'none');\n\n        this._barMouseDownPageY = e.pageY;\n        this._startBarTop = parseFloat(this._bar.style.top);\n\n        document.addEventListener('mousemove', this.barMouseMove, false);\n        document.addEventListener('mouseup', this.barMouseUp, false);\n\n        return false;\n    }\n\n    private setup(): void {\n        // check whether it changes in content\n        this.trackPanelHeightChanged();\n\n        if (this._options.maxHeightBeforeEnable && this._me.scrollHeight <= this._options.maxHeightBeforeEnable) {\n            return;\n        }\n\n        // wrap content\n        const wrapper = document.createElement('div');\n        this._renderer.addClass(wrapper, this._options.wrapperClass);\n        this._renderer.setStyle(wrapper, 'position', 'relative');\n        this._renderer.setStyle(wrapper, 'overflow', 'hidden');\n        this._renderer.setStyle(wrapper, 'width', this._options.width);\n        this._renderer.setStyle(wrapper, 'height', this._options.height);\n\n        // update style for the div\n        this._renderer.setStyle(this._me, 'overflow', 'hidden');\n        this._renderer.setStyle(this._me, 'width', this._options.width);\n        this._renderer.setStyle(this._me, 'height', this._options.height);\n\n        // create scrollbar rail\n        this._rail = document.createElement('div');\n        this._renderer.addClass(this._rail, this._options.railClass);\n        this._renderer.setStyle(this._rail, 'width', this._options.size);\n        this._renderer.setStyle(this._rail, 'height', '100%');\n        this._renderer.setStyle(this._rail, 'position', 'absolute');\n        this._renderer.setStyle(this._rail, 'top', '0');\n        this._renderer.setStyle(this._rail, 'display', this._options.railVisible ? 'block' : 'none');\n        this._renderer.setStyle(this._rail, 'border-radius', this._options.railBorderRadius);\n        this._renderer.setStyle(this._rail, 'background', this._options.railColor);\n        this._renderer.setStyle(this._rail, 'opacity', this._options.railOpacity.toString());\n        this._renderer.setStyle(this._rail, 'transition', `opacity ${this._options.transition}s`);\n        this._renderer.setStyle(this._rail, 'z-index', '90');\n\n        // create scrollbar\n        this._bar = document.createElement('div');\n        this._renderer.addClass(this._bar, this._options.barClass);\n        this._renderer.setStyle(this._bar, 'background', this._options.color);\n        this._renderer.setStyle(this._bar, 'width', this._options.size);\n        this._renderer.setStyle(this._bar, 'position', 'absolute');\n        this._renderer.setStyle(this._bar, 'top', '0');\n        this._renderer.setStyle(this._bar, 'opacity', this._options.opacity.toString());\n        this._renderer.setStyle(this._bar, 'transition', `opacity ${this._options.transition}s`);\n        this._renderer.setStyle(this._bar, 'display', this._options.alwaysVisible ? 'block' : 'none');\n        this._renderer.setStyle(this._bar, 'border-radius', this._options.borderRadius);\n        this._renderer.setStyle(this._bar, 'webkit-border-radius', this._options.borderRadius);\n        this._renderer.setStyle(this._bar, 'moz-border-radius', this._options.borderRadius);\n        this._renderer.setStyle(this._bar, 'z-index', '99');\n\n        // set position\n        if (this._options.position === 'right') {\n            this._renderer.setStyle(this._rail, 'right', this._options.distance);\n            this._renderer.setStyle(this._bar, 'right', this._options.distance);\n        } else {\n            this._renderer.setStyle(this._rail, 'left', this._options.distance);\n            this._renderer.setStyle(this._bar, 'left', this._options.distance);\n        }\n\n        // wrap it\n        this._me.parentElement.insertBefore(wrapper, this._me);\n        wrapper.appendChild(this._me);\n\n        if (this._options.scrollTo > 0) {\n            // jump to a static point\n            this.scrollContent(this._options.scrollTo, false, true);\n        }\n\n        // append to parent div\n        this._me.parentElement.appendChild(this._bar);\n        this._me.parentElement.appendChild(this._rail);\n\n        this._bar.addEventListener('mousedown', this.barMouseDown, false);\n\n        // on rail over\n        this._rail.addEventListener('mouseenter', this.showBar, false);\n        this._rail.addEventListener('mouseleave', this.hideBar, false);\n\n        this._rail.addEventListener('mousedown', this.railMouseDown, false);\n\n        // on bar over\n        this._bar.addEventListener('mouseenter', () => this._isOverBar = true, false);\n        this._bar.addEventListener('mouseleave', () => this._isOverBar = false, false);\n\n        // show on parent mouseover\n        this._me.addEventListener('mouseenter', () => {\n            this._isOverPanel = true;\n            this.showBar();\n            this.hideBar();\n        }, false);\n        this._me.addEventListener('mouseleave', () => {\n            this._isOverPanel = false;\n            this.hideBar();\n        }, false);\n\n        // support for mobile\n        this._me.addEventListener('touchstart', e => {\n            if (e.touches.length) {\n                // record where touch started\n                this._touchDif = e.touches[0].pageY;\n            }\n        }, false);\n\n        this._me.addEventListener('touchmove', e => {\n            // prevent scrolling the page if necessary\n            if (!this._releaseScroll) {\n                e.preventDefault();\n            }\n            if (e.touches.length) {\n                // see how far user swiped\n                const diff = (this._touchDif - e.touches[0].pageY) / this._options.touchScrollStep;\n                // scroll content\n                this.scrollContent(diff, true);\n                this._touchDif = e.touches[0].pageY;\n            }\n        }, false);\n        // set up initial height\n        this.getBarHeight();\n\n        // hide bar on init if alwaysVisible equal false\n        this.hideBar();\n\n        // check start position\n        if (this._options.start === 'bottom') {\n            // scroll content to bottom\n            this._renderer.setStyle(this._bar, 'top', `${this._me.offsetHeight - this._bar.offsetHeight}px`);\n            this.scrollContent(0, true);\n        }\n\n        // attach scroll events\n        this.attachWheel(window);\n    }\n}\n","/*\n *  @license\n *  Copyright Hôpitaux Universitaires de Genève. All Rights Reserved.\n *\n *  Use of this source code is governed by an Apache-2.0 license that can be\n *  found in the LICENSE file at https://github.com/DSI-HUG/dejajs-components/blob/master/LICENSE\n */\n\nimport { NgModule } from '@angular/core';\n\nimport { DejaSlimScrollDirective } from './slimscroll.directive';\n\n@NgModule({\n    declarations: [\n        DejaSlimScrollDirective\n    ],\n    exports: [\n        DejaSlimScrollDirective\n    ]\n})\nexport class DejaSlimScrollModule { }\n\nexport * from './slimscroll.directive';\n","/*\n *  @license\n *  Copyright Hôpitaux Universitaires de Genève. All Rights Reserved.\n *\n *  Use of this source code is governed by an Apache-2.0 license that can be\n *  found in the LICENSE file at https://github.com/DSI-HUG/dejajs-components/blob/master/LICENSE\n */\n\nimport { BehaviorSubject, delay, filter, map, Observable, range, Subject, switchMap, take, takeUntil, toArray } from 'rxjs';\n\nimport { Destroy } from '../destroy/destroy';\n\n\n/**\n * Service to measure the theorical size of a text inside a container\n */\nexport class DejaTextMetricsService extends Destroy {\n    private canvas: HTMLCanvasElement;\n    private element$ = new Subject<HTMLElement>();\n    private computedStyles: CSSStyleDeclaration;\n    private charSize$ = new BehaviorSubject<number[]>(null);\n\n    /**\n     * Constructor\n     * Add observable to wait for element to be set. And then take its properties to measure all ASCII char size.\n     */\n    public constructor() {\n        super();\n\n        this.element$.pipe(\n            delay(1),\n            take(1),\n            switchMap(element => range(0, 255).pipe(\n                map(i => this.getTextWidth(String.fromCharCode(i), element)),\n                toArray()\n            )),\n            takeUntil(this.destroyed$)\n        ).subscribe(charSize => this.charSize$.next(charSize));\n    }\n\n    /** Setter for base element */\n    public set metricsElem(elem: HTMLElement) {\n        this.element$.next(elem);\n    }\n\n    /**\n     * Calcule la longeur (en pixels) d'une chaine de caractères\n     *\n     * @param text Le texte à mesurer\n     * @param elem Le conteneur du texte\n     *\n     * @return la largeur du texte donné\n     */\n    public getTextWidth(text: string, elem: HTMLElement): number {\n        this.computedStyles = window.getComputedStyle(elem);\n        const font = `${this.computedStyles.fontSize} ${this.computedStyles.fontFamily}`;\n\n        const canvas = this.canvas || (this.canvas = document.createElement('canvas'));\n        const context = canvas.getContext('2d');\n        context.font = font;\n        const metrics = context.measureText(text);\n\n        return metrics.width * 1.1; // Correction for letter-spacing\n    }\n\n    /**\n     * Retourne la largeur maximum d'un tableau de strings.\n     *\n     * @param texts les textes à comparer.\n     * @param elem Le conteneur du texte\n     *\n     * @return la width du texte le plus long dans le tableau donné en param.\n     */\n    public getTextMaxWidth(texts: string[], elem: HTMLElement): number {\n        let maxWidth = 0;\n\n        texts.forEach(text => {\n            const width = this.getTextWidth(text, elem);\n            if (width > maxWidth) {\n                maxWidth = width;\n            }\n        });\n\n        return maxWidth;\n    }\n\n    /**\n     * Mesure la heuteur théorique d'un texte contenu dans un conteneur d'une taille donnée.\n     *\n     * @param maxWidth taille du conteneur\n     * @param text texte à mesurer\n     *\n     * @return Hauteur théorique du conteneur.\n     */\n    // eslint-disable-next-line rxjs/finnish\n    public getTextHeight(maxWidth: number, text: string): Observable<number> {\n        return this.getNumberOfLines(maxWidth, text).pipe(\n            map(numberOfLines => {\n                const computedLineHeight = parseInt(this.computedStyles.lineHeight.replace('px', ''), 10);\n                const lineHeight = (!isNaN(computedLineHeight)) ?\n                    computedLineHeight :\n                    Math.floor(parseInt(this.computedStyles.fontSize.replace('px', ''), 10) * 1.5);\n\n                return lineHeight * +numberOfLines;\n            })\n        );\n    }\n\n    /**\n     * Calcule le nombre de lignes qu'un texte va prendre en fonction de la largeur de son conteneur.\n     *\n     * @param maxWidth taille du conteneur\n     * @param text texte à mesurer\n     *\n     * @return Nombre de lignes théoriques du conteneur.\n     */\n    // eslint-disable-next-line rxjs/finnish\n    private getNumberOfLines(maxWidth: number, text: string): Observable<number> {\n        return this.charSize$.pipe(\n            filter(charSize => charSize !== null),\n            map(charSize => {\n                let tmpSize = 0;\n                let numberOfLines = 1;\n                let averageCharSize = 0;\n                if (text.length > 0) {\n                    const arr = text.split(' ');\n                    let spaceWidth = 0;\n                    const printableCharSizeArray = charSize.filter(size => size > 0);\n                    averageCharSize = printableCharSizeArray.reduce((a, b) => a + b, 0) / printableCharSizeArray.length;\n                    arr.forEach((txt: string) => {\n                        let w = 0;\n                        // eslint-disable-next-line no-loops/no-loops\n                        for (let j = 0; j < txt.length; j++) {\n                            const charCode = txt.charCodeAt(j);\n                            // Si le caractère fait partie de la table ascii qu'on a calculé dans this.getAllCharsize() on incrémente la taille du mot de sa taille.\n                            // Sinon, on ajoute la moyenne des tailles calculées (qui correspond théoriquement à la taille moyenne d'un caractère)\n                            w += (charSize[charCode]) ? charSize[charCode] : averageCharSize;\n                        }\n                        if ((tmpSize + w + spaceWidth) > maxWidth) {\n                            tmpSize = w;\n                            numberOfLines++;\n                        } else {\n                            tmpSize += w + spaceWidth;\n                        }\n                        if (spaceWidth === 0) {\n                            spaceWidth = charSize[32];\n                        }\n                    });\n                }\n\n                return numberOfLines;\n            })\n        );\n    }\n}\n","/*\n *  @license\n *  Copyright Hôpitaux Universitaires de Genève. All Rights Reserved.\n *\n *  Use of this source code is governed by an Apache-2.0 license that can be\n *  found in the LICENSE file at https://github.com/DSI-HUG/dejajs-components/blob/master/LICENSE\n */\n\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { DejaTextMetricsService } from './text-metrics.service';\n\n@NgModule({\n    imports: [CommonModule],\n    providers: [DejaTextMetricsService]\n})\nexport class DejaTextMetricsModule { }\n\nexport * from './text-metrics.service';\n","/*\n *  @license\n *  Copyright Hôpitaux Universitaires de Genève. All Rights Reserved.\n *\n *  Use of this source code is governed by an Apache-2.0 license that can be\n *  found in the LICENSE file at https://github.com/DSI-HUG/dejajs-components/blob/master/LICENSE\n */\n\nexport class HtmlUtils {\n\n    // eslint-disable-next-line @typescript-eslint/naming-convention\n    public static getEncodedURIComponent(jsonObjParameters: Record<string, string | number | boolean>): string {\n        if (jsonObjParameters) {\n            const params: string[] = [];\n            // eslint-disable-next-line no-loops/no-loops\n            for (const p in jsonObjParameters) {\n                // eslint-disable-next-line no-prototype-builtins\n                if (jsonObjParameters.hasOwnProperty(p)) {\n                    params.push(`${encodeURIComponent(p)}=${encodeURIComponent(jsonObjParameters[p])}`);\n                }\n            }\n            return params.join('&');\n        }\n        return '';\n    }\n}\n","/*\n *  @license\n *  Copyright Hôpitaux Universitaires de Genève. All Rights Reserved.\n *\n *  Use of this source code is governed by an Apache-2.0 license that can be\n *  found in the LICENSE file at https://github.com/DSI-HUG/dejajs-components/blob/master/LICENSE\n */\n\nexport class RegExpUtils {\n\n    /**\n     * escape all regexp special chars.\n     *\n     * @param value\n     * @returns the regexp special chars escaped string\n     */\n    public static escapeRegExp(value: string): string {\n        if (!value) {\n            return value;\n        }\n        return value.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&'); // $& means the whole matched string\n    }\n}\n","/*\n *  @license\n *  Copyright Hôpitaux Universitaires de Genève. All Rights Reserved.\n *\n *  Use of this source code is governed by an Apache-2.0 license that can be\n *  found in the LICENSE file at https://github.com/DSI-HUG/dejajs-components/blob/master/LICENSE\n */\n\nimport { DatePipe } from '@angular/common';\n\n/**\n * Date conversion for DPI standards\n */\nexport class DateUtils {\n    public static SYSTEM_DATE_FORMAT = 'yyyy-MM-dd HH:mm:ss';\n\n    private static DATE_PIPE = new DatePipe('fr-CH');\n\n    /**\n     * Fromat a javascript date object to a 'yyyy-MM-dd HH:mm:ss' String Format\n     * @param date\n     */\n    public static formatSystem(date: Date): string {\n        return DateUtils.DATE_PIPE.transform(date, DateUtils.SYSTEM_DATE_FORMAT);\n    }\n}\n","/*\n *  @license\n *  Copyright Hôpitaux Universitaires de Genève. All Rights Reserved.\n *\n *  Use of this source code is governed by an Apache-2.0 license that can be\n *  found in the LICENSE file at https://github.com/DSI-HUG/dejajs-components/blob/master/LICENSE\n */\n\nexport * from './html-utils';\nexport * from './reg-exp-utils';\nexport * from './date-utils';\n","/*\n *  @license\n *  Copyright Hôpitaux Universitaires de Genève. All Rights Reserved.\n *\n *  Use of this source code is governed by an Apache-2.0 license that can be\n *  found in the LICENSE file at https://github.com/DSI-HUG/dejajs-components/blob/master/LICENSE\n */\n\nimport { Directive, forwardRef } from '@angular/core';\nimport { NG_VALIDATORS, NgControl, ValidationErrors, Validator } from '@angular/forms';\n\n@Directive({\n    providers: [\n        {\n            provide: NG_VALIDATORS,\n            useExisting: forwardRef(() => DejaChildValidatorDirective),\n            multi: true\n        }\n    ],\n    selector: '[deja-child-validator]'\n})\nexport class DejaChildValidatorDirective implements Validator {\n    public parentControl: NgControl;\n\n    public validate(): ValidationErrors {\n        return this.parentControl?.errors;\n    }\n}\n","/*\n *  @license\n *  Copyright Hôpitaux Universitaires de Genève. All Rights Reserved.\n *\n *  Use of this source code is governed by an Apache-2.0 license that can be\n *  found in the LICENSE file at https://github.com/DSI-HUG/dejajs-components/blob/master/LICENSE\n */\n\nexport interface IValidationError {\n    field: string;\n    error: string;\n}\n","/*\n *  @license\n *  Copyright Hôpitaux Universitaires de Genève. All Rights Reserved.\n *\n *  Use of this source code is governed by an Apache-2.0 license that can be\n *  found in the LICENSE file at https://github.com/DSI-HUG/dejajs-components/blob/master/LICENSE\n */\n\n// Attention, spécifier ici que les messages génériques. Créez votre propre objet pour les messages spécifiques à votre page\nexport class ValidationMessages {\n    private messages = {\n        duplicatename: 'Ce nom existe déjà.',\n        invalideDate: 'Date invalide',\n        required: 'Ce champ est obligatoire.'\n    } as { [key: string]: string };\n\n    public getMessage(key: string): string {\n        return this.messages[key];\n    }\n}\n","/*\n *  @license\n *  Copyright Hôpitaux Universitaires de Genève. All Rights Reserved.\n *\n *  Use of this source code is governed by an Apache-2.0 license that can be\n *  found in the LICENSE file at https://github.com/DSI-HUG/dejajs-components/blob/master/LICENSE\n */\n\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { DejaChildValidatorDirective } from './child-validator.directive';\n\n@NgModule({\n    declarations: [\n        DejaChildValidatorDirective\n    ],\n    exports: [\n        DejaChildValidatorDirective\n    ],\n    imports: [\n        CommonModule,\n        FormsModule\n    ]\n})\nexport class DejaChildValidatorModule { }\n\nexport * from './validation-error';\nexport * from './validation-messages';\nexport * from './child-validator.directive';\n","/*\n *  @license\n *  Copyright Hôpitaux Universitaires de Genève. All Rights Reserved.\n *\n *  Use of this source code is governed by an Apache-2.0 license that can be\n *  found in the LICENSE file at https://github.com/DSI-HUG/dejajs-components/blob/master/LICENSE\n */\n\n/* eslint-disable @typescript-eslint/naming-convention */\nexport enum KeyCodes {\n    Backspace = 'Backspace',\n    Tab = 'Tab',\n    Enter = 'Enter',\n    Shift = 'Shift',\n    Ctrl = 'Ctrl',\n    Alt = 'Alt',\n    Pause = 'Pause',\n    CapsLock = 'CapsLock',\n    Escape = 'Escape',\n    Space = 'Space',\n    PageUp = 'PageUp',\n    PageDown = 'PageDown',\n    End = 'End',\n    Home = 'Home',\n    LeftArrow = 'ArrowLeft',\n    UpArrow = 'ArrowUp',\n    RightArrow = 'ArrowRight',\n    DownArrow = 'ArrowDown',\n    Insert = 'Insert',\n    Delete = 'Delete',\n    Key0 = 'Key0',\n    Key1 = 'Key1',\n    Key2 = 'Key2',\n    Key3 = 'Key3',\n    Key4 = 'Key4',\n    Key5 = 'Key5',\n    Key6 = 'Key6',\n    Key7 = 'Key7',\n    Key8 = 'Key8',\n    Key9 = 'Key9',\n    KeyA = 'KeyA',\n    KeyB = 'KeyB',\n    KeyC = 'KeyC',\n    KeyD = 'KeyD',\n    KeyE = 'KeyE',\n    KeyF = 'KeyF',\n    KeyG = 'KeyG',\n    KeyH = 'KeyH',\n    KeyI = 'KeyI',\n    KeyJ = 'KeyJ',\n    KeyK = 'KeyK',\n    KeyL = 'KeyL',\n    KeyM = 'KeyM',\n    KeyN = 'KeyN',\n    KeyO = 'KeyO',\n    KeyP = 'KeyP',\n    KeyQ = 'KeyQ',\n    KeyR = 'KeyR',\n    KeyS = 'KeyS',\n    KeyT = 'KeyT',\n    KeyU = 'KeyU',\n    KeyV = 'KeyV',\n    KeyW = 'KeyW',\n    KeyX = 'KeyX',\n    KeyY = 'KeyY',\n    KeyZ = 'KeyZ',\n    LeftMeta = 'LeftMeta',\n    RightMeta = 'RightMeta',\n    Select = 'Select',\n    Numpad0 = 'Numpad0',\n    Numpad1 = 'Numpad1',\n    Numpad2 = 'Numpad2',\n    Numpad3 = 'Numpad3',\n    Numpad4 = 'Numpad4',\n    Numpad5 = 'Numpad5',\n    Numpad6 = 'Numpad6',\n    Numpad7 = 'Numpad7',\n    Numpad8 = 'Numpad8',\n    Numpad9 = 'Numpad9',\n    Multiply = 'Multiply',\n    Add = 'Add',\n    Subtract = 'Subtract',\n    Decimal = 'Decimal',\n    Divide = 'Divide',\n    F1 = 'F1',\n    F2 = 'F2',\n    F3 = 'F3',\n    F4 = 'F4',\n    F5 = 'F5',\n    F6 = 'F6',\n    F7 = 'F7',\n    F8 = 'F8',\n    F9 = 'F9',\n    F10 = 'F10',\n    F11 = 'F11',\n    F12 = 'F12',\n    NumLock = 'NumLock',\n    ScrollLock = 'ScrollLock',\n    Semicolon = 'Semicolon',\n    Equals = 'Equals',\n    Comma = 'Comma',\n    Dash = 'Dash',\n    Period = 'Period',\n    ForwardSlash = 'ForwardSlash',\n    GraveAccent = 'GraveAccent',\n    OpenBracket = 'OpenBracket',\n    BackSlash = 'BackSlash',\n    CloseBracket = 'CloseBracket',\n    SingleQuote = 'SingleQuote',\n}\n","/*\n *  @license\n *  Copyright Hôpitaux Universitaires de Genève. All Rights Reserved.\n *\n *  Use of this source code is governed by an Apache-2.0 license that can be\n *  found in the LICENSE file at https://github.com/DSI-HUG/dejajs-components/blob/master/LICENSE\n */\n\nimport { filter, from, map, mergeAll, mergeWith, MonoTypeOperatorFunction, Observable, ObservableInput, ObservableInputTuple } from 'rxjs';\n\n// Will subscribe to all passed observables with the source observable, but publish only the source observable.\nexport const subscribeWith = <T, A extends readonly unknown[]>(...others: [...ObservableInputTuple<A>]): MonoTypeOperatorFunction<T> => (source$: Observable<T>): Observable<T> => {\n    const argsOrArgArray = <U>(args: (U | U[])[]): U[] => args.length === 1 && Array.isArray(args[0]) ? args[0] : (args as U[]);\n    const others$ = argsOrArgArray(others) as ObservableInput<A>[];\n    return from(others$).pipe(\n        mergeAll(),\n        filter(() => false), // stop all the passed observables\n        map(() => undefined as never),\n        mergeWith(source$) // and just publish the source\n    );\n};\n","/*\n *  @license\n *  Copyright Hôpitaux Universitaires de Genève. All Rights Reserved.\n *\n *  Use of this source code is governed by an Apache-2.0 license that can be\n *  found in the LICENSE file at https://github.com/DSI-HUG/dejajs-components/blob/master/LICENSE\n */\n\nimport { catchError, Observable, throwError } from 'rxjs';\n\nexport interface CacheEntry<T> {\n    timeStamp: number;\n    data$: T;\n}\n\nexport class Cache<T, K = string> extends Map<K, CacheEntry<T>> {\n\n    public constructor(public duty = 86400000) {\n        super();\n    }\n\n    public clear(timeStamp?: number): void {\n        this.forEach((value, key) => {\n            if (!timeStamp || (value.timeStamp && value.timeStamp <= timeStamp)) {\n                this.delete(key);\n            }\n        });\n    }\n\n    public getCache(key: K, defaultValueFn?: (timeStamp: number) => T): T {\n        const now = Date.now();\n\n        // clear obsolete caches\n        this.clear(now);\n\n        let entry = super.get(key);\n        if (!entry && defaultValueFn) {\n            super.set(key, entry = {\n                timeStamp: this.duty ? now + this.duty : 0,\n                data$: defaultValueFn(now)\n            });\n        }\n        return entry?.data$;\n    }\n\n    public setCache(key: K, value: T): void {\n        super.set(key, {\n            timeStamp: this.duty ? Date.now() + this.duty : 0,\n            data$: value\n        });\n    }\n}\n\nexport class ObservableCache<T, K = string> extends Cache<Observable<T>, K> {\n    // eslint-disable-next-line rxjs/finnish\n    public getCache(key: K, defaultValueFn?: (timeStamp: number) => Observable<T>): Observable<T> {\n        const data$ = super.getCache(key, defaultValueFn);\n        return data$.pipe(\n            catchError((err: unknown) => {\n                // Clear cache entry in case of observable failure\n                this.delete(key);\n                return throwError(() => err);\n            })\n        );\n    }\n}\n","/*\n *  @license\n *  Copyright Hôpitaux Universitaires de Genève. All Rights Reserved.\n *\n *  Use of this source code is governed by an Apache-2.0 license that can be\n *  found in the LICENSE file at https://github.com/DSI-HUG/dejajs-components/blob/master/LICENSE\n */\n\nexport * from './clipboard/index';\nexport * from './date-fns/index';\nexport * from './destroy/index';\nexport * from './diacritics/index';\nexport * from './events/index';\nexport * from './forms/index';\nexport * from './id/index';\nexport * from './lazy-loading/index';\nexport * from './media/index';\nexport * from './media/index';\nexport * from './message-box/index';\nexport * from './overlay/index';\nexport * from './resize-listener/index';\nexport * from './slimscroll/index';\nexport * from './text/index';\nexport * from './util/index';\nexport * from './validation/index';\nexport * from './keycodes.enum';\nexport * from './custom-operators';\nexport * from './cache';\n\nif (!document.doctype) {\n    console.warn('[DejaJS] Current document does not have a doctype. This may cause some components not to behave as expected.');\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["createInjector"],"mappings":"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,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI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"}