@rededor/site-front-end-lib 0.0.2-alpha.3 → 0.0.2-alpha.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/esm2022/lib/services/cura/cura.service.mjs +1 -11
- package/esm2022/lib/services/log/log.service.mjs +1 -2
- package/esm2022/lib/services/ngu-carousel/ngu-carousel.service.mjs +9 -5
- package/fesm2022/rededor-site-front-end-lib.mjs +8 -15
- package/fesm2022/rededor-site-front-end-lib.mjs.map +1 -1
- package/lib/services/ngu-carousel/ngu-carousel.service.d.ts +2 -2
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -6,7 +6,7 @@ Esta lib foi gerada com [Angular CLI](https://github.com/angular/angular-cli) ve
|
|
|
6
6
|
|
|
7
7
|
Para utilização da lib, utilize/customize o token `LibConfig`. Este token disponibiliza informações/parâmetros importantes baseadas no contexto de cada projeto.
|
|
8
8
|
Para criação de componentes, services, etc, os comandos são os mesmos utilizados no desenvolvimento dentro do contexto dos projetos do site.
|
|
9
|
-
Obs: antes de utilizar os comandos `ng`, verifique a pasta atual de seu terminal (`projects/site-front-end-lib`).
|
|
9
|
+
Obs: antes de utilizar os comandos `ng`, verifique a pasta atual de seu terminal (`cd projects/site-front-end-lib`).
|
|
10
10
|
Obs2: quando for gerar uma nova versão da lib, lembre de `atualizar a versão no package.json dentro da lib`.
|
|
11
11
|
|
|
12
12
|
## Build
|
|
@@ -15,4 +15,4 @@ Rode `ng build site-front-end-lib` para buildar o projeto. Os arquivos buildados
|
|
|
15
15
|
|
|
16
16
|
## Publicar
|
|
17
17
|
|
|
18
|
-
Depois de buildar o projeto vá para dentro de `dist/site-front-end-lib` e rode `npm publish` ou `npm publish --userconfig
|
|
18
|
+
Depois de buildar o projeto vá para dentro de `dist/site-front-end-lib` e rode `npm publish` ou `npm publish --userconfig ../../.npmrc` caso necessite do npmrc.
|
|
@@ -15,7 +15,6 @@ export class CuraService {
|
|
|
15
15
|
this.ssrCuraAPI = ssrCuraAPI;
|
|
16
16
|
this.curaAPISubscription = null;
|
|
17
17
|
this.curaApi = null;
|
|
18
|
-
console.log("CuraService Constructor");
|
|
19
18
|
this.curaInit();
|
|
20
19
|
}
|
|
21
20
|
curaInit() {
|
|
@@ -24,7 +23,6 @@ export class CuraService {
|
|
|
24
23
|
}
|
|
25
24
|
}
|
|
26
25
|
curaAPISubscriptionInit() {
|
|
27
|
-
console.log("CuraService curaAPISubscriptionInit");
|
|
28
26
|
if (this.document.defaultView) {
|
|
29
27
|
if (isPlatformServer(this.platformId)) {
|
|
30
28
|
this.injectCuraAPI();
|
|
@@ -44,36 +42,28 @@ export class CuraService {
|
|
|
44
42
|
}
|
|
45
43
|
}
|
|
46
44
|
injectCuraAPI() {
|
|
47
|
-
console.log("CuraService injectCuraAPI");
|
|
48
45
|
if (this.document.defaultView && !this.document.defaultView['CuraAPI']) {
|
|
49
46
|
Object.defineProperty(this.document.defaultView, 'CuraAPI', {
|
|
50
47
|
value: this.ssrCuraAPI,
|
|
51
48
|
});
|
|
52
49
|
}
|
|
53
|
-
console.log("CuraService injectCuraAPI AFTER", this.document.defaultView['CuraAPI']);
|
|
54
50
|
}
|
|
55
51
|
getColor(colorWithDepth) {
|
|
56
|
-
console.log("CuraService getColor");
|
|
57
52
|
return this.curaApi?.theme?.colors.getColor(colorWithDepth) ?? null;
|
|
58
53
|
}
|
|
59
54
|
getSpacing() {
|
|
60
|
-
console.log("CuraService getSpacing");
|
|
61
55
|
return this.curaApi?.theme.spacing.getSpacing() ?? null;
|
|
62
56
|
}
|
|
63
57
|
getFontFamily(type) {
|
|
64
|
-
console.log("CuraService getFontFamily");
|
|
65
58
|
return this.curaApi?.theme.fonts.getFamily(type) ?? null;
|
|
66
59
|
}
|
|
67
60
|
getFontWeights() {
|
|
68
|
-
console.log("CuraService getFontWeights");
|
|
69
61
|
return this.curaApi?.theme.fonts.getWeights() ?? {};
|
|
70
62
|
}
|
|
71
63
|
getFontSize() {
|
|
72
|
-
console.log("CuraService getFontSize");
|
|
73
64
|
return this.curaApi?.theme.fonts.getSize() ?? '';
|
|
74
65
|
}
|
|
75
66
|
getFontColor() {
|
|
76
|
-
console.log("CuraService getFontColor");
|
|
77
67
|
return this.curaApi?.theme.fonts.getColor() ?? '';
|
|
78
68
|
}
|
|
79
69
|
getCuraIconName(icon) {
|
|
@@ -115,4 +105,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
|
|
|
115
105
|
type: Inject,
|
|
116
106
|
args: [SSR_CURA_API]
|
|
117
107
|
}] }] });
|
|
118
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VyYS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2l0ZS1mcm9udC1lbmQtbGliL3NyYy9saWIvc2VydmljZXMvY3VyYS9jdXJhLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzdELE9BQU8sRUFDTCxNQUFNLEVBQ04sVUFBVSxFQUVWLFFBQVEsRUFDUixXQUFXLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFnQixTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTFELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsVUFBVSxFQUFhLE1BQU0sd0JBQXdCLENBQUM7OztBQUsvRCxNQUFNLE9BQU8sV0FBVztJQUl0QixZQUNVLEdBQWUsRUFDTSxVQUFrQixFQUNyQixRQUFrQixFQUNoQixTQUFvQixFQUNOLFVBQWU7UUFKakQsUUFBRyxHQUFILEdBQUcsQ0FBWTtRQUNNLGVBQVUsR0FBVixVQUFVLENBQVE7UUFDckIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNoQixjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQ04sZUFBVSxHQUFWLFVBQVUsQ0FBSztRQVJuRCx3QkFBbUIsR0FBd0IsSUFBSSxDQUFDO1FBQ2hELFlBQU8sR0FBbUIsSUFBSSxDQUFDO1FBU3JDLE9BQU8sQ0FBQyxHQUFHLENBQUMseUJBQXlCLENBQUMsQ0FBQTtRQUN0QyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbEIsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7WUFDOUIsSUFBSSxD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TyxFQUFFLElBQUksRUFBRSxDQUFDO0lBQ25ELENBQUM7SUFFRCxZQUFZO1FBQ1YsT0FBTyxDQUFDLEdBQUcsQ0FBQywwQkFBMEIsQ0FBQyxDQUFBO1FBQ3ZDLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUNwRCxDQUFDO0lBRUQsZUFBZSxDQUFDLElBQVk7UUFDMUIsSUFBSSxtQkFBbUIsQ0FBQyxJQUF3QyxDQUFDLEVBQUUsQ0FBQztZQUNsRSxPQUFPLG1CQUFtQixDQUFDLElBQXdDLENBQUMsQ0FBQztRQUN2RSxDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFDLENBQUM7SUFDSCxDQUFDO0lBRU8scUJBQXFCLENBQUMsSUFBWTtRQUN4QyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsa0JBQWtCLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQztZQUFFLE9BQU8sSUFBSSxDQUFDO1FBQ25FLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLENBQUM7SUFDMUMsQ0FBQzsrR0F0R1UsV0FBVyw0Q0FNWixXQUFXLGFBQ1gsUUFBUSxhQUNSLFVBQVUsYUFDRSxZQUFZO21IQVR2QixXQUFXLGNBRlYsTUFBTTs7NEZBRVAsV0FBVztrQkFIdkIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQU9JLE1BQU07MkJBQUMsV0FBVzs7MEJBQ2xCLE1BQU07MkJBQUMsUUFBUTs7MEJBQ2YsTUFBTTsyQkFBQyxVQUFVOzswQkFDakIsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQsIGlzUGxhdGZvcm1TZXJ2ZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQge1xyXG4gIEluamVjdCxcclxuICBJbmplY3RhYmxlLFxyXG4gIE9uRGVzdHJveSxcclxuICBPcHRpb25hbCxcclxuICBQTEFURk9STV9JRCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IEN1cmFBUEkgZnJvbSAnQHJlZGVkb3IvY3VyYS9kaXN0L3R5cGVzL2FwaS9jdXJhLWFwaSc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiwgZnJvbUV2ZW50LCBzdGFydFdpdGggfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgTG9nU2VydmljZSB9IGZyb20gJy4uL2xvZy9sb2cuc2VydmljZSc7XHJcbmltcG9ydCB7IEljb25DdXJhRGVmYXVsdFR5cGUgfSBmcm9tICcuLi8uLi9lbnVtcy9JY29uQ3VyYURlZmF1bHRUeXBlLmVudW0nO1xyXG5pbXBvcnQgeyBTU1JfQ1VSQV9BUEkgfSBmcm9tICcuLi8uLi90b2tlbnMvQ3VyYUFwaSc7XHJcbmltcG9ydCB7IExJQl9DT05GSUcsIExpYkNvbmZpZyB9IGZyb20gJy4uLy4uL3Rva2Vucy9MaWJDb25maWcnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEN1cmFTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuICBwcml2YXRlIGN1cmFBUElTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiB8IG51bGwgPSBudWxsO1xyXG4gIHByaXZhdGUgY3VyYUFwaTogQ3VyYUFQSSB8IG51bGwgPSBudWxsO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgbG9nOiBMb2dTZXJ2aWNlLFxyXG4gICAgQEluamVjdChQTEFURk9STV9JRCkgcHJpdmF0ZSBwbGF0Zm9ybUlkOiBvYmplY3QsXHJcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvY3VtZW50OiBEb2N1bWVudCxcclxuICAgIEBJbmplY3QoTElCX0NPTkZJRykgcHJpdmF0ZSBsaWJDb25maWc6IExpYkNvbmZpZyxcclxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoU1NSX0NVUkFfQVBJKSBwcml2YXRlIHNzckN1cmFBUEk6IGFueVxyXG4gICkge1xyXG4gICAgY29uc29sZS5sb2coXCJDdXJhU2VydmljZSBDb25zdHJ1Y3RvclwiKVxyXG4gICAgdGhpcy5jdXJhSW5pdCgpO1xyXG4gIH1cclxuXHJcbiAgY3VyYUluaXQoKSB7XHJcbiAgICBpZiAoIXRoaXMuY3VyYUFQSVN1YnNjcmlwdGlvbikge1xyXG4gICAgICB0aGlzLmN1cmFBUElTdWJzY3JpcHRpb25Jbml0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGN1cmFBUElTdWJzY3JpcHRpb25Jbml0KCkge1xyXG4gICAgY29uc29sZS5sb2coXCJDdXJhU2VydmljZSBjdXJhQVBJU3Vic2NyaXB0aW9uSW5pdFwiKVxyXG4gICAgaWYgKHRoaXMuZG9jdW1lbnQuZGVmYXVsdFZpZXcpIHtcclxuICAgICAgaWYgKGlzUGxhdGZvcm1TZXJ2ZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xyXG4gICAgICAgIHRoaXMuaW5qZWN0Q3VyYUFQSSgpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuY3VyYUFQSVN1YnNjcmlwdGlvbiA9IGZyb21FdmVudChcclxuICAgICAgICB0aGlzLmRvY3VtZW50LmRlZmF1bHRWaWV3LFxyXG4gICAgICAgICdDdXJhQVBJUmVhZHknXHJcbiAgICAgIClcclxuICAgICAgICAucGlwZShcclxuICAgICAgICAgIHN0YXJ0V2l0aCh7XHJcbiAgICAgICAgICAgIGRldGFpbDogeyBhcGk6ICh0aGlzLmRvY3VtZW50LmRlZmF1bHRWaWV3IGFzIGFueSk/LkN1cmFBUEkgfSxcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgbmV4dDogKGV2ZW50KSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuY3VyYUFwaSA9IChldmVudCBhcyBDdXN0b21FdmVudCk/LmRldGFpbD8uYXBpIGFzIEN1cmFBUEk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmxvZy5sb2dNc2coSlNPTi5zdHJpbmdpZnkoZXJyb3IpLCAnRVJST1InKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGluamVjdEN1cmFBUEkoKSB7XHJcbiAgICBjb25zb2xlLmxvZyhcIkN1cmFTZXJ2aWNlIGluamVjdEN1cmFBUElcIilcclxuICAgIGlmICh0aGlzLmRvY3VtZW50LmRlZmF1bHRWaWV3ICYmICEodGhpcy5kb2N1bWVudC5kZWZhdWx0VmlldyBhcyBhbnkpWydDdXJhQVBJJ10pIHtcclxuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMuZG9jdW1lbnQuZGVmYXVsdFZpZXcsICdDdXJhQVBJJywge1xyXG4gICAgICAgIHZhbHVlOiB0aGlzLnNzckN1cmFBUEksXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgY29uc29sZS5sb2coXCJDdXJhU2VydmljZSBpbmplY3RDdXJhQVBJIEFGVEVSXCIsICh0aGlzLmRvY3VtZW50LmRlZmF1bHRWaWV3IGFzIGFueSlbJ0N1cmFBUEknXSlcclxuICB9XHJcblxyXG4gIGdldENvbG9yKGNvbG9yV2l0aERlcHRoOiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsIHtcclxuICAgIGNvbnNvbGUubG9nKFwiQ3VyYVNlcnZpY2UgZ2V0Q29sb3JcIilcclxuICAgIHJldHVybiB0aGlzLmN1cmFBcGk/LnRoZW1lPy5jb2xvcnMuZ2V0Q29sb3IoY29sb3JXaXRoRGVwdGgpID8/IG51bGw7XHJcbiAgfVxyXG5cclxuICBnZXRTcGFjaW5nKCk6IHN0cmluZyB8IG51bGwge1xyXG4gICAgY29uc29sZS5sb2coXCJDdXJhU2VydmljZSBnZXRTcGFjaW5nXCIpXHJcbiAgICByZXR1cm4gdGhpcy5jdXJhQXBpPy50aGVtZS5zcGFjaW5nLmdldFNwYWNpbmcoKSA/PyBudWxsO1xyXG4gIH1cclxuXHJcbiAgZ2V0Rm9udEZhbWlseSh0eXBlOiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsIHtcclxuICAgIGNvbnNvbGUubG9nKFwiQ3VyYVNlcnZpY2UgZ2V0Rm9udEZhbWlseVwiKVxyXG4gICAgcmV0dXJuIHRoaXMuY3VyYUFwaT8udGhlbWUuZm9udHMuZ2V0RmFtaWx5KHR5cGUpID8/IG51bGw7XHJcbiAgfVxyXG5cclxuICBnZXRGb250V2VpZ2h0cygpOiB7IFthbGlhczogc3RyaW5nXTogc3RyaW5nIH0ge1xyXG4gICAgY29uc29sZS5sb2coXCJDdXJhU2VydmljZSBnZXRGb250V2VpZ2h0c1wiKVxyXG4gICAgcmV0dXJuIHRoaXMuY3VyYUFwaT8udGhlbWUuZm9udHMuZ2V0V2VpZ2h0cygpID8/IHt9O1xyXG4gIH1cclxuXHJcbiAgZ2V0Rm9udFNpemUoKTogc3RyaW5nIHtcclxuICAgIGNvbnNvbGUubG9nKFwiQ3VyYVNlcnZpY2UgZ2V0Rm9udFNpemVcIilcclxuICAgIHJldHVybiB0aGlzLmN1cmFBcGk/LnRoZW1lLmZvbnRzLmdldFNpemUoKSA/PyAnJztcclxuICB9XHJcblxyXG4gIGdldEZvbnRDb2xvcigpOiBzdHJpbmcge1xyXG4gICAgY29uc29sZS5sb2coXCJDdXJhU2VydmljZSBnZXRGb250Q29sb3JcIilcclxuICAgIHJldHVybiB0aGlzLmN1cmFBcGk/LnRoZW1lLmZvbnRzLmdldENvbG9yKCkgPz8gJyc7XHJcbiAgfVxyXG5cclxuICBnZXRDdXJhSWNvbk5hbWUoaWNvbjogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGlmIChJY29uQ3VyYURlZmF1bHRUeXBlW2ljb24gYXMga2V5b2YgdHlwZW9mIEljb25DdXJhRGVmYXVsdFR5cGVdKSB7XHJcbiAgICAgIHJldHVybiBJY29uQ3VyYURlZmF1bHRUeXBlW2ljb24gYXMga2V5b2YgdHlwZW9mIEljb25DdXJhRGVmYXVsdFR5cGVdO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHRoaXMuZ2V0Q3VyYVN5c3RlbUljb25OYW1lKGljb24pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRDdXJhU3lzdGVtSWNvbk5hbWUoaWNvbjogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGlmICh0aGlzLmxpYkNvbmZpZy5pY29uc2V0RGVmYXVsdExpc3Q/LmluY2x1ZGVzKGljb24pKSByZXR1cm4gaWNvbjtcclxuICAgIHJldHVybiAnJztcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5jdXJhQVBJU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
108
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VyYS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2l0ZS1mcm9udC1lbmQtbGliL3NyYy9saWIvc2VydmljZXMvY3VyYS9jdXJhLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzdELE9BQU8sRUFDTCxNQUFNLEVBQ04sVUFBVSxFQUVWLFFBQVEsRUFDUixXQUFXLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFnQixTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTFELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsVUFBVSxFQUFhLE1BQU0sd0JBQXdCLENBQUM7OztBQUsvRCxNQUFNLE9BQU8sV0FBVztJQUl0QixZQUNVLEdBQWUsRUFDTSxVQUFrQixFQUNyQixRQUFrQixFQUNoQixTQUFvQixFQUNOLFVBQWU7UUFKakQsUUFBRyxHQUFILEdBQUcsQ0FBWTtRQUNNLGVBQVUsR0FBVixVQUFVLENBQVE7UUFDckIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNoQixjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQ04sZUFBVSxHQUFWLFVBQVUsQ0FBSztRQVJuRCx3QkFBbUIsR0FBd0IsSUFBSSxDQUFDO1FBQ2hELFlBQU8sR0FBbUIsSUFBSSxDQUFDO1FBU3JDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNsQixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztZQUM5QixJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztRQUNqQyxDQUFDO0lBQ0gsQ0FBQztJ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QUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLG1CQUFtQixFQUFFLFdBQVcsRUFBRSxDQUFDO0lBQzFDLENBQUM7K0dBNUZVLFdBQVcsNENBTVosV0FBVyxhQUNYLFFBQVEsYUFDUixVQUFVLGFBQ0UsWUFBWTttSEFUdkIsV0FBVyxjQUZWLE1BQU07OzRGQUVQLFdBQVc7a0JBSHZCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFPSSxNQUFNOzJCQUFDLFdBQVc7OzBCQUNsQixNQUFNOzJCQUFDLFFBQVE7OzBCQUNmLE1BQU07MkJBQUMsVUFBVTs7MEJBQ2pCLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5ULCBpc1BsYXRmb3JtU2VydmVyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHtcclxuICBJbmplY3QsXHJcbiAgSW5qZWN0YWJsZSxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT3B0aW9uYWwsXHJcbiAgUExBVEZPUk1fSUQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCBDdXJhQVBJIGZyb20gJ0ByZWRlZG9yL2N1cmEvZGlzdC90eXBlcy9hcGkvY3VyYS1hcGknO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24sIGZyb21FdmVudCwgc3RhcnRXaXRoIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IExvZ1NlcnZpY2UgfSBmcm9tICcuLi9sb2cvbG9nLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBJY29uQ3VyYURlZmF1bHRUeXBlIH0gZnJvbSAnLi4vLi4vZW51bXMvSWNvbkN1cmFEZWZhdWx0VHlwZS5lbnVtJztcclxuaW1wb3J0IHsgU1NSX0NVUkFfQVBJIH0gZnJvbSAnLi4vLi4vdG9rZW5zL0N1cmFBcGknO1xyXG5pbXBvcnQgeyBMSUJfQ09ORklHLCBMaWJDb25maWcgfSBmcm9tICcuLi8uLi90b2tlbnMvTGliQ29uZmlnJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDdXJhU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcbiAgcHJpdmF0ZSBjdXJhQVBJU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gfCBudWxsID0gbnVsbDtcclxuICBwcml2YXRlIGN1cmFBcGk6IEN1cmFBUEkgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGxvZzogTG9nU2VydmljZSxcclxuICAgIEBJbmplY3QoUExBVEZPUk1fSUQpIHByaXZhdGUgcGxhdGZvcm1JZDogb2JqZWN0LFxyXG4gICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBkb2N1bWVudDogRG9jdW1lbnQsXHJcbiAgICBASW5qZWN0KExJQl9DT05GSUcpIHByaXZhdGUgbGliQ29uZmlnOiBMaWJDb25maWcsXHJcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KFNTUl9DVVJBX0FQSSkgcHJpdmF0ZSBzc3JDdXJhQVBJOiBhbnlcclxuICApIHtcclxuICAgIHRoaXMuY3VyYUluaXQoKTtcclxuICB9XHJcblxyXG4gIGN1cmFJbml0KCkge1xyXG4gICAgaWYgKCF0aGlzLmN1cmFBUElTdWJzY3JpcHRpb24pIHtcclxuICAgICAgdGhpcy5jdXJhQVBJU3Vic2NyaXB0aW9uSW5pdCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjdXJhQVBJU3Vic2NyaXB0aW9uSW5pdCgpIHtcclxuICAgIGlmICh0aGlzLmRvY3VtZW50LmRlZmF1bHRWaWV3KSB7XHJcbiAgICAgIGlmIChpc1BsYXRmb3JtU2VydmVyKHRoaXMucGxhdGZvcm1JZCkpIHtcclxuICAgICAgICB0aGlzLmluamVjdEN1cmFBUEkoKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmN1cmFBUElTdWJzY3JpcHRpb24gPSBmcm9tRXZlbnQoXHJcbiAgICAgICAgdGhpcy5kb2N1bWVudC5kZWZhdWx0VmlldyxcclxuICAgICAgICAnQ3VyYUFQSVJlYWR5J1xyXG4gICAgICApXHJcbiAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICBzdGFydFdpdGgoe1xyXG4gICAgICAgICAgICBkZXRhaWw6IHsgYXBpOiAodGhpcy5kb2N1bWVudC5kZWZhdWx0VmlldyBhcyBhbnkpPy5DdXJhQVBJIH0sXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIClcclxuICAgICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICAgIG5leHQ6IChldmVudCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmN1cmFBcGkgPSAoZXZlbnQgYXMgQ3VzdG9tRXZlbnQpPy5kZXRhaWw/LmFwaSBhcyBDdXJhQVBJO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGVycm9yOiAoZXJyb3IpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5sb2cubG9nTXNnKEpTT04uc3RyaW5naWZ5KGVycm9yKSwgJ0VSUk9SJyk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpbmplY3RDdXJhQVBJKCkge1xyXG4gICAgaWYgKHRoaXMuZG9jdW1lbnQuZGVmYXVsdFZpZXcgJiYgISh0aGlzLmRvY3VtZW50LmRlZmF1bHRWaWV3IGFzIGFueSlbJ0N1cmFBUEknXSkge1xyXG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcy5kb2N1bWVudC5kZWZhdWx0VmlldywgJ0N1cmFBUEknLCB7XHJcbiAgICAgICAgdmFsdWU6IHRoaXMuc3NyQ3VyYUFQSSxcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRDb2xvcihjb2xvcldpdGhEZXB0aDogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XHJcbiAgICByZXR1cm4gdGhpcy5jdXJhQXBpPy50aGVtZT8uY29sb3JzLmdldENvbG9yKGNvbG9yV2l0aERlcHRoKSA/PyBudWxsO1xyXG4gIH1cclxuXHJcbiAgZ2V0U3BhY2luZygpOiBzdHJpbmcgfCBudWxsIHtcclxuICAgIHJldHVybiB0aGlzLmN1cmFBcGk/LnRoZW1lLnNwYWNpbmcuZ2V0U3BhY2luZygpID8/IG51bGw7XHJcbiAgfVxyXG5cclxuICBnZXRGb250RmFtaWx5KHR5cGU6IHN0cmluZyk6IHN0cmluZyB8IG51bGwge1xyXG4gICAgcmV0dXJuIHRoaXMuY3VyYUFwaT8udGhlbWUuZm9udHMuZ2V0RmFtaWx5KHR5cGUpID8/IG51bGw7XHJcbiAgfVxyXG5cclxuICBnZXRGb250V2VpZ2h0cygpOiB7IFthbGlhczogc3RyaW5nXTogc3RyaW5nIH0ge1xyXG4gICAgcmV0dXJuIHRoaXMuY3VyYUFwaT8udGhlbWUuZm9udHMuZ2V0V2VpZ2h0cygpID8/IHt9O1xyXG4gIH1cclxuXHJcbiAgZ2V0Rm9udFNpemUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmN1cmFBcGk/LnRoZW1lLmZvbnRzLmdldFNpemUoKSA/PyAnJztcclxuICB9XHJcblxyXG4gIGdldEZvbnRDb2xvcigpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuY3VyYUFwaT8udGhlbWUuZm9udHMuZ2V0Q29sb3IoKSA/PyAnJztcclxuICB9XHJcblxyXG4gIGdldEN1cmFJY29uTmFtZShpY29uOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgaWYgKEljb25DdXJhRGVmYXVsdFR5cGVbaWNvbiBhcyBrZXlvZiB0eXBlb2YgSWNvbkN1cmFEZWZhdWx0VHlwZV0pIHtcclxuICAgICAgcmV0dXJuIEljb25DdXJhRGVmYXVsdFR5cGVbaWNvbiBhcyBrZXlvZiB0eXBlb2YgSWNvbkN1cmFEZWZhdWx0VHlwZV07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gdGhpcy5nZXRDdXJhU3lzdGVtSWNvbk5hbWUoaWNvbik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldEN1cmFTeXN0ZW1JY29uTmFtZShpY29uOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgaWYgKHRoaXMubGliQ29uZmlnLmljb25zZXREZWZhdWx0TGlzdD8uaW5jbHVkZXMoaWNvbikpIHJldHVybiBpY29uO1xyXG4gICAgcmV0dXJuICcnO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLmN1cmFBUElTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -8,7 +8,6 @@ export class LogService {
|
|
|
8
8
|
this.libConfig = libConfig;
|
|
9
9
|
this.platformId = platformId;
|
|
10
10
|
this.location = location;
|
|
11
|
-
console.log("LibConfig", this.libConfig);
|
|
12
11
|
}
|
|
13
12
|
logMsg(msg, label) {
|
|
14
13
|
label = label ? `${label} ` : '';
|
|
@@ -46,4 +45,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
|
|
|
46
45
|
type: Inject,
|
|
47
46
|
args: [PLATFORM_ID]
|
|
48
47
|
}] }, { type: i1.Location }] });
|
|
49
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaXRlLWZyb250LWVuZC1saWIvc3JjL2xpYi9zZXJ2aWNlcy9sb2cvbG9nLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxpQkFBaUIsRUFBWSxNQUFNLGlCQUFpQixDQUFDO0FBQzlELE9BQU8sRUFBRSxVQUFVLEVBQWEsTUFBTSx3QkFBd0IsQ0FBQzs7O0FBSy9ELE1BQU0sT0FBTyxVQUFVO0lBRXJCLFlBQzhCLFNBQW9CLEVBQ25CLFVBQWUsRUFDcEMsUUFBa0I7UUFGRSxjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQ25CLGVBQVUsR0FBVixVQUFVLENBQUs7UUFDcEMsYUFBUSxHQUFSLFFBQVEsQ0FBVTtJQUN6QixDQUFDO0lBRUosTUFBTSxDQUFDLEdBQVEsRUFBRSxLQUFjO1FBQzdCLEtBQUssR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNqQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDO1lBQy9HLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLEdBQUcsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUNoQyxDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU8sQ0FBQyxTQUFrQjtRQUN4QixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDbkYsQ0FBQztJQUVELE1BQU0sQ0FBQyxTQUFrQjtRQUN2QixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDbEYsQ0FBQztJQUVPLFVBQVU7UUFDaEIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQztZQUNuRCxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1lBQzFFLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQztRQUM1QixPQUFPLEdBQUcsT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsU0FBUyxJQUFJLEVBQUUsRUFBRSxDQUFDO0lBQ3hELENBQUM7SUFFRCxVQUFVO1FBQ1IsT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUM7SUFDdkQsQ0FBQzsrR0FoQ1UsVUFBVSxrQkFHWCxVQUFVLGFBQ1YsV0FBVzttSEFKVixVQUFVLGNBRlQsTUFBTTs7NEZBRVAsVUFBVTtrQkFIdEIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQUlJLE1BQU07MkJBQUMsVUFBVTs7MEJBQ2pCLE1BQU07MkJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdCwgUExBVEZPUk1fSUQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgaXNQbGF0Zm9ybUJyb3dzZXIsIExvY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgTElCX0NPTkZJRywgTGliQ29uZmlnIH0gZnJvbSAnLi4vLi4vdG9rZW5zL0xpYkNvbmZpZyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTG9nU2VydmljZSB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgQEluamVjdChMSUJfQ09ORklHKSBwcml2YXRlIGxpYkNvbmZpZzogTGliQ29uZmlnLFxyXG4gICAgQEluamVjdChQTEFURk9STV9JRCkgcHJpdmF0ZSBwbGF0Zm9ybUlkOiBhbnksXHJcbiAgICBwcml2YXRlIGxvY2F0aW9uOiBMb2NhdGlvblxyXG4gICkge31cclxuXHJcbiAgbG9nTXNnKG1zZzogYW55LCBsYWJlbD86IHN0cmluZykge1xyXG4gICAgbGFiZWwgPSBsYWJlbCA/IGAke2xhYmVsfSBgIDogJyc7XHJcbiAgICBpZiAoIWlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkgfHwgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkgJiYgIXRoaXMubGliQ29uZmlnPy5wcm9kdWN0aW9uKSkge1xyXG4gICAgICBjb25zb2xlLmxvZyhgJHtsYWJlbH0ke21zZ31gKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGxvZ0xvYWQoY29tcG9uZW50Pzogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmxvZ01zZyhgJHt0aGlzLmdldFBhZ2VVUkwoKX0ke2NvbXBvbmVudCA/ICcgLSAnICsgY29tcG9uZW50IDogJyd9YCwgJ0xPQUQnKTtcclxuICB9XHJcblxyXG4gIGxvZzQwNChjb21wb25lbnQ/OiBzdHJpbmcpIHtcclxuICAgIHRoaXMubG9nTXNnKGAke3RoaXMuZ2V0UGFnZVVSTCgpfSR7Y29tcG9uZW50ID8gJyAtICcgKyBjb21wb25lbnQgOiAnJ31gLCAnNDA0Jyk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFNpdGVVcmwoKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IGJhc2VVcmwgPSB0aGlzLmxpYkNvbmZpZz8uc2l0ZVVybC5lbmRzV2l0aCgnLycpXHJcbiAgICAgID8gdGhpcy5saWJDb25maWc/LnNpdGVVcmwuc3Vic3RyaW5nKDAsIHRoaXMubGliQ29uZmlnPy5zaXRlVXJsLmxlbmd0aCAtIDEpXHJcbiAgICAgIDogdGhpcy5saWJDb25maWc/LnNpdGVVcmw7XHJcbiAgICByZXR1cm4gYCR7YmFzZVVybH0ke3RoaXMubGliQ29uZmlnPy5zaXRlU3VmaXggPz8gJyd9YDtcclxuICB9XHJcblxyXG4gIGdldFBhZ2VVUkwoKSB7XHJcbiAgICByZXR1cm4gYCR7dGhpcy5nZXRTaXRlVXJsKCl9JHt0aGlzLmxvY2F0aW9uLnBhdGgoKX1gO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -33,17 +33,21 @@ export class NguCarouselService {
|
|
|
33
33
|
moveTo(carousel, index) {
|
|
34
34
|
carousel.moveTo(index);
|
|
35
35
|
}
|
|
36
|
-
scrollLeft(carousel) {
|
|
36
|
+
scrollLeft(carousel, loop = true) {
|
|
37
37
|
if (carousel.isFirst || carousel.activePoint < 1) {
|
|
38
|
-
|
|
38
|
+
if (loop) {
|
|
39
|
+
carousel.moveTo(carousel.pointNumbers[carousel.pointNumbers.length - 1]);
|
|
40
|
+
}
|
|
39
41
|
}
|
|
40
42
|
else {
|
|
41
43
|
carousel.moveTo(carousel.activePoint - 1);
|
|
42
44
|
}
|
|
43
45
|
}
|
|
44
|
-
scrollRight(carousel) {
|
|
46
|
+
scrollRight(carousel, loop = true) {
|
|
45
47
|
if (carousel.isLast || carousel.activePoint > carousel.pointNumbers.length - 1) {
|
|
46
|
-
|
|
48
|
+
if (loop) {
|
|
49
|
+
carousel.moveTo(0);
|
|
50
|
+
}
|
|
47
51
|
}
|
|
48
52
|
else {
|
|
49
53
|
carousel.moveTo(carousel.activePoint + 1);
|
|
@@ -74,4 +78,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
|
|
|
74
78
|
providedIn: 'root',
|
|
75
79
|
}]
|
|
76
80
|
}] });
|
|
77
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd1LWNhcm91c2VsLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaXRlLWZyb250LWVuZC1saWIvc3JjL2xpYi9zZXJ2aWNlcy9uZ3UtY2Fyb3VzZWwvbmd1LWNhcm91c2VsLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFNM0MsTUFBTSxPQUFPLGtCQUFrQjtJQUgvQjtRQUlVLDJCQUFzQixHQUFzQjtZQUNsRCxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtZQUM3RCxlQUFlLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFO1lBQ3pELEtBQUssRUFBRSxDQUFDO1lBQ1IsS0FBSyxFQUFFLEdBQUc7WUFDVixRQUFRLEVBQUU7Z0JBQ1IsTUFBTSxFQUFFLElBQUk7Z0JBQ1osWUFBWSxFQUFFLElBQUk7YUFDbkI7WUFDRCxLQUFLLEVBQUU7Z0JBQ0wsT0FBTyxFQUFFLEtBQUs7YUFDZjtZQUNELFFBQVEsRUFBRSxHQUFHO1lBQ2IsSUFBSSxFQUFFLENBQUM7WUFDUCxJQUFJLEVBQUUsSUFBSTtZQUNWLEtBQUssRUFBRSxJQUFJO1lBQ1gsTUFBTSxFQUFFLGFBQWE7U0FDdEIsQ0FBQztLQXVESDtJQXREQyxJQUFJLHFCQUFxQjtRQUN2QixPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ3hFLENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxNQUFrQztRQUNyRCxPQUFPO1lBQ0wsR0FBRyxJQUFJLENBQUMscUJBQXFCO1lBQzdCLEdBQUcsTUFBTTtTQUNWLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxDQUFDLFFBQStCLEVBQUUsS0FBYTtRQUNuRCxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxVQUFVLENBQUMsUUFBK0IsRUFBRSxJQUFJLEdBQUcsSUFBSTtRQUNyRCxJQUFJLFFBQVEsQ0FBQyxPQUFPLElBQUksUUFBUSxDQUFDLFdBQVcsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNqRCxJQUFJLElBQUksRUFBRSxDQUFDO2dCQUNULFFBQVEsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzNFLENBQUM7UUFDSCxDQUFDO2FBQU0sQ0FBQztZQUNOLFFBQVEsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUM1QyxDQUFDO0lBQ0gsQ0FBQztJQUVELFdBQVcsQ0FBQyxRQUErQixFQUFFLElBQUksR0FBRyxJQUFJO1FBQ3RELElBQUksUUFBUSxDQUFDLE1BQU0sSUFBSSxRQUFRLENBQUMsV0FBVyxHQUFHLFFBQVEsQ0FBQyxZQUFZLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQy9FLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQ1QsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNyQixDQUFDO1FBQ0gsQ0FBQzthQUFNLENBQUM7WUFDTixRQUFRLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDNUMsQ0FBQztJQUNILENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxNQUF5QixFQUFFLEtBQWEsRUFBRSxjQUFzQixDQUFDO1FBQ2hGLE1BQU0sRUFDSixJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQzVCLGVBQWUsR0FDaEIsR0FBRyxNQUFNLENBQUM7UUFDWCxJQUFJLEtBQUssR0FBRyxDQUFDLGVBQWUsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUN2QyxPQUFPLFdBQVcsR0FBRyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNqQyxDQUFDO1FBQ0QsSUFBSSxLQUFLLEdBQUcsQ0FBQyxlQUFlLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDdkMsT0FBTyxXQUFXLEdBQUcsRUFBRSxDQUFDO1FBQzFCLENBQUM7UUFDRCxJQUFJLEtBQUssR0FBRyxDQUFDLGVBQWUsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUN2QyxPQUFPLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFDMUIsQ0FBQztRQUNELElBQUksS0FBSyxHQUFHLENBQUMsZUFBZSxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ3ZDLE9BQU8sV0FBVyxHQUFHLEVBQUUsQ0FBQztRQUMxQixDQUFDO1FBQ0QsT0FBTyxXQUFXLEdBQUcsRUFBRSxDQUFDO0lBQzFCLENBQUM7K0dBeEVVLGtCQUFrQjttSEFBbEIsa0JBQWtCLGNBRmpCLE1BQU07OzRGQUVQLGtCQUFrQjtrQkFIOUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5ndUNhcm91c2VsLCBOZ3VDYXJvdXNlbENvbmZpZyB9IGZyb20gJ0BuZ3UvY2Fyb3VzZWwnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIE5ndUNhcm91c2VsU2VydmljZSB7XHJcbiAgcHJpdmF0ZSBfZGVmYXVsdENhcm91c2VsQ29uZmlnOiBOZ3VDYXJvdXNlbENvbmZpZyA9IHtcclxuICAgIGdyaWQ6IHsgeHM6IDEuMiwgc206IDEuMiwgbWQ6IDMuMiwgbGc6IDQuMiwgeGw6IDUuMiwgYWxsOiAwIH0sXHJcbiAgICBncmlkQnJlYWtwb2ludHM6IHsgc206IDM2MCwgbWQ6IDc2OCwgbGc6IDEzNjYsIHhsOiAxOTIwIH0sXHJcbiAgICBzbGlkZTogMSxcclxuICAgIHNwZWVkOiA1MDAsXHJcbiAgICBpbnRlcnZhbDoge1xyXG4gICAgICB0aW1pbmc6IDcwMDAsXHJcbiAgICAgIGluaXRpYWxEZWxheTogMTAwMCxcclxuICAgIH0sXHJcbiAgICBwb2ludDoge1xyXG4gICAgICB2aXNpYmxlOiBmYWxzZSxcclxuICAgIH0sXHJcbiAgICB2ZWxvY2l0eTogMC41LFxyXG4gICAgbG9hZDogMSxcclxuICAgIGxvb3A6IHRydWUsXHJcbiAgICB0b3VjaDogdHJ1ZSxcclxuICAgIGVhc2luZzogJ2Vhc2UtaW4tb3V0JyxcclxuICB9O1xyXG4gIGdldCBkZWZhdWx0Q2Fyb3VzZWxDb25maWcoKSB7XHJcbiAgICByZXR1cm4geyAuLi5KU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuX2RlZmF1bHRDYXJvdXNlbENvbmZpZykpIH07XHJcbiAgfVxyXG5cclxuICBjdXN0b21DYXJvdXNlbENvbmZpZyhjb25maWc6IFBhcnRpYWw8Tmd1Q2Fyb3VzZWxDb25maWc+KSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAuLi50aGlzLmRlZmF1bHRDYXJvdXNlbENvbmZpZyxcclxuICAgICAgLi4uY29uZmlnLFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIG1vdmVUbyhjYXJvdXNlbDogTmd1Q2Fyb3VzZWw8YW55LCBhbnk+LCBpbmRleDogbnVtYmVyKSB7XHJcbiAgICBjYXJvdXNlbC5tb3ZlVG8oaW5kZXgpO1xyXG4gIH1cclxuXHJcbiAgc2Nyb2xsTGVmdChjYXJvdXNlbDogTmd1Q2Fyb3VzZWw8YW55LCBhbnk+LCBsb29wID0gdHJ1ZSkge1xyXG4gICAgaWYgKGNhcm91c2VsLmlzRmlyc3QgfHwgY2Fyb3VzZWwuYWN0aXZlUG9pbnQgPCAxKSB7XHJcbiAgICAgIGlmIChsb29wKSB7XHJcbiAgICAgICAgY2Fyb3VzZWwubW92ZVRvKGNhcm91c2VsLnBvaW50TnVtYmVyc1tjYXJvdXNlbC5wb2ludE51bWJlcnMubGVuZ3RoIC0gMV0pO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjYXJvdXNlbC5tb3ZlVG8oY2Fyb3VzZWwuYWN0aXZlUG9pbnQgLSAxKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNjcm9sbFJpZ2h0KGNhcm91c2VsOiBOZ3VDYXJvdXNlbDxhbnksIGFueT4sIGxvb3AgPSB0cnVlKSB7XHJcbiAgICBpZiAoY2Fyb3VzZWwuaXNMYXN0IHx8IGNhcm91c2VsLmFjdGl2ZVBvaW50ID4gY2Fyb3VzZWwucG9pbnROdW1iZXJzLmxlbmd0aCAtIDEpIHtcclxuICAgICAgaWYgKGxvb3ApIHtcclxuICAgICAgICBjYXJvdXNlbC5tb3ZlVG8oMCk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNhcm91c2VsLm1vdmVUbyhjYXJvdXNlbC5hY3RpdmVQb2ludCArIDEpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmVlZFNob3dDb250cm9scyhjb25maWc6IE5ndUNhcm91c2VsQ29uZmlnLCB3aWR0aDogbnVtYmVyLCBpdGVtc0xlbmd0aDogbnVtYmVyID0gMCkge1xyXG4gICAgY29uc3Qge1xyXG4gICAgICBncmlkOiB7IHhzLCBzbSwgbWQsIGxnLCB4bCB9LFxyXG4gICAgICBncmlkQnJlYWtwb2ludHMsXHJcbiAgICB9ID0gY29uZmlnO1xyXG4gICAgaWYgKHdpZHRoID4gKGdyaWRCcmVha3BvaW50cz8ueGwgPz8gMCkpIHtcclxuICAgICAgcmV0dXJuIGl0ZW1zTGVuZ3RoID4gKHhsID8/IDApO1xyXG4gICAgfVxyXG4gICAgaWYgKHdpZHRoID4gKGdyaWRCcmVha3BvaW50cz8ubGcgPz8gMCkpIHtcclxuICAgICAgcmV0dXJuIGl0ZW1zTGVuZ3RoID4gbGc7XHJcbiAgICB9XHJcbiAgICBpZiAod2lkdGggPiAoZ3JpZEJyZWFrcG9pbnRzPy5tZCA/PyAwKSkge1xyXG4gICAgICByZXR1cm4gaXRlbXNMZW5ndGggPiBtZDtcclxuICAgIH1cclxuICAgIGlmICh3aWR0aCA+IChncmlkQnJlYWtwb2ludHM/LnNtID8/IDApKSB7XHJcbiAgICAgIHJldHVybiBpdGVtc0xlbmd0aCA+IHNtO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGl0ZW1zTGVuZ3RoID4geHM7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -171,7 +171,6 @@ class LogService {
|
|
|
171
171
|
this.libConfig = libConfig;
|
|
172
172
|
this.platformId = platformId;
|
|
173
173
|
this.location = location;
|
|
174
|
-
console.log("LibConfig", this.libConfig);
|
|
175
174
|
}
|
|
176
175
|
logMsg(msg, label) {
|
|
177
176
|
label = label ? `${label} ` : '';
|
|
@@ -219,7 +218,6 @@ class CuraService {
|
|
|
219
218
|
this.ssrCuraAPI = ssrCuraAPI;
|
|
220
219
|
this.curaAPISubscription = null;
|
|
221
220
|
this.curaApi = null;
|
|
222
|
-
console.log("CuraService Constructor");
|
|
223
221
|
this.curaInit();
|
|
224
222
|
}
|
|
225
223
|
curaInit() {
|
|
@@ -228,7 +226,6 @@ class CuraService {
|
|
|
228
226
|
}
|
|
229
227
|
}
|
|
230
228
|
curaAPISubscriptionInit() {
|
|
231
|
-
console.log("CuraService curaAPISubscriptionInit");
|
|
232
229
|
if (this.document.defaultView) {
|
|
233
230
|
if (isPlatformServer(this.platformId)) {
|
|
234
231
|
this.injectCuraAPI();
|
|
@@ -248,36 +245,28 @@ class CuraService {
|
|
|
248
245
|
}
|
|
249
246
|
}
|
|
250
247
|
injectCuraAPI() {
|
|
251
|
-
console.log("CuraService injectCuraAPI");
|
|
252
248
|
if (this.document.defaultView && !this.document.defaultView['CuraAPI']) {
|
|
253
249
|
Object.defineProperty(this.document.defaultView, 'CuraAPI', {
|
|
254
250
|
value: this.ssrCuraAPI,
|
|
255
251
|
});
|
|
256
252
|
}
|
|
257
|
-
console.log("CuraService injectCuraAPI AFTER", this.document.defaultView['CuraAPI']);
|
|
258
253
|
}
|
|
259
254
|
getColor(colorWithDepth) {
|
|
260
|
-
console.log("CuraService getColor");
|
|
261
255
|
return this.curaApi?.theme?.colors.getColor(colorWithDepth) ?? null;
|
|
262
256
|
}
|
|
263
257
|
getSpacing() {
|
|
264
|
-
console.log("CuraService getSpacing");
|
|
265
258
|
return this.curaApi?.theme.spacing.getSpacing() ?? null;
|
|
266
259
|
}
|
|
267
260
|
getFontFamily(type) {
|
|
268
|
-
console.log("CuraService getFontFamily");
|
|
269
261
|
return this.curaApi?.theme.fonts.getFamily(type) ?? null;
|
|
270
262
|
}
|
|
271
263
|
getFontWeights() {
|
|
272
|
-
console.log("CuraService getFontWeights");
|
|
273
264
|
return this.curaApi?.theme.fonts.getWeights() ?? {};
|
|
274
265
|
}
|
|
275
266
|
getFontSize() {
|
|
276
|
-
console.log("CuraService getFontSize");
|
|
277
267
|
return this.curaApi?.theme.fonts.getSize() ?? '';
|
|
278
268
|
}
|
|
279
269
|
getFontColor() {
|
|
280
|
-
console.log("CuraService getFontColor");
|
|
281
270
|
return this.curaApi?.theme.fonts.getColor() ?? '';
|
|
282
271
|
}
|
|
283
272
|
getCuraIconName(icon) {
|
|
@@ -401,17 +390,21 @@ class NguCarouselService {
|
|
|
401
390
|
moveTo(carousel, index) {
|
|
402
391
|
carousel.moveTo(index);
|
|
403
392
|
}
|
|
404
|
-
scrollLeft(carousel) {
|
|
393
|
+
scrollLeft(carousel, loop = true) {
|
|
405
394
|
if (carousel.isFirst || carousel.activePoint < 1) {
|
|
406
|
-
|
|
395
|
+
if (loop) {
|
|
396
|
+
carousel.moveTo(carousel.pointNumbers[carousel.pointNumbers.length - 1]);
|
|
397
|
+
}
|
|
407
398
|
}
|
|
408
399
|
else {
|
|
409
400
|
carousel.moveTo(carousel.activePoint - 1);
|
|
410
401
|
}
|
|
411
402
|
}
|
|
412
|
-
scrollRight(carousel) {
|
|
403
|
+
scrollRight(carousel, loop = true) {
|
|
413
404
|
if (carousel.isLast || carousel.activePoint > carousel.pointNumbers.length - 1) {
|
|
414
|
-
|
|
405
|
+
if (loop) {
|
|
406
|
+
carousel.moveTo(0);
|
|
407
|
+
}
|
|
415
408
|
}
|
|
416
409
|
else {
|
|
417
410
|
carousel.moveTo(carousel.activePoint + 1);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rededor-site-front-end-lib.mjs","sources":["../../../projects/site-front-end-lib/src/lib/tokens/LibConfig.ts","../../../projects/site-front-end-lib/src/lib/services/algolia/algolia.service.ts","../../../projects/site-front-end-lib/src/lib/enums/IconCuraDefaultType.enum.ts","../../../projects/site-front-end-lib/src/lib/tokens/CuraApi.ts","../../../projects/site-front-end-lib/src/lib/services/log/log.service.ts","../../../projects/site-front-end-lib/src/lib/services/cura/cura.service.ts","../../../projects/site-front-end-lib/src/lib/services/http-client/http-client.service.ts","../../../projects/site-front-end-lib/src/lib/services/ngu-carousel/ngu-carousel.service.ts","../../../projects/site-front-end-lib/src/lib/helpers/toQueryParams.func.ts","../../../projects/site-front-end-lib/src/lib/services/site-back-end/site-back-end.service.ts","../../../projects/site-front-end-lib/src/lib/services/ssr-loading/ssr-loading.service.ts","../../../projects/site-front-end-lib/src/lib/services/transfer-state/transfer-state.service.ts","../../../projects/site-front-end-lib/src/lib/components/test/test.component.ts","../../../projects/site-front-end-lib/src/lib/components/test/test.component.html","../../../projects/site-front-end-lib/src/lib/components/index.ts","../../../projects/site-front-end-lib/src/lib/helpers/removeDuplicateObjectsFromArray.func.ts","../../../projects/site-front-end-lib/src/lib/helpers/removeDuplicateValuesFromArray.func.ts","../../../projects/site-front-end-lib/src/lib/enums/Estados.enum.ts","../../../projects/site-front-end-lib/src/lib/enums/EnumDoencaTaxonomy.enum.ts","../../../projects/site-front-end-lib/src/public-api.ts","../../../projects/site-front-end-lib/src/rededor-site-front-end-lib.ts"],"sourcesContent":["import { InjectionToken } from \"@angular/core\";\r\n\r\nexport interface LibConfig {\r\n production: boolean;\r\n server: boolean;\r\n siteUrl: string;\r\n siteSufix?: string;\r\n client_id: string;\r\n xOriginApplication: string;\r\n\r\n // Cura iconset\r\n iconsetDefaultList: string[],\r\n\r\n // site-back-end (SNF)\r\n siteApi: {\r\n auth: {\r\n user: string,\r\n password: string;\r\n },\r\n base: string,\r\n baseInternal: string,\r\n recaptcha: string,\r\n centroEstudos: string,\r\n },\r\n\r\n // Algolia Search\r\n algoliaConfig: {\r\n id: string,\r\n key: string,\r\n },\r\n}\r\n\r\n// Configura a lib com informações especificas de cada projeto.\r\nexport const LIB_CONFIG = new InjectionToken<LibConfig>('libConfig');\r\n","import { Inject, Injectable } from '@angular/core';\r\nimport algoliasearch, { SearchClient } from 'algoliasearch';\r\nimport {\r\n SearchOptions,\r\n SearchResponse,\r\n MultipleQueriesQuery,\r\n MultipleQueriesResponse,\r\n SearchForFacetValuesResponse,\r\n} from '@algolia/client-search';\r\nimport { Observable, from } from 'rxjs';\r\nimport { LIB_CONFIG, LibConfig } from '../../tokens/LibConfig';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AlgoliaService {\r\n private client: SearchClient;\r\n\r\n constructor(@Inject(LIB_CONFIG) private libConfig: LibConfig) {\r\n this.client = this.initClient();\r\n }\r\n\r\n search<T = any>(query: string, index: string, params?: SearchOptions): Observable<SearchResponse<T>> {\r\n const algoliaIndex = this.client.initIndex(index);\r\n return from<Promise<SearchResponse<T>>>(algoliaIndex.search<T>(query, params));\r\n }\r\n\r\n searchMultipleIndexes<T = any>(config: MultipleQueriesQuery[]): Observable<MultipleQueriesResponse<T>> {\r\n return from<Promise<MultipleQueriesResponse<T>>>(this.client.multipleQueries<T>(config));\r\n }\r\n\r\n searchForFacetValues(\r\n index: string,\r\n facetName: string,\r\n facetQuery: string,\r\n params?: SearchOptions,\r\n ): Observable<SearchForFacetValuesResponse> {\r\n const algoliaIndex = this.client.initIndex(index);\r\n return from<Promise<SearchForFacetValuesResponse>>(\r\n algoliaIndex.searchForFacetValues(facetName, facetQuery, params),\r\n );\r\n }\r\n\r\n initClient() {\r\n return algoliasearch(this.libConfig.algoliaConfig.id, this.libConfig.algoliaConfig.key);\r\n }\r\n}\r\n","export enum IconCuraDefaultType {\r\n 'icon-360' = '360',\r\n 'accessibility' = 'accessibility',\r\n 'icon-alerta-circ' = 'alertCircle',\r\n 'icon-alerta-tri' = 'alertTriangle',\r\n 'icon-seta-baixo' = 'arrowDown',\r\n 'icon-circle-chevron-down' = 'arrowDownCircle',\r\n 'icon-seta-esquerda' = 'arrowLeft',\r\n 'icon-circle-chevron-left' = 'arrowLeftCircle',\r\n 'icon-seta-direita' = 'arrowRight',\r\n 'icon-circle-chevron-right' = 'arrowRightCircle',\r\n 'icon-seta-cima' = 'arrowUp',\r\n 'icon-circle-chevron-up' = 'arrowUpCircle',\r\n 'icon-anexo' = 'attach',\r\n 'icon-avatar-f' = 'avatarF',\r\n 'icon-avatar-m' = 'avatarM',\r\n 'icon-hematologia' = 'bloodGroup',\r\n 'icon-agm-agendar' = 'calendar',\r\n 'icon-ouvidoria' = 'central',\r\n 'icon-chat-circle' = 'chatCircle',\r\n 'icon-check' = 'check',\r\n 'icon-parceria' = 'checkBadge',\r\n 'icon-check-sucesso' = 'checkCircle',\r\n 'icon-check-hard' = 'checkDouble',\r\n 'icon-hora' = 'clock',\r\n 'icon-fechar' = 'close',\r\n 'icon-collapse' = 'collapse',\r\n 'icon-configuracoes' = 'config',\r\n 'icon-nps-dislike' = 'npsDeslike',\r\n 'icon-download' = 'download',\r\n 'icon-duplicar' = 'duplicate',\r\n 'icon-editar' = 'edit',\r\n 'icon-exame' = 'exam',\r\n 'icon-expand' = 'expand',\r\n 'icon-facebook-2' = 'facebook',\r\n 'icon-facebook' = 'facebook',\r\n 'icon-pdf' = 'filePdf',\r\n 'icon-xls' = 'fileXls',\r\n 'icon-filter' = 'filter',\r\n 'icon-unidade' = 'geotag',\r\n 'icon-geotag' = 'geotag',\r\n 'icon-google' = 'google',\r\n 'icon-google-2' = 'google',\r\n 'icon-endereco-hospital' = 'geotagUnity',\r\n 'icon-nps-hate' = 'npsHate',\r\n 'icon-plano' = 'healthPlan',\r\n 'icon-height' = 'height',\r\n 'icon-altura' = 'height2',\r\n 'icon-home' = 'home',\r\n 'icon-enviar-foto' = 'imageUp',\r\n 'icon-info-2' = 'lamp',\r\n 'icon-info' = 'infoCircle',\r\n 'icon-key-lock' = 'key',\r\n 'icon-idioma' = 'language',\r\n 'icon-idioma-2' = 'language2',\r\n 'icon-idioma-en' = 'languageEN',\r\n 'icon-idioma-pt' = 'languagePT',\r\n 'icon-nps-like' = 'npsLike',\r\n 'icon-link' = 'link',\r\n 'icon-link-externo' = 'linkExternal',\r\n 'icon-lista' = 'list',\r\n 'icon-login' = 'login',\r\n 'icon-logout' = 'logout',\r\n 'icon-nps-love' = 'npsLove',\r\n 'icon-mail' = 'mail',\r\n 'icon-mail-2' = 'mail',\r\n 'icon-mail-input' = 'mail',\r\n 'icon-exame-resultado' = 'medDoc',\r\n 'icon-exame-imagem' = 'medImg',\r\n 'icon-medico' = 'medUser',\r\n 'icon-menu' = 'menuHamburguer',\r\n 'icon-minus' = 'minus',\r\n 'icon-minus-circle' = 'minusCircle',\r\n 'icon-minus-square' = 'minusSquare',\r\n 'icon-nps-neutral' = 'npsNeutral',\r\n 'icon-news' = 'news',\r\n 'icon-alert' = 'notification',\r\n 'icon-telefone' = 'phone',\r\n 'icon-plus' = 'plus',\r\n 'icon-plus-circle' = 'plusCircle',\r\n 'icon-plus-square' = 'plusSquare',\r\n 'icon-print' = 'print',\r\n 'icon-perfil' = 'profileCircle',\r\n 'icon-perfil-2' = 'profile',\r\n 'icon-pulldown' = 'down',\r\n 'icon-pulldown-small' = 'down',\r\n 'pullupG' = 'up',\r\n 'pullupP' = 'up',\r\n 'icon-tooltip' = 'questionCircle',\r\n 'icon-help' = 'questionSquare',\r\n 'icon-date-range' = 'range',\r\n 'icon-reload' = 'reload',\r\n 'icon-agendamento' = 'schedule',\r\n 'icon-agm-ok' = 'scheduleCheck',\r\n 'icon-buscar' = 'search',\r\n 'icon-secure' = 'secure',\r\n 'icon-share' = 'share',\r\n 'icon-share-2' = 'share',\r\n 'icon-sub-item' = 'subItem',\r\n 'icon-geotag-2' = 'target',\r\n 'icon-unlink' = 'unLink',\r\n 'icon-unsecure' = 'unSecure',\r\n 'icon-infraestrutura-idor' = 'unity',\r\n 'icon-upload' = 'upload',\r\n 'icon-view-off' = 'viewFalse',\r\n 'icon-view-on' = 'viewTrue',\r\n 'icon-zoom-in' = 'zoomIn',\r\n 'icon-zoom-out' = 'zoomOut',\r\n 'icon-twitter' = 'twitter',\r\n 'icon-twitter-2' = 'twitter',\r\n 'icon-x' = 'twitter',\r\n 'icon-instagram-2' = 'instagram',\r\n 'icon-instagram' = 'instagram',\r\n 'icon-whatsapp' = 'whatsapp',\r\n 'icon-whatsapp-2' = 'whatsapp',\r\n 'icon-linkedin' = 'linkedin',\r\n 'icon-linkedin-2' = 'linkedin',\r\n 'icon-telegram' = 'telegram',\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\n\r\nexport const SSR_CURA_API = new InjectionToken<any>('SSR Cura API');\r\n","import { Injectable, Inject, PLATFORM_ID } from '@angular/core';\r\nimport { isPlatformBrowser, Location } from '@angular/common';\r\nimport { LIB_CONFIG, LibConfig } from '../../tokens/LibConfig';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class LogService {\r\n\r\n constructor(@Inject(LIB_CONFIG) private libConfig: LibConfig, @Inject(PLATFORM_ID) private platformId: any, private location: Location) {\r\n console.log(\"LibConfig\", this.libConfig);\r\n }\r\n\r\n logMsg(msg: any, label?: string) {\r\n label = label ? `${label} ` : '';\r\n if (!isPlatformBrowser(this.platformId) || (isPlatformBrowser(this.platformId) && !this.libConfig?.production)) {\r\n console.log(`${label}${msg}`);\r\n }\r\n }\r\n\r\n logLoad(component?: string) {\r\n this.logMsg(`${this.getPageURL()}${component ? ' - ' + component : ''}`, 'LOAD');\r\n }\r\n\r\n log404(component?: string) {\r\n this.logMsg(`${this.getPageURL()}${component ? ' - ' + component : ''}`, '404');\r\n }\r\n\r\n private getSiteUrl(): string {\r\n const baseUrl = this.libConfig?.siteUrl.endsWith('/')\r\n ? this.libConfig?.siteUrl.substring(0, this.libConfig?.siteUrl.length - 1)\r\n : this.libConfig?.siteUrl;\r\n return `${baseUrl}${this.libConfig?.siteSufix ?? ''}`;\r\n }\r\n\r\n getPageURL() {\r\n return `${this.getSiteUrl()}${this.location.path()}`;\r\n }\r\n}\r\n","import { DOCUMENT, isPlatformServer } from '@angular/common';\r\nimport {\r\n Inject,\r\n Injectable,\r\n OnDestroy,\r\n Optional,\r\n PLATFORM_ID,\r\n} from '@angular/core';\r\nimport CuraAPI from '@rededor/cura/dist/types/api/cura-api';\r\nimport { Subscription, fromEvent, startWith } from 'rxjs';\r\nimport { LogService } from '../log/log.service';\r\nimport { IconCuraDefaultType } from '../../enums/IconCuraDefaultType.enum';\r\nimport { SSR_CURA_API } from '../../tokens/CuraApi';\r\nimport { LIB_CONFIG, LibConfig } from '../../tokens/LibConfig';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class CuraService implements OnDestroy {\r\n private curaAPISubscription: Subscription | null = null;\r\n private curaApi: CuraAPI | null = null;\r\n\r\n constructor(\r\n private log: LogService,\r\n @Inject(PLATFORM_ID) private platformId: object,\r\n @Inject(DOCUMENT) private document: Document,\r\n @Inject(LIB_CONFIG) private libConfig: LibConfig,\r\n @Optional() @Inject(SSR_CURA_API) private ssrCuraAPI: any\r\n ) {\r\n console.log(\"CuraService Constructor\")\r\n this.curaInit();\r\n }\r\n\r\n curaInit() {\r\n if (!this.curaAPISubscription) {\r\n this.curaAPISubscriptionInit();\r\n }\r\n }\r\n\r\n private curaAPISubscriptionInit() {\r\n console.log(\"CuraService curaAPISubscriptionInit\")\r\n if (this.document.defaultView) {\r\n if (isPlatformServer(this.platformId)) {\r\n this.injectCuraAPI();\r\n }\r\n this.curaAPISubscription = fromEvent(\r\n this.document.defaultView,\r\n 'CuraAPIReady'\r\n )\r\n .pipe(\r\n startWith({\r\n detail: { api: (this.document.defaultView as any)?.CuraAPI },\r\n })\r\n )\r\n .subscribe({\r\n next: (event) => {\r\n this.curaApi = (event as CustomEvent)?.detail?.api as CuraAPI;\r\n },\r\n error: (error) => {\r\n this.log.logMsg(JSON.stringify(error), 'ERROR');\r\n },\r\n });\r\n }\r\n }\r\n\r\n private injectCuraAPI() {\r\n console.log(\"CuraService injectCuraAPI\")\r\n if (this.document.defaultView && !(this.document.defaultView as any)['CuraAPI']) {\r\n Object.defineProperty(this.document.defaultView, 'CuraAPI', {\r\n value: this.ssrCuraAPI,\r\n });\r\n }\r\n console.log(\"CuraService injectCuraAPI AFTER\", (this.document.defaultView as any)['CuraAPI'])\r\n }\r\n\r\n getColor(colorWithDepth: string): string | null {\r\n console.log(\"CuraService getColor\")\r\n return this.curaApi?.theme?.colors.getColor(colorWithDepth) ?? null;\r\n }\r\n\r\n getSpacing(): string | null {\r\n console.log(\"CuraService getSpacing\")\r\n return this.curaApi?.theme.spacing.getSpacing() ?? null;\r\n }\r\n\r\n getFontFamily(type: string): string | null {\r\n console.log(\"CuraService getFontFamily\")\r\n return this.curaApi?.theme.fonts.getFamily(type) ?? null;\r\n }\r\n\r\n getFontWeights(): { [alias: string]: string } {\r\n console.log(\"CuraService getFontWeights\")\r\n return this.curaApi?.theme.fonts.getWeights() ?? {};\r\n }\r\n\r\n getFontSize(): string {\r\n console.log(\"CuraService getFontSize\")\r\n return this.curaApi?.theme.fonts.getSize() ?? '';\r\n }\r\n\r\n getFontColor(): string {\r\n console.log(\"CuraService getFontColor\")\r\n return this.curaApi?.theme.fonts.getColor() ?? '';\r\n }\r\n\r\n getCuraIconName(icon: string): string {\r\n if (IconCuraDefaultType[icon as keyof typeof IconCuraDefaultType]) {\r\n return IconCuraDefaultType[icon as keyof typeof IconCuraDefaultType];\r\n } else {\r\n return this.getCuraSystemIconName(icon);\r\n }\r\n }\r\n\r\n private getCuraSystemIconName(icon: string): string {\r\n if (this.libConfig.iconsetDefaultList?.includes(icon)) return icon;\r\n return '';\r\n }\r\n\r\n ngOnDestroy() {\r\n this.curaAPISubscription?.unsubscribe();\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Inject, Injectable, PLATFORM_ID } from '@angular/core';\r\nimport { DeviceDetectorService } from 'ngx-device-detector';\r\nimport { Observable } from 'rxjs';\r\nimport { LIB_CONFIG, LibConfig } from '../../tokens/LibConfig';\r\nimport { isPlatformServer } from '@angular/common';\r\n\r\n/* Adiciona os Headers necessários para funcionamento do site back-end */\r\n@Injectable({ providedIn: 'root' })\r\nexport class HttpClientService {\r\n constructor(\r\n @Inject(PLATFORM_ID) private platformId: object,\r\n @Inject(LIB_CONFIG) private libConfig: LibConfig,\r\n private http: HttpClient,\r\n private deviceService: DeviceDetectorService,\r\n ) {}\r\n\r\n get<T = any>(url: string): Observable<T> {\r\n const headers = this.getHeaders();\r\n return this.http.get<T>(url, { headers });\r\n }\r\n\r\n post<T = any>(url: string, data?: any): Observable<T> {\r\n const headers = this.getHeaders();\r\n return this.http.post<T>(url, data, { headers });\r\n }\r\n\r\n private getHeaders(): HttpHeaders {\r\n const baseHeaders = new HttpHeaders()\r\n .set(\"x-origin-application\", this.libConfig.xOriginApplication)\r\n .set(\"x-origin-channel\", this.getOriginChannel())\r\n .set(\"x-origin-device\", this.getOriginDevice());\r\n\r\n if (isPlatformServer(this.platformId) && this.libConfig.server) {\r\n return baseHeaders.append(\"authorization\", \"Basic \" + Buffer.from(`${this.libConfig.siteApi.auth.user}:${this.libConfig.siteApi.auth.password}`).toString('base64'));\r\n } else {\r\n return baseHeaders.append(\"client_id\", this.libConfig.client_id);\r\n }\r\n }\r\n\r\n private getOriginChannel(): string {\r\n return this.deviceService.isDesktop() ? 'desktop' : 'mobile';\r\n }\r\n\r\n private getOriginDevice(): string {\r\n return `app-${this.deviceService.getDeviceInfo().os}`;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { NguCarousel, NguCarouselConfig } from '@ngu/carousel';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class NguCarouselService {\r\n private _defaultCarouselConfig: NguCarouselConfig = {\r\n grid: { xs: 1.2, sm: 1.2, md: 3.2, lg: 4.2, xl: 5.2, all: 0 },\r\n gridBreakpoints: { sm: 360, md: 768, lg: 1366, xl: 1920 },\r\n slide: 1,\r\n speed: 500,\r\n interval: {\r\n timing: 7000,\r\n initialDelay: 1000,\r\n },\r\n point: {\r\n visible: false,\r\n },\r\n velocity: 0.5,\r\n load: 1,\r\n loop: true,\r\n touch: true,\r\n easing: 'ease-in-out',\r\n };\r\n get defaultCarouselConfig() {\r\n return { ...JSON.parse(JSON.stringify(this._defaultCarouselConfig)) };\r\n }\r\n\r\n customCarouselConfig(config: Partial<NguCarouselConfig>) {\r\n return {\r\n ...this.defaultCarouselConfig,\r\n ...config,\r\n };\r\n }\r\n\r\n moveTo(carousel: NguCarousel<any, any>, index: number) {\r\n carousel.moveTo(index);\r\n }\r\n\r\n scrollLeft(carousel: NguCarousel<any, any>) {\r\n if (carousel.isFirst || carousel.activePoint < 1) {\r\n carousel.moveTo(carousel.pointNumbers[carousel.pointNumbers.length - 1]);\r\n } else {\r\n carousel.moveTo(carousel.activePoint - 1);\r\n }\r\n }\r\n\r\n scrollRight(carousel: NguCarousel<any, any>) {\r\n if (carousel.isLast || carousel.activePoint > carousel.pointNumbers.length - 1) {\r\n carousel.moveTo(0);\r\n } else {\r\n carousel.moveTo(carousel.activePoint + 1);\r\n }\r\n }\r\n\r\n needShowControls(config: NguCarouselConfig, width: number, itemsLength: number = 0) {\r\n const {\r\n grid: { xs, sm, md, lg, xl },\r\n gridBreakpoints,\r\n } = config;\r\n if (width > (gridBreakpoints?.xl ?? 0)) {\r\n return itemsLength > (xl ?? 0);\r\n }\r\n if (width > (gridBreakpoints?.lg ?? 0)) {\r\n return itemsLength > lg;\r\n }\r\n if (width > (gridBreakpoints?.md ?? 0)) {\r\n return itemsLength > md;\r\n }\r\n if (width > (gridBreakpoints?.sm ?? 0)) {\r\n return itemsLength > sm;\r\n }\r\n return itemsLength > xs;\r\n }\r\n}\r\n","/**\r\n * Converte JSON para query string.\r\n * @param params JSON\r\n */\r\nexport function toQueryParams(params: any): string {\r\n return params ? `?${Object.keys(params).map(key => key + \"=\" + params[key]).join(\"&\")}` : \"\";\r\n}\r\n","import { Injectable, Inject, PLATFORM_ID } from \"@angular/core\";\r\nimport { isPlatformServer } from '@angular/common';\r\nimport { Observable } from \"rxjs\";\r\nimport { LIB_CONFIG, LibConfig } from '../../tokens/LibConfig';\r\nimport { toQueryParams } from \"../../helpers/toQueryParams.func\";\r\nimport { HttpClientService } from \"../http-client/http-client.service\";\r\nimport { LogService } from \"../log/log.service\";\r\n\r\nimport { RDSLConvenio, RDSLConvenioParams } from \"../../models/rdsl-convenio.model\";\r\nimport { RDSLPlano, RDSLPlanoParams } from \"../../models/rdsl-planos.model\";\r\nimport { RDSLCobertura, RDSLCoberturaParams } from \"../../models/rdsl-cobertura.model\";\r\nimport { RDSLUnidade, RDSLUnidadesParams } from \"../../models/rdsl-unidade.model\";\r\nimport { RDSLEspecialidade, RDSLEspecialidadesParams } from \"../../models/rdsl-especialidade.model\";\r\nimport { DoencaBackend } from \"../../models/doenca-backend.model\";\r\nimport { TaxonomiasDoencasList } from \"../../models/doenca-taxonomy.model\";\r\nimport { ExameApiDados, ExameBackend } from \"../../models/exame-backend.model\";\r\nimport { EspecialidadeBackend, EspecialidadeGrupoBackend } from \"../../models/especialidade-backend.model\";\r\nimport { CentroEstudosBackendMedico } from \"../../models/centro-estudos-backend.model\";\r\nimport { WpUnidadeSite } from \"../../models/wordpress/unidade/wp-unidade-site.model\";\r\nimport { WpUnidadeOnco } from \"../../models/wordpress/unidade/wp-unidade-onco.model\";\r\nimport { UnifiedMenu } from \"../../models/menu-item.model\";\r\nimport { MedicoCv } from \"../../models/medico-cv.model\";\r\n\r\nimport * as unidadesWpMock from \"../../json/unidades.json\";\r\nimport * as unidadesOncoWpMock from \"../../json/unidadesOnco.json\"\r\n\r\n@Injectable({\r\n providedIn: \"root\"\r\n})\r\nexport class SiteBackendService {\r\n siteApiUrl: string;\r\n\r\n constructor(\r\n private httpClientService: HttpClientService,\r\n private log: LogService,\r\n @Inject(LIB_CONFIG) private libConfig: LibConfig,\r\n @Inject(PLATFORM_ID) private platformId: object,\r\n ) { this.siteApiUrl = this.getApiUrl(); }\r\n\r\n private getApiUrl(): string {\r\n if (isPlatformServer(this.platformId) && this.libConfig.server) {\r\n return this.libConfig.siteApi.baseInternal;\r\n }\r\n return this.libConfig.siteApi.base;\r\n }\r\n\r\n getUnidades(params?: RDSLUnidadesParams): Observable<RDSLUnidade[]> {\r\n return this.httpClientService.get(`${this.siteApiUrl}unidades${toQueryParams(params)}`);\r\n }\r\n\r\n getUnidadesWP(): Observable<WpUnidadeSite[]> {\r\n return new Observable<WpUnidadeSite[]>((subscriber) => {\r\n this.httpClientService.get<WpUnidadeSite[]>(`${this.siteApiUrl}unidades/wp`).subscribe({\r\n next: (unidades) => {\r\n subscriber.next(unidades);\r\n subscriber.complete();\r\n },\r\n error: async (err) => {\r\n this.log.logMsg(JSON.stringify(err), \"ERROR\");\r\n this.log.logMsg(\"Utilizando json de unidades wordpress.\", \"FALLBACK\");\r\n subscriber.next(Array.from(unidadesWpMock) as any);\r\n subscriber.complete();\r\n },\r\n })\r\n });\r\n }\r\n\r\n getUnidadesMenusWP(unidadeSlug = \"\"): Observable<UnifiedMenu> {\r\n const unidade = unidadeSlug && unidadeSlug !== \"/\" ? unidadeSlug : \"\";\r\n return this.httpClientService.get(`${this.siteApiUrl}unidades/wp/menus/${unidade}`);\r\n }\r\n\r\n getUnidadesOncoWP(): Observable<WpUnidadeOnco[]> {\r\n return new Observable<WpUnidadeOnco[]>((subscriber) => {\r\n this.httpClientService.get<WpUnidadeOnco[]>(`${this.siteApiUrl}unidades/wp-onco`).subscribe({\r\n next: (unidades) => {\r\n subscriber.next(unidades);\r\n subscriber.complete();\r\n },\r\n error: async (err) => {\r\n this.log.logMsg(JSON.stringify(err), \"ERROR\");\r\n this.log.logMsg(\"Utilizando json de unidades onco wordpress.\", \"FALLBACK\");\r\n subscriber.next(Array.from(unidadesOncoWpMock) as any);\r\n subscriber.complete();\r\n },\r\n })\r\n })\r\n }\r\n\r\n getConvenios(params?: RDSLConvenioParams): Observable<RDSLConvenio[]> {\r\n return this.httpClientService.get(`${this.siteApiUrl}convenios${toQueryParams(params)}`);\r\n }\r\n\r\n getPlanos(params?: RDSLPlanoParams): Observable<RDSLPlano[]> {\r\n return this.httpClientService.get(`${this.siteApiUrl}planos${toQueryParams(params)}`);\r\n }\r\n\r\n getCoberturas(planoIdQd: number, params?: RDSLCoberturaParams): Observable<RDSLCobertura[]> {\r\n return this.httpClientService.get(`${this.siteApiUrl}planos/${planoIdQd}/cobertura${toQueryParams(params)}`);\r\n }\r\n\r\n getDoencas(): Observable<DoencaBackend[]> {\r\n return this.httpClientService.get(`${this.siteApiUrl}doencas`);\r\n }\r\n\r\n getDoencasTaxonomies() {\r\n const url = `${this.siteApiUrl}doencas/taxonomias`;\r\n return this.httpClientService.get<TaxonomiasDoencasList>(url);\r\n }\r\n\r\n getDoencasUniqueLetters(): Observable<string[]> {\r\n const url = `${this.siteApiUrl}doencas/letters`;\r\n return this.httpClientService.get(url);\r\n }\r\n\r\n getVacinas(): Observable<any[]> {\r\n return this.httpClientService.get(`${this.siteApiUrl}vacinas`);\r\n }\r\n\r\n getVacinasTaxonomies() {\r\n return this.httpClientService.get(`${this.siteApiUrl}vacinas/taxonomias`);\r\n }\r\n\r\n getCirurgias(): Observable<any[]> {\r\n return this.httpClientService.get(`${this.siteApiUrl}cirurgias`);\r\n }\r\n\r\n getCirurgiasGrupos(): Observable<any[]> {\r\n return this.httpClientService.get(`${this.siteApiUrl}cirurgias/grupos`);\r\n }\r\n\r\n getCirurgiasTaxonomies(): Observable<any[]> {\r\n return this.httpClientService.get(`${this.siteApiUrl}cirurgias/taxonomias`);\r\n }\r\n\r\n getGruposExames(unidadeSlug: string): Observable<ExameBackend[]> {\r\n const slug = unidadeSlug ?? \"/\";\r\n const params = slug ? `?unidade=${slug}` : \"\";\r\n return this.httpClientService.get(`${this.siteApiUrl}exames-e-procedimentos${params}`);\r\n }\r\n\r\n getExamesByGrupo(unidadeSlug: string, slugGrupo: string): Observable<ExameBackend[]> {\r\n const slug = unidadeSlug ?? \"/\";\r\n const params = `?unidade=${slug}&slugGrupo=${slugGrupo}`;\r\n return this.httpClientService.get(`${this.siteApiUrl}exames-e-procedimentos/grupo${params}`);\r\n }\r\n\r\n getExamesApiDados(): Observable<ExameApiDados[]> {\r\n return this.httpClientService.get(`${this.siteApiUrl}exames-e-procedimentos/api-dados`);\r\n }\r\n\r\n getGruposEspecialidades(unidadeSlug?: string): Observable<EspecialidadeGrupoBackend[]> {\r\n const params = unidadeSlug ? `?unidade=${unidadeSlug}` : \"\";\r\n return this.httpClientService.get(`${this.siteApiUrl}especialidades${params}`);\r\n }\r\n\r\n getEspecialidadesByGrupo(tituloGrupo: string, unidadeSlug?: string): Observable<EspecialidadeBackend[]> {\r\n const titulo = `?tituloGrupo=${encodeURI(tituloGrupo)}`;\r\n const slug = unidadeSlug ? `&unidade=${unidadeSlug}` : \"\";\r\n const params = `${titulo}${slug}`;\r\n return this.httpClientService.get(`${this.siteApiUrl}especialidades/grupo${params}`);\r\n }\r\n\r\n getEspecialidadesDq(params?: RDSLEspecialidadesParams): Observable<RDSLEspecialidade[]> {\r\n return this.httpClientService.get(`${this.siteApiUrl}especialidades/especialidades-dq${toQueryParams(params)}`);\r\n }\r\n\r\n getGruposEspecialidadesDq(params?: RDSLEspecialidadesParams): Observable<RDSLEspecialidade[]> {\r\n return this.httpClientService.get(`${this.siteApiUrl}especialidades/grupos-dq${toQueryParams(params)}`);\r\n }\r\n\r\n getRecaptchaResult(token: string): Observable<any> {\r\n return this.httpClientService.post(`${this.siteApiUrl}${this.libConfig.siteApi.recaptcha}`, { token });\r\n }\r\n\r\n getMedicoCv(medicoId: number): Observable<MedicoCv> {\r\n return this.httpClientService.get(`${this.siteApiUrl}medicos/${medicoId}`);\r\n }\r\n\r\n // Centro de Estudos\r\n checkMedico(conselhoCodigo: string): Observable<any> {\r\n return this.httpClientService.get(`${this.siteApiUrl}${this.libConfig.siteApi.centroEstudos}?email=${conselhoCodigo}`);\r\n }\r\n\r\n saveMedico(novoMedico: CentroEstudosBackendMedico): Observable<CentroEstudosBackendMedico> {\r\n return this.httpClientService.post(`${this.siteApiUrl}${this.libConfig.siteApi.centroEstudos}`, novoMedico);\r\n }\r\n}\r\n","import { Inject, Injectable, PLATFORM_ID } from '@angular/core';\r\nimport { isPlatformServer } from '@angular/common';\r\nimport { LogService } from '../log/log.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SsrLoadingService {\r\n public ssrIsLoading = false;\r\n private _loading = false;\r\n\r\n constructor(private logService: LogService, @Inject(PLATFORM_ID) private platformId: object) {}\r\n\r\n startLoading(component = '', intervalMs = 200, timeoutMs = 20000) {\r\n if (!isPlatformServer(this.platformId)) return;\r\n\r\n this._loading = true;\r\n this.ssrIsLoading = true;\r\n\r\n const timeout = setTimeout(() => {\r\n this._loading = false;\r\n this.ssrIsLoading = false;\r\n this.logService.logMsg('SSR loading service Timeout ' + component, 'TIMEOUT');\r\n }, timeoutMs);\r\n\r\n const interval = setInterval(() => {\r\n if (this._loading === true) {\r\n this.ssrIsLoading = !this.ssrIsLoading;\r\n } else {\r\n clearInterval(interval);\r\n clearTimeout(timeout);\r\n this.ssrIsLoading = false;\r\n }\r\n }, intervalMs);\r\n }\r\n\r\n stopLoading() {\r\n this._loading = false;\r\n }\r\n}\r\n","import { Injectable, makeStateKey, StateKey, TransferState } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class TransferStateService {\r\n private keys = new Map<string, StateKey<string>>();\r\n\r\n constructor(private readonly transferState: TransferState) {}\r\n\r\n setKey(name: any, response: any | any[]) {\r\n let key = this.keys.get(name);\r\n if (!key) {\r\n key = makeStateKey(name);\r\n this.keys.set(name, key);\r\n }\r\n this.transferState.set(key, response);\r\n }\r\n\r\n getKey(name: string, defaultValue: any | any[] = null): any | any[] {\r\n let key = this.keys.get(name);\r\n if (!key) {\r\n key = makeStateKey(name);\r\n this.keys.set(name, key);\r\n }\r\n const response = this.transferState.get(key, defaultValue);\r\n return response;\r\n }\r\n\r\n remove(name: string) {\r\n let key = this.keys.get(name);\r\n if (!key) {\r\n key = makeStateKey(name);\r\n this.keys.set(name, key);\r\n }\r\n this.transferState.remove(key);\r\n }\r\n}\r\n","import { CUSTOM_ELEMENTS_SCHEMA, Component, HostBinding } from '@angular/core';\r\nimport { CuraService } from '../../services';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'rdsite-test',\r\n standalone: true,\r\n imports: [CommonModule],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n templateUrl: './test.component.html',\r\n styleUrl: './test.component.scss'\r\n})\r\nexport class TestComponent {\r\n\r\n @HostBinding('style') style = {\r\n '--color-dark': this.curaService.getColor('primary-dark'),\r\n '--neutral-purewhite': this.curaService.getColor('neutral-purewhite'),\r\n };\r\n\r\n constructor(private curaService: CuraService) {}\r\n}\r\n","<p [ngStyle]=\"{'background-color': 'var(--color-dark)', 'color': 'var(--neutral-purewhite)'}\">test works!</p>\r\n<cura-button size=\"medium\" color=\"primary\" font-color=\"light\">CURA BUTTON</cura-button>\r\n","// Components\r\nexport * from './test/test.component';\r\n","const removeDuplicateObjectsFromArray = <T = any>(arr: T[], key: string): T[] => {\r\n return [...new Map(arr.map((item) => [(item as any)[key], item])).values()];\r\n};\r\n\r\nexport { removeDuplicateObjectsFromArray };\r\n","const removeDuplicateValuesFromArray = <T = any>(arr: T[]): T[] => {\r\n return Array.from(new Set(arr));\r\n};\r\n\r\nexport {removeDuplicateValuesFromArray};\r\n","export enum Estados {\r\n AC = 'Acre',\r\n AL = 'Alagoas',\r\n AP = 'Amapá',\r\n AM = 'Amazonas',\r\n BA = 'Bahia',\r\n CE = 'Ceará',\r\n DF = 'Distrito Federal',\r\n ES = 'Espírito Santo',\r\n GO = 'Goías',\r\n MA = 'Maranhão',\r\n MT = 'Mato Grosso',\r\n MS = 'Mato Grosso do Sul',\r\n MG = 'Minas Gerais',\r\n PA = 'Pará',\r\n PB = 'Paraíba',\r\n PR = 'Paraná',\r\n PE = 'Pernambuco',\r\n PI = 'Piauí',\r\n RJ = 'Rio de Janeiro',\r\n RN = 'Rio Grande do Norte',\r\n RS = 'Rio Grande do Sul',\r\n RO = 'Rondônia',\r\n RR = 'Roraíma',\r\n SC = 'Santa Catarina',\r\n SP = 'São Paulo',\r\n SE = 'Sergipe',\r\n TO = 'Tocantins',\r\n}\r\n","export enum EnumDoencaTaxonomy {\r\n DOENCAS_CAT = \"doencas_cat\",\r\n DOENCAS_TAG = \"doencas_tag\",\r\n}\r\n\r\nexport enum EnumDoencaTaxonomyCat {\r\n DOENCA = \"doencas\",\r\n SINTOMA = \"sintomas\",\r\n}\r\n","/*\r\n * Public API Surface of site-front-end-lib\r\n */\r\n\r\n// Components\r\nexport * from './lib/components';\r\n\r\n//Services\r\nexport * from './lib/services';\r\n\r\n// Helpers\r\nexport * from './lib/helpers';\r\n\r\n// Enums\r\nexport * from './lib/enums/Estados.enum';\r\nexport * from './lib/enums/EnumDoencaTaxonomy.enum';\r\nexport * from './lib/enums/IconCuraDefaultType.enum';\r\n\r\n// Tokens\r\nexport * from './lib/tokens/CuraApi';\r\nexport * from './lib/tokens/LibConfig';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i1.HttpClientService","i2.LogService","i1.CuraService","i2"],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}
|
|
1
|
+
{"version":3,"file":"rededor-site-front-end-lib.mjs","sources":["../../../projects/site-front-end-lib/src/lib/tokens/LibConfig.ts","../../../projects/site-front-end-lib/src/lib/services/algolia/algolia.service.ts","../../../projects/site-front-end-lib/src/lib/enums/IconCuraDefaultType.enum.ts","../../../projects/site-front-end-lib/src/lib/tokens/CuraApi.ts","../../../projects/site-front-end-lib/src/lib/services/log/log.service.ts","../../../projects/site-front-end-lib/src/lib/services/cura/cura.service.ts","../../../projects/site-front-end-lib/src/lib/services/http-client/http-client.service.ts","../../../projects/site-front-end-lib/src/lib/services/ngu-carousel/ngu-carousel.service.ts","../../../projects/site-front-end-lib/src/lib/helpers/toQueryParams.func.ts","../../../projects/site-front-end-lib/src/lib/services/site-back-end/site-back-end.service.ts","../../../projects/site-front-end-lib/src/lib/services/ssr-loading/ssr-loading.service.ts","../../../projects/site-front-end-lib/src/lib/services/transfer-state/transfer-state.service.ts","../../../projects/site-front-end-lib/src/lib/components/test/test.component.ts","../../../projects/site-front-end-lib/src/lib/components/test/test.component.html","../../../projects/site-front-end-lib/src/lib/components/index.ts","../../../projects/site-front-end-lib/src/lib/helpers/removeDuplicateObjectsFromArray.func.ts","../../../projects/site-front-end-lib/src/lib/helpers/removeDuplicateValuesFromArray.func.ts","../../../projects/site-front-end-lib/src/lib/enums/Estados.enum.ts","../../../projects/site-front-end-lib/src/lib/enums/EnumDoencaTaxonomy.enum.ts","../../../projects/site-front-end-lib/src/public-api.ts","../../../projects/site-front-end-lib/src/rededor-site-front-end-lib.ts"],"sourcesContent":["import { InjectionToken } from \"@angular/core\";\r\n\r\nexport interface LibConfig {\r\n production: boolean;\r\n server: boolean;\r\n siteUrl: string;\r\n siteSufix?: string;\r\n client_id: string;\r\n xOriginApplication: string;\r\n\r\n // Cura iconset\r\n iconsetDefaultList: string[],\r\n\r\n // site-back-end (SNF)\r\n siteApi: {\r\n auth: {\r\n user: string,\r\n password: string;\r\n },\r\n base: string,\r\n baseInternal: string,\r\n recaptcha: string,\r\n centroEstudos: string,\r\n },\r\n\r\n // Algolia Search\r\n algoliaConfig: {\r\n id: string,\r\n key: string,\r\n },\r\n}\r\n\r\n// Configura a lib com informações especificas de cada projeto.\r\nexport const LIB_CONFIG = new InjectionToken<LibConfig>('libConfig');\r\n","import { Inject, Injectable } from '@angular/core';\r\nimport algoliasearch, { SearchClient } from 'algoliasearch';\r\nimport {\r\n SearchOptions,\r\n SearchResponse,\r\n MultipleQueriesQuery,\r\n MultipleQueriesResponse,\r\n SearchForFacetValuesResponse,\r\n} from '@algolia/client-search';\r\nimport { Observable, from } from 'rxjs';\r\nimport { LIB_CONFIG, LibConfig } from '../../tokens/LibConfig';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AlgoliaService {\r\n private client: SearchClient;\r\n\r\n constructor(@Inject(LIB_CONFIG) private libConfig: LibConfig) {\r\n this.client = this.initClient();\r\n }\r\n\r\n search<T = any>(query: string, index: string, params?: SearchOptions): Observable<SearchResponse<T>> {\r\n const algoliaIndex = this.client.initIndex(index);\r\n return from<Promise<SearchResponse<T>>>(algoliaIndex.search<T>(query, params));\r\n }\r\n\r\n searchMultipleIndexes<T = any>(config: MultipleQueriesQuery[]): Observable<MultipleQueriesResponse<T>> {\r\n return from<Promise<MultipleQueriesResponse<T>>>(this.client.multipleQueries<T>(config));\r\n }\r\n\r\n searchForFacetValues(\r\n index: string,\r\n facetName: string,\r\n facetQuery: string,\r\n params?: SearchOptions,\r\n ): Observable<SearchForFacetValuesResponse> {\r\n const algoliaIndex = this.client.initIndex(index);\r\n return from<Promise<SearchForFacetValuesResponse>>(\r\n algoliaIndex.searchForFacetValues(facetName, facetQuery, params),\r\n );\r\n }\r\n\r\n initClient() {\r\n return algoliasearch(this.libConfig.algoliaConfig.id, this.libConfig.algoliaConfig.key);\r\n }\r\n}\r\n","export enum IconCuraDefaultType {\r\n 'icon-360' = '360',\r\n 'accessibility' = 'accessibility',\r\n 'icon-alerta-circ' = 'alertCircle',\r\n 'icon-alerta-tri' = 'alertTriangle',\r\n 'icon-seta-baixo' = 'arrowDown',\r\n 'icon-circle-chevron-down' = 'arrowDownCircle',\r\n 'icon-seta-esquerda' = 'arrowLeft',\r\n 'icon-circle-chevron-left' = 'arrowLeftCircle',\r\n 'icon-seta-direita' = 'arrowRight',\r\n 'icon-circle-chevron-right' = 'arrowRightCircle',\r\n 'icon-seta-cima' = 'arrowUp',\r\n 'icon-circle-chevron-up' = 'arrowUpCircle',\r\n 'icon-anexo' = 'attach',\r\n 'icon-avatar-f' = 'avatarF',\r\n 'icon-avatar-m' = 'avatarM',\r\n 'icon-hematologia' = 'bloodGroup',\r\n 'icon-agm-agendar' = 'calendar',\r\n 'icon-ouvidoria' = 'central',\r\n 'icon-chat-circle' = 'chatCircle',\r\n 'icon-check' = 'check',\r\n 'icon-parceria' = 'checkBadge',\r\n 'icon-check-sucesso' = 'checkCircle',\r\n 'icon-check-hard' = 'checkDouble',\r\n 'icon-hora' = 'clock',\r\n 'icon-fechar' = 'close',\r\n 'icon-collapse' = 'collapse',\r\n 'icon-configuracoes' = 'config',\r\n 'icon-nps-dislike' = 'npsDeslike',\r\n 'icon-download' = 'download',\r\n 'icon-duplicar' = 'duplicate',\r\n 'icon-editar' = 'edit',\r\n 'icon-exame' = 'exam',\r\n 'icon-expand' = 'expand',\r\n 'icon-facebook-2' = 'facebook',\r\n 'icon-facebook' = 'facebook',\r\n 'icon-pdf' = 'filePdf',\r\n 'icon-xls' = 'fileXls',\r\n 'icon-filter' = 'filter',\r\n 'icon-unidade' = 'geotag',\r\n 'icon-geotag' = 'geotag',\r\n 'icon-google' = 'google',\r\n 'icon-google-2' = 'google',\r\n 'icon-endereco-hospital' = 'geotagUnity',\r\n 'icon-nps-hate' = 'npsHate',\r\n 'icon-plano' = 'healthPlan',\r\n 'icon-height' = 'height',\r\n 'icon-altura' = 'height2',\r\n 'icon-home' = 'home',\r\n 'icon-enviar-foto' = 'imageUp',\r\n 'icon-info-2' = 'lamp',\r\n 'icon-info' = 'infoCircle',\r\n 'icon-key-lock' = 'key',\r\n 'icon-idioma' = 'language',\r\n 'icon-idioma-2' = 'language2',\r\n 'icon-idioma-en' = 'languageEN',\r\n 'icon-idioma-pt' = 'languagePT',\r\n 'icon-nps-like' = 'npsLike',\r\n 'icon-link' = 'link',\r\n 'icon-link-externo' = 'linkExternal',\r\n 'icon-lista' = 'list',\r\n 'icon-login' = 'login',\r\n 'icon-logout' = 'logout',\r\n 'icon-nps-love' = 'npsLove',\r\n 'icon-mail' = 'mail',\r\n 'icon-mail-2' = 'mail',\r\n 'icon-mail-input' = 'mail',\r\n 'icon-exame-resultado' = 'medDoc',\r\n 'icon-exame-imagem' = 'medImg',\r\n 'icon-medico' = 'medUser',\r\n 'icon-menu' = 'menuHamburguer',\r\n 'icon-minus' = 'minus',\r\n 'icon-minus-circle' = 'minusCircle',\r\n 'icon-minus-square' = 'minusSquare',\r\n 'icon-nps-neutral' = 'npsNeutral',\r\n 'icon-news' = 'news',\r\n 'icon-alert' = 'notification',\r\n 'icon-telefone' = 'phone',\r\n 'icon-plus' = 'plus',\r\n 'icon-plus-circle' = 'plusCircle',\r\n 'icon-plus-square' = 'plusSquare',\r\n 'icon-print' = 'print',\r\n 'icon-perfil' = 'profileCircle',\r\n 'icon-perfil-2' = 'profile',\r\n 'icon-pulldown' = 'down',\r\n 'icon-pulldown-small' = 'down',\r\n 'pullupG' = 'up',\r\n 'pullupP' = 'up',\r\n 'icon-tooltip' = 'questionCircle',\r\n 'icon-help' = 'questionSquare',\r\n 'icon-date-range' = 'range',\r\n 'icon-reload' = 'reload',\r\n 'icon-agendamento' = 'schedule',\r\n 'icon-agm-ok' = 'scheduleCheck',\r\n 'icon-buscar' = 'search',\r\n 'icon-secure' = 'secure',\r\n 'icon-share' = 'share',\r\n 'icon-share-2' = 'share',\r\n 'icon-sub-item' = 'subItem',\r\n 'icon-geotag-2' = 'target',\r\n 'icon-unlink' = 'unLink',\r\n 'icon-unsecure' = 'unSecure',\r\n 'icon-infraestrutura-idor' = 'unity',\r\n 'icon-upload' = 'upload',\r\n 'icon-view-off' = 'viewFalse',\r\n 'icon-view-on' = 'viewTrue',\r\n 'icon-zoom-in' = 'zoomIn',\r\n 'icon-zoom-out' = 'zoomOut',\r\n 'icon-twitter' = 'twitter',\r\n 'icon-twitter-2' = 'twitter',\r\n 'icon-x' = 'twitter',\r\n 'icon-instagram-2' = 'instagram',\r\n 'icon-instagram' = 'instagram',\r\n 'icon-whatsapp' = 'whatsapp',\r\n 'icon-whatsapp-2' = 'whatsapp',\r\n 'icon-linkedin' = 'linkedin',\r\n 'icon-linkedin-2' = 'linkedin',\r\n 'icon-telegram' = 'telegram',\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\n\r\nexport const SSR_CURA_API = new InjectionToken<any>('SSR Cura API');\r\n","import { Injectable, Inject, PLATFORM_ID } from '@angular/core';\r\nimport { isPlatformBrowser, Location } from '@angular/common';\r\nimport { LIB_CONFIG, LibConfig } from '../../tokens/LibConfig';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class LogService {\r\n\r\n constructor(\r\n @Inject(LIB_CONFIG) private libConfig: LibConfig,\r\n @Inject(PLATFORM_ID) private platformId: any,\r\n private location: Location\r\n ) {}\r\n\r\n logMsg(msg: any, label?: string) {\r\n label = label ? `${label} ` : '';\r\n if (!isPlatformBrowser(this.platformId) || (isPlatformBrowser(this.platformId) && !this.libConfig?.production)) {\r\n console.log(`${label}${msg}`);\r\n }\r\n }\r\n\r\n logLoad(component?: string) {\r\n this.logMsg(`${this.getPageURL()}${component ? ' - ' + component : ''}`, 'LOAD');\r\n }\r\n\r\n log404(component?: string) {\r\n this.logMsg(`${this.getPageURL()}${component ? ' - ' + component : ''}`, '404');\r\n }\r\n\r\n private getSiteUrl(): string {\r\n const baseUrl = this.libConfig?.siteUrl.endsWith('/')\r\n ? this.libConfig?.siteUrl.substring(0, this.libConfig?.siteUrl.length - 1)\r\n : this.libConfig?.siteUrl;\r\n return `${baseUrl}${this.libConfig?.siteSufix ?? ''}`;\r\n }\r\n\r\n getPageURL() {\r\n return `${this.getSiteUrl()}${this.location.path()}`;\r\n }\r\n}\r\n","import { DOCUMENT, isPlatformServer } from '@angular/common';\r\nimport {\r\n Inject,\r\n Injectable,\r\n OnDestroy,\r\n Optional,\r\n PLATFORM_ID,\r\n} from '@angular/core';\r\nimport CuraAPI from '@rededor/cura/dist/types/api/cura-api';\r\nimport { Subscription, fromEvent, startWith } from 'rxjs';\r\nimport { LogService } from '../log/log.service';\r\nimport { IconCuraDefaultType } from '../../enums/IconCuraDefaultType.enum';\r\nimport { SSR_CURA_API } from '../../tokens/CuraApi';\r\nimport { LIB_CONFIG, LibConfig } from '../../tokens/LibConfig';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class CuraService implements OnDestroy {\r\n private curaAPISubscription: Subscription | null = null;\r\n private curaApi: CuraAPI | null = null;\r\n\r\n constructor(\r\n private log: LogService,\r\n @Inject(PLATFORM_ID) private platformId: object,\r\n @Inject(DOCUMENT) private document: Document,\r\n @Inject(LIB_CONFIG) private libConfig: LibConfig,\r\n @Optional() @Inject(SSR_CURA_API) private ssrCuraAPI: any\r\n ) {\r\n this.curaInit();\r\n }\r\n\r\n curaInit() {\r\n if (!this.curaAPISubscription) {\r\n this.curaAPISubscriptionInit();\r\n }\r\n }\r\n\r\n private curaAPISubscriptionInit() {\r\n if (this.document.defaultView) {\r\n if (isPlatformServer(this.platformId)) {\r\n this.injectCuraAPI();\r\n }\r\n this.curaAPISubscription = fromEvent(\r\n this.document.defaultView,\r\n 'CuraAPIReady'\r\n )\r\n .pipe(\r\n startWith({\r\n detail: { api: (this.document.defaultView as any)?.CuraAPI },\r\n })\r\n )\r\n .subscribe({\r\n next: (event) => {\r\n this.curaApi = (event as CustomEvent)?.detail?.api as CuraAPI;\r\n },\r\n error: (error) => {\r\n this.log.logMsg(JSON.stringify(error), 'ERROR');\r\n },\r\n });\r\n }\r\n }\r\n\r\n private injectCuraAPI() {\r\n if (this.document.defaultView && !(this.document.defaultView as any)['CuraAPI']) {\r\n Object.defineProperty(this.document.defaultView, 'CuraAPI', {\r\n value: this.ssrCuraAPI,\r\n });\r\n }\r\n }\r\n\r\n getColor(colorWithDepth: string): string | null {\r\n return this.curaApi?.theme?.colors.getColor(colorWithDepth) ?? null;\r\n }\r\n\r\n getSpacing(): string | null {\r\n return this.curaApi?.theme.spacing.getSpacing() ?? null;\r\n }\r\n\r\n getFontFamily(type: string): string | null {\r\n return this.curaApi?.theme.fonts.getFamily(type) ?? null;\r\n }\r\n\r\n getFontWeights(): { [alias: string]: string } {\r\n return this.curaApi?.theme.fonts.getWeights() ?? {};\r\n }\r\n\r\n getFontSize(): string {\r\n return this.curaApi?.theme.fonts.getSize() ?? '';\r\n }\r\n\r\n getFontColor(): string {\r\n return this.curaApi?.theme.fonts.getColor() ?? '';\r\n }\r\n\r\n getCuraIconName(icon: string): string {\r\n if (IconCuraDefaultType[icon as keyof typeof IconCuraDefaultType]) {\r\n return IconCuraDefaultType[icon as keyof typeof IconCuraDefaultType];\r\n } else {\r\n return this.getCuraSystemIconName(icon);\r\n }\r\n }\r\n\r\n private getCuraSystemIconName(icon: string): string {\r\n if (this.libConfig.iconsetDefaultList?.includes(icon)) return icon;\r\n return '';\r\n }\r\n\r\n ngOnDestroy() {\r\n this.curaAPISubscription?.unsubscribe();\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Inject, Injectable, PLATFORM_ID } from '@angular/core';\r\nimport { DeviceDetectorService } from 'ngx-device-detector';\r\nimport { Observable } from 'rxjs';\r\nimport { LIB_CONFIG, LibConfig } from '../../tokens/LibConfig';\r\nimport { isPlatformServer } from '@angular/common';\r\n\r\n/* Adiciona os Headers necessários para funcionamento do site back-end */\r\n@Injectable({ providedIn: 'root' })\r\nexport class HttpClientService {\r\n constructor(\r\n @Inject(PLATFORM_ID) private platformId: object,\r\n @Inject(LIB_CONFIG) private libConfig: LibConfig,\r\n private http: HttpClient,\r\n private deviceService: DeviceDetectorService,\r\n ) {}\r\n\r\n get<T = any>(url: string): Observable<T> {\r\n const headers = this.getHeaders();\r\n return this.http.get<T>(url, { headers });\r\n }\r\n\r\n post<T = any>(url: string, data?: any): Observable<T> {\r\n const headers = this.getHeaders();\r\n return this.http.post<T>(url, data, { headers });\r\n }\r\n\r\n private getHeaders(): HttpHeaders {\r\n const baseHeaders = new HttpHeaders()\r\n .set(\"x-origin-application\", this.libConfig.xOriginApplication)\r\n .set(\"x-origin-channel\", this.getOriginChannel())\r\n .set(\"x-origin-device\", this.getOriginDevice());\r\n\r\n if (isPlatformServer(this.platformId) && this.libConfig.server) {\r\n return baseHeaders.append(\"authorization\", \"Basic \" + Buffer.from(`${this.libConfig.siteApi.auth.user}:${this.libConfig.siteApi.auth.password}`).toString('base64'));\r\n } else {\r\n return baseHeaders.append(\"client_id\", this.libConfig.client_id);\r\n }\r\n }\r\n\r\n private getOriginChannel(): string {\r\n return this.deviceService.isDesktop() ? 'desktop' : 'mobile';\r\n }\r\n\r\n private getOriginDevice(): string {\r\n return `app-${this.deviceService.getDeviceInfo().os}`;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { NguCarousel, NguCarouselConfig } from '@ngu/carousel';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class NguCarouselService {\r\n private _defaultCarouselConfig: NguCarouselConfig = {\r\n grid: { xs: 1.2, sm: 1.2, md: 3.2, lg: 4.2, xl: 5.2, all: 0 },\r\n gridBreakpoints: { sm: 360, md: 768, lg: 1366, xl: 1920 },\r\n slide: 1,\r\n speed: 500,\r\n interval: {\r\n timing: 7000,\r\n initialDelay: 1000,\r\n },\r\n point: {\r\n visible: false,\r\n },\r\n velocity: 0.5,\r\n load: 1,\r\n loop: true,\r\n touch: true,\r\n easing: 'ease-in-out',\r\n };\r\n get defaultCarouselConfig() {\r\n return { ...JSON.parse(JSON.stringify(this._defaultCarouselConfig)) };\r\n }\r\n\r\n customCarouselConfig(config: Partial<NguCarouselConfig>) {\r\n return {\r\n ...this.defaultCarouselConfig,\r\n ...config,\r\n };\r\n }\r\n\r\n moveTo(carousel: NguCarousel<any, any>, index: number) {\r\n carousel.moveTo(index);\r\n }\r\n\r\n scrollLeft(carousel: NguCarousel<any, any>, loop = true) {\r\n if (carousel.isFirst || carousel.activePoint < 1) {\r\n if (loop) {\r\n carousel.moveTo(carousel.pointNumbers[carousel.pointNumbers.length - 1]);\r\n }\r\n } else {\r\n carousel.moveTo(carousel.activePoint - 1);\r\n }\r\n }\r\n\r\n scrollRight(carousel: NguCarousel<any, any>, loop = true) {\r\n if (carousel.isLast || carousel.activePoint > carousel.pointNumbers.length - 1) {\r\n if (loop) {\r\n carousel.moveTo(0);\r\n }\r\n } else {\r\n carousel.moveTo(carousel.activePoint + 1);\r\n }\r\n }\r\n\r\n needShowControls(config: NguCarouselConfig, width: number, itemsLength: number = 0) {\r\n const {\r\n grid: { xs, sm, md, lg, xl },\r\n gridBreakpoints,\r\n } = config;\r\n if (width > (gridBreakpoints?.xl ?? 0)) {\r\n return itemsLength > (xl ?? 0);\r\n }\r\n if (width > (gridBreakpoints?.lg ?? 0)) {\r\n return itemsLength > lg;\r\n }\r\n if (width > (gridBreakpoints?.md ?? 0)) {\r\n return itemsLength > md;\r\n }\r\n if (width > (gridBreakpoints?.sm ?? 0)) {\r\n return itemsLength > sm;\r\n }\r\n return itemsLength > xs;\r\n }\r\n}\r\n","/**\r\n * Converte JSON para query string.\r\n * @param params JSON\r\n */\r\nexport function toQueryParams(params: any): string {\r\n return params ? `?${Object.keys(params).map(key => key + \"=\" + params[key]).join(\"&\")}` : \"\";\r\n}\r\n","import { Injectable, Inject, PLATFORM_ID } from \"@angular/core\";\r\nimport { isPlatformServer } from '@angular/common';\r\nimport { Observable } from \"rxjs\";\r\nimport { LIB_CONFIG, LibConfig } from '../../tokens/LibConfig';\r\nimport { toQueryParams } from \"../../helpers/toQueryParams.func\";\r\nimport { HttpClientService } from \"../http-client/http-client.service\";\r\nimport { LogService } from \"../log/log.service\";\r\n\r\nimport { RDSLConvenio, RDSLConvenioParams } from \"../../models/rdsl-convenio.model\";\r\nimport { RDSLPlano, RDSLPlanoParams } from \"../../models/rdsl-planos.model\";\r\nimport { RDSLCobertura, RDSLCoberturaParams } from \"../../models/rdsl-cobertura.model\";\r\nimport { RDSLUnidade, RDSLUnidadesParams } from \"../../models/rdsl-unidade.model\";\r\nimport { RDSLEspecialidade, RDSLEspecialidadesParams } from \"../../models/rdsl-especialidade.model\";\r\nimport { DoencaBackend } from \"../../models/doenca-backend.model\";\r\nimport { TaxonomiasDoencasList } from \"../../models/doenca-taxonomy.model\";\r\nimport { ExameApiDados, ExameBackend } from \"../../models/exame-backend.model\";\r\nimport { EspecialidadeBackend, EspecialidadeGrupoBackend } from \"../../models/especialidade-backend.model\";\r\nimport { CentroEstudosBackendMedico } from \"../../models/centro-estudos-backend.model\";\r\nimport { WpUnidadeSite } from \"../../models/wordpress/unidade/wp-unidade-site.model\";\r\nimport { WpUnidadeOnco } from \"../../models/wordpress/unidade/wp-unidade-onco.model\";\r\nimport { UnifiedMenu } from \"../../models/menu-item.model\";\r\nimport { MedicoCv } from \"../../models/medico-cv.model\";\r\n\r\nimport * as unidadesWpMock from \"../../json/unidades.json\";\r\nimport * as unidadesOncoWpMock from \"../../json/unidadesOnco.json\"\r\n\r\n@Injectable({\r\n providedIn: \"root\"\r\n})\r\nexport class SiteBackendService {\r\n siteApiUrl: string;\r\n\r\n constructor(\r\n private httpClientService: HttpClientService,\r\n private log: LogService,\r\n @Inject(LIB_CONFIG) private libConfig: LibConfig,\r\n @Inject(PLATFORM_ID) private platformId: object,\r\n ) { this.siteApiUrl = this.getApiUrl(); }\r\n\r\n private getApiUrl(): string {\r\n if (isPlatformServer(this.platformId) && this.libConfig.server) {\r\n return this.libConfig.siteApi.baseInternal;\r\n }\r\n return this.libConfig.siteApi.base;\r\n }\r\n\r\n getUnidades(params?: RDSLUnidadesParams): Observable<RDSLUnidade[]> {\r\n return this.httpClientService.get(`${this.siteApiUrl}unidades${toQueryParams(params)}`);\r\n }\r\n\r\n getUnidadesWP(): Observable<WpUnidadeSite[]> {\r\n return new Observable<WpUnidadeSite[]>((subscriber) => {\r\n this.httpClientService.get<WpUnidadeSite[]>(`${this.siteApiUrl}unidades/wp`).subscribe({\r\n next: (unidades) => {\r\n subscriber.next(unidades);\r\n subscriber.complete();\r\n },\r\n error: async (err) => {\r\n this.log.logMsg(JSON.stringify(err), \"ERROR\");\r\n this.log.logMsg(\"Utilizando json de unidades wordpress.\", \"FALLBACK\");\r\n subscriber.next(Array.from(unidadesWpMock) as any);\r\n subscriber.complete();\r\n },\r\n })\r\n });\r\n }\r\n\r\n getUnidadesMenusWP(unidadeSlug = \"\"): Observable<UnifiedMenu> {\r\n const unidade = unidadeSlug && unidadeSlug !== \"/\" ? unidadeSlug : \"\";\r\n return this.httpClientService.get(`${this.siteApiUrl}unidades/wp/menus/${unidade}`);\r\n }\r\n\r\n getUnidadesOncoWP(): Observable<WpUnidadeOnco[]> {\r\n return new Observable<WpUnidadeOnco[]>((subscriber) => {\r\n this.httpClientService.get<WpUnidadeOnco[]>(`${this.siteApiUrl}unidades/wp-onco`).subscribe({\r\n next: (unidades) => {\r\n subscriber.next(unidades);\r\n subscriber.complete();\r\n },\r\n error: async (err) => {\r\n this.log.logMsg(JSON.stringify(err), \"ERROR\");\r\n this.log.logMsg(\"Utilizando json de unidades onco wordpress.\", \"FALLBACK\");\r\n subscriber.next(Array.from(unidadesOncoWpMock) as any);\r\n subscriber.complete();\r\n },\r\n })\r\n })\r\n }\r\n\r\n getConvenios(params?: RDSLConvenioParams): Observable<RDSLConvenio[]> {\r\n return this.httpClientService.get(`${this.siteApiUrl}convenios${toQueryParams(params)}`);\r\n }\r\n\r\n getPlanos(params?: RDSLPlanoParams): Observable<RDSLPlano[]> {\r\n return this.httpClientService.get(`${this.siteApiUrl}planos${toQueryParams(params)}`);\r\n }\r\n\r\n getCoberturas(planoIdQd: number, params?: RDSLCoberturaParams): Observable<RDSLCobertura[]> {\r\n return this.httpClientService.get(`${this.siteApiUrl}planos/${planoIdQd}/cobertura${toQueryParams(params)}`);\r\n }\r\n\r\n getDoencas(): Observable<DoencaBackend[]> {\r\n return this.httpClientService.get(`${this.siteApiUrl}doencas`);\r\n }\r\n\r\n getDoencasTaxonomies() {\r\n const url = `${this.siteApiUrl}doencas/taxonomias`;\r\n return this.httpClientService.get<TaxonomiasDoencasList>(url);\r\n }\r\n\r\n getDoencasUniqueLetters(): Observable<string[]> {\r\n const url = `${this.siteApiUrl}doencas/letters`;\r\n return this.httpClientService.get(url);\r\n }\r\n\r\n getVacinas(): Observable<any[]> {\r\n return this.httpClientService.get(`${this.siteApiUrl}vacinas`);\r\n }\r\n\r\n getVacinasTaxonomies() {\r\n return this.httpClientService.get(`${this.siteApiUrl}vacinas/taxonomias`);\r\n }\r\n\r\n getCirurgias(): Observable<any[]> {\r\n return this.httpClientService.get(`${this.siteApiUrl}cirurgias`);\r\n }\r\n\r\n getCirurgiasGrupos(): Observable<any[]> {\r\n return this.httpClientService.get(`${this.siteApiUrl}cirurgias/grupos`);\r\n }\r\n\r\n getCirurgiasTaxonomies(): Observable<any[]> {\r\n return this.httpClientService.get(`${this.siteApiUrl}cirurgias/taxonomias`);\r\n }\r\n\r\n getGruposExames(unidadeSlug: string): Observable<ExameBackend[]> {\r\n const slug = unidadeSlug ?? \"/\";\r\n const params = slug ? `?unidade=${slug}` : \"\";\r\n return this.httpClientService.get(`${this.siteApiUrl}exames-e-procedimentos${params}`);\r\n }\r\n\r\n getExamesByGrupo(unidadeSlug: string, slugGrupo: string): Observable<ExameBackend[]> {\r\n const slug = unidadeSlug ?? \"/\";\r\n const params = `?unidade=${slug}&slugGrupo=${slugGrupo}`;\r\n return this.httpClientService.get(`${this.siteApiUrl}exames-e-procedimentos/grupo${params}`);\r\n }\r\n\r\n getExamesApiDados(): Observable<ExameApiDados[]> {\r\n return this.httpClientService.get(`${this.siteApiUrl}exames-e-procedimentos/api-dados`);\r\n }\r\n\r\n getGruposEspecialidades(unidadeSlug?: string): Observable<EspecialidadeGrupoBackend[]> {\r\n const params = unidadeSlug ? `?unidade=${unidadeSlug}` : \"\";\r\n return this.httpClientService.get(`${this.siteApiUrl}especialidades${params}`);\r\n }\r\n\r\n getEspecialidadesByGrupo(tituloGrupo: string, unidadeSlug?: string): Observable<EspecialidadeBackend[]> {\r\n const titulo = `?tituloGrupo=${encodeURI(tituloGrupo)}`;\r\n const slug = unidadeSlug ? `&unidade=${unidadeSlug}` : \"\";\r\n const params = `${titulo}${slug}`;\r\n return this.httpClientService.get(`${this.siteApiUrl}especialidades/grupo${params}`);\r\n }\r\n\r\n getEspecialidadesDq(params?: RDSLEspecialidadesParams): Observable<RDSLEspecialidade[]> {\r\n return this.httpClientService.get(`${this.siteApiUrl}especialidades/especialidades-dq${toQueryParams(params)}`);\r\n }\r\n\r\n getGruposEspecialidadesDq(params?: RDSLEspecialidadesParams): Observable<RDSLEspecialidade[]> {\r\n return this.httpClientService.get(`${this.siteApiUrl}especialidades/grupos-dq${toQueryParams(params)}`);\r\n }\r\n\r\n getRecaptchaResult(token: string): Observable<any> {\r\n return this.httpClientService.post(`${this.siteApiUrl}${this.libConfig.siteApi.recaptcha}`, { token });\r\n }\r\n\r\n getMedicoCv(medicoId: number): Observable<MedicoCv> {\r\n return this.httpClientService.get(`${this.siteApiUrl}medicos/${medicoId}`);\r\n }\r\n\r\n // Centro de Estudos\r\n checkMedico(conselhoCodigo: string): Observable<any> {\r\n return this.httpClientService.get(`${this.siteApiUrl}${this.libConfig.siteApi.centroEstudos}?email=${conselhoCodigo}`);\r\n }\r\n\r\n saveMedico(novoMedico: CentroEstudosBackendMedico): Observable<CentroEstudosBackendMedico> {\r\n return this.httpClientService.post(`${this.siteApiUrl}${this.libConfig.siteApi.centroEstudos}`, novoMedico);\r\n }\r\n}\r\n","import { Inject, Injectable, PLATFORM_ID } from '@angular/core';\r\nimport { isPlatformServer } from '@angular/common';\r\nimport { LogService } from '../log/log.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SsrLoadingService {\r\n public ssrIsLoading = false;\r\n private _loading = false;\r\n\r\n constructor(private logService: LogService, @Inject(PLATFORM_ID) private platformId: object) {}\r\n\r\n startLoading(component = '', intervalMs = 200, timeoutMs = 20000) {\r\n if (!isPlatformServer(this.platformId)) return;\r\n\r\n this._loading = true;\r\n this.ssrIsLoading = true;\r\n\r\n const timeout = setTimeout(() => {\r\n this._loading = false;\r\n this.ssrIsLoading = false;\r\n this.logService.logMsg('SSR loading service Timeout ' + component, 'TIMEOUT');\r\n }, timeoutMs);\r\n\r\n const interval = setInterval(() => {\r\n if (this._loading === true) {\r\n this.ssrIsLoading = !this.ssrIsLoading;\r\n } else {\r\n clearInterval(interval);\r\n clearTimeout(timeout);\r\n this.ssrIsLoading = false;\r\n }\r\n }, intervalMs);\r\n }\r\n\r\n stopLoading() {\r\n this._loading = false;\r\n }\r\n}\r\n","import { Injectable, makeStateKey, StateKey, TransferState } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class TransferStateService {\r\n private keys = new Map<string, StateKey<string>>();\r\n\r\n constructor(private readonly transferState: TransferState) {}\r\n\r\n setKey(name: any, response: any | any[]) {\r\n let key = this.keys.get(name);\r\n if (!key) {\r\n key = makeStateKey(name);\r\n this.keys.set(name, key);\r\n }\r\n this.transferState.set(key, response);\r\n }\r\n\r\n getKey(name: string, defaultValue: any | any[] = null): any | any[] {\r\n let key = this.keys.get(name);\r\n if (!key) {\r\n key = makeStateKey(name);\r\n this.keys.set(name, key);\r\n }\r\n const response = this.transferState.get(key, defaultValue);\r\n return response;\r\n }\r\n\r\n remove(name: string) {\r\n let key = this.keys.get(name);\r\n if (!key) {\r\n key = makeStateKey(name);\r\n this.keys.set(name, key);\r\n }\r\n this.transferState.remove(key);\r\n }\r\n}\r\n","import { CUSTOM_ELEMENTS_SCHEMA, Component, HostBinding } from '@angular/core';\r\nimport { CuraService } from '../../services';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'rdsite-test',\r\n standalone: true,\r\n imports: [CommonModule],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n templateUrl: './test.component.html',\r\n styleUrl: './test.component.scss'\r\n})\r\nexport class TestComponent {\r\n\r\n @HostBinding('style') style = {\r\n '--color-dark': this.curaService.getColor('primary-dark'),\r\n '--neutral-purewhite': this.curaService.getColor('neutral-purewhite'),\r\n };\r\n\r\n constructor(private curaService: CuraService) {}\r\n}\r\n","<p [ngStyle]=\"{'background-color': 'var(--color-dark)', 'color': 'var(--neutral-purewhite)'}\">test works!</p>\r\n<cura-button size=\"medium\" color=\"primary\" font-color=\"light\">CURA BUTTON</cura-button>\r\n","// Components\r\nexport * from './test/test.component';\r\n","const removeDuplicateObjectsFromArray = <T = any>(arr: T[], key: string): T[] => {\r\n return [...new Map(arr.map((item) => [(item as any)[key], item])).values()];\r\n};\r\n\r\nexport { removeDuplicateObjectsFromArray };\r\n","const removeDuplicateValuesFromArray = <T = any>(arr: T[]): T[] => {\r\n return Array.from(new Set(arr));\r\n};\r\n\r\nexport {removeDuplicateValuesFromArray};\r\n","export enum Estados {\r\n AC = 'Acre',\r\n AL = 'Alagoas',\r\n AP = 'Amapá',\r\n AM = 'Amazonas',\r\n BA = 'Bahia',\r\n CE = 'Ceará',\r\n DF = 'Distrito Federal',\r\n ES = 'Espírito Santo',\r\n GO = 'Goías',\r\n MA = 'Maranhão',\r\n MT = 'Mato Grosso',\r\n MS = 'Mato Grosso do Sul',\r\n MG = 'Minas Gerais',\r\n PA = 'Pará',\r\n PB = 'Paraíba',\r\n PR = 'Paraná',\r\n PE = 'Pernambuco',\r\n PI = 'Piauí',\r\n RJ = 'Rio de Janeiro',\r\n RN = 'Rio Grande do Norte',\r\n RS = 'Rio Grande do Sul',\r\n RO = 'Rondônia',\r\n RR = 'Roraíma',\r\n SC = 'Santa Catarina',\r\n SP = 'São Paulo',\r\n SE = 'Sergipe',\r\n TO = 'Tocantins',\r\n}\r\n","export enum EnumDoencaTaxonomy {\r\n DOENCAS_CAT = \"doencas_cat\",\r\n DOENCAS_TAG = \"doencas_tag\",\r\n}\r\n\r\nexport enum EnumDoencaTaxonomyCat {\r\n DOENCA = \"doencas\",\r\n SINTOMA = \"sintomas\",\r\n}\r\n","/*\r\n * Public API Surface of site-front-end-lib\r\n */\r\n\r\n// Components\r\nexport * from './lib/components';\r\n\r\n//Services\r\nexport * from './lib/services';\r\n\r\n// Helpers\r\nexport * from './lib/helpers';\r\n\r\n// Enums\r\nexport * from './lib/enums/Estados.enum';\r\nexport * from './lib/enums/EnumDoencaTaxonomy.enum';\r\nexport * from './lib/enums/IconCuraDefaultType.enum';\r\n\r\n// Tokens\r\nexport * from './lib/tokens/CuraApi';\r\nexport * from './lib/tokens/LibConfig';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i1.HttpClientService","i2.LogService","i1.CuraService","i2"],"mappings":"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GAAG,CAAA,CAAA,EAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA,CAAE,GAAG,EAAE,CAAC;AAChG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MCuBa,kBAAkB,CAAA;AAG7B,IAAA,WAAA,CACU,iBAAoC,EACpC,GAAe,EACK,SAAoB,EACnB,UAAkB,EAAA;QAHvC,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;QACpC,IAAG,CAAA,GAAA,GAAH,GAAG,CAAY;QACK,IAAS,CAAA,SAAA,GAAT,SAAS,CAAW;QACnB,IAAU,CAAA,UAAA,GAAV,UAAU,CAAQ;AAC7C,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;KAAE;IAEjC,SAAS,GAAA;AACf,QAAA,IAAI,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;AAC9D,YAAA,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC;SAC5C;AACD,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC;KACpC;AAED,IAAA,WAAW,CAAC,MAA2B,EAAA;AACrC,QAAA,OAAO,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAG,EAAA,IAAI,CAAC,UAAU,WAAW,aAAa,CAAC,MAAM,CAAC,CAAA,CAAE,CAAC,CAAC;KACzF;IAED,aAAa,GAAA;AACX,QAAA,OAAO,IAAI,UAAU,CAAkB,CAAC,UAAU,KAAI;AACpD,YAAA,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAkB,CAAA,EAAG,IAAI,CAAC,UAAU,CAAA,WAAA,CAAa,CAAC,CAAC,SAAS,CAAC;AACrF,gBAAA,IAAI,EAAE,CAAC,QAAQ,KAAI;AACjB,oBAAA,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBAC1B,UAAU,CAAC,QAAQ,EAAE,CAAC;iBACvB;AACD,gBAAA,KAAK,EAAE,OAAO,GAAG,KAAI;AACnB,oBAAA,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;oBAC9C,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,wCAAwC,EAAE,UAAU,CAAC,CAAC;oBACtE,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAQ,CAAC,CAAC;oBACnD,UAAU,CAAC,QAAQ,EAAE,CAAC;iBACvB;AACF,aAAA,CAAC,CAAA;AACJ,SAAC,CAAC,CAAC;KACJ;IAED,kBAAkB,CAAC,WAAW,GAAG,EAAE,EAAA;AACjC,QAAA,MAAM,OAAO,GAAG,WAAW,IAAI,WAAW,KAAK,GAAG,GAAG,WAAW,GAAG,EAAE,CAAC;AACtE,QAAA,OAAO,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAA,EAAG,IAAI,CAAC,UAAU,CAAA,kBAAA,EAAqB,OAAO,CAAA,CAAE,CAAC,CAAC;KACrF;IAED,iBAAiB,GAAA;AACf,QAAA,OAAO,IAAI,UAAU,CAAkB,CAAC,UAAU,KAAI;AACpD,YAAA,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAkB,CAAA,EAAG,IAAI,CAAC,UAAU,CAAA,gBAAA,CAAkB,CAAC,CAAC,SAAS,CAAC;AAC1F,gBAAA,IAAI,EAAE,CAAC,QAAQ,KAAI;AACjB,oBAAA,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBAC1B,UAAU,CAAC,QAAQ,EAAE,CAAC;iBACvB;AACD,gBAAA,KAAK,EAAE,OAAO,GAAG,KAAI;AACnB,oBAAA,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;oBAC9C,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,6CAA6C,EAAE,UAAU,CAAC,CAAC;oBAC3E,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAQ,CAAC,CAAC;oBACvD,UAAU,CAAC,QAAQ,EAAE,CAAC;iBACvB;AACF,aAAA,CAAC,CAAA;AACJ,SAAC,CAAC,CAAA;KACH;AAED,IAAA,YAAY,CAAC,MAA2B,EAAA;AACtC,QAAA,OAAO,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAG,EAAA,IAAI,CAAC,UAAU,YAAY,aAAa,CAAC,MAAM,CAAC,CAAA,CAAE,CAAC,CAAC;KAC1F;AAED,IAAA,SAAS,CAAC,MAAwB,EAAA;AAChC,QAAA,OAAO,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAG,EAAA,IAAI,CAAC,UAAU,SAAS,aAAa,CAAC,MAAM,CAAC,CAAA,CAAE,CAAC,CAAC;KACvF;IAED,aAAa,CAAC,SAAiB,EAAE,MAA4B,EAAA;AAC3D,QAAA,OAAO,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAU,OAAA,EAAA,SAAS,aAAa,aAAa,CAAC,MAAM,CAAC,CAAA,CAAE,CAAC,CAAC;KAC9G;IAED,UAAU,GAAA;AACR,QAAA,OAAO,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAG,EAAA,IAAI,CAAC,UAAU,CAAS,OAAA,CAAA,CAAC,CAAC;KAChE;IAED,oBAAoB,GAAA;AAClB,QAAA,MAAM,GAAG,GAAG,CAAA,EAAG,IAAI,CAAC,UAAU,oBAAoB,CAAC;QACnD,OAAO,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAwB,GAAG,CAAC,CAAC;KAC/D;IAED,uBAAuB,GAAA;AACrB,QAAA,MAAM,GAAG,GAAG,CAAA,EAAG,IAAI,CAAC,UAAU,iBAAiB,CAAC;QAChD,OAAO,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;KACxC;IAED,UAAU,GAAA;AACR,QAAA,OAAO,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAG,EAAA,IAAI,CAAC,UAAU,CAAS,OAAA,CAAA,CAAC,CAAC;KAChE;IAED,oBAAoB,GAAA;AAClB,QAAA,OAAO,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAG,EAAA,IAAI,CAAC,UAAU,CAAoB,kBAAA,CAAA,CAAC,CAAC;KAC3E;IAED,YAAY,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAG,EAAA,IAAI,CAAC,UAAU,CAAW,SAAA,CAAA,CAAC,CAAC;KAClE;IAED,kBAAkB,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAG,EAAA,IAAI,CAAC,UAAU,CAAkB,gBAAA,CAAA,CAAC,CAAC;KACzE;IAED,sBAAsB,GAAA;AACpB,QAAA,OAAO,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAG,EAAA,IAAI,CAAC,UAAU,CAAsB,oBAAA,CAAA,CAAC,CAAC;KAC7E;AAED,IAAA,eAAe,CAAC,WAAmB,EAAA;AACjC,QAAA,MAAM,IAAI,GAAG,WAAW,IAAI,GAAG,CAAC;AAChC,QAAA,MAAM,MAAM,GAAG,IAAI,GAAG,CAAY,SAAA,EAAA,IAAI,CAAE,CAAA,GAAG,EAAE,CAAC;AAC9C,QAAA,OAAO,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAA,EAAG,IAAI,CAAC,UAAU,CAAA,sBAAA,EAAyB,MAAM,CAAA,CAAE,CAAC,CAAC;KACxF;IAED,gBAAgB,CAAC,WAAmB,EAAE,SAAiB,EAAA;AACrD,QAAA,MAAM,IAAI,GAAG,WAAW,IAAI,GAAG,CAAC;AAChC,QAAA,MAAM,MAAM,GAAG,CAAA,SAAA,EAAY,IAAI,CAAc,WAAA,EAAA,SAAS,EAAE,CAAC;AACzD,QAAA,OAAO,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAA,EAAG,IAAI,CAAC,UAAU,CAAA,4BAAA,EAA+B,MAAM,CAAA,CAAE,CAAC,CAAC;KAC9F;IAED,iBAAiB,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAG,EAAA,IAAI,CAAC,UAAU,CAAkC,gCAAA,CAAA,CAAC,CAAC;KACzF;AAED,IAAA,uBAAuB,CAAC,WAAoB,EAAA;AAC1C,QAAA,MAAM,MAAM,GAAG,WAAW,GAAG,CAAY,SAAA,EAAA,WAAW,CAAE,CAAA,GAAG,EAAE,CAAC;AAC5D,QAAA,OAAO,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAA,EAAG,IAAI,CAAC,UAAU,CAAA,cAAA,EAAiB,MAAM,CAAA,CAAE,CAAC,CAAC;KAChF;IAED,wBAAwB,CAAC,WAAmB,EAAE,WAAoB,EAAA;QAChE,MAAM,MAAM,GAAG,CAAgB,aAAA,EAAA,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC;AACxD,QAAA,MAAM,IAAI,GAAG,WAAW,GAAG,CAAY,SAAA,EAAA,WAAW,CAAE,CAAA,GAAG,EAAE,CAAC;AAC1D,QAAA,MAAM,MAAM,GAAG,CAAA,EAAG,MAAM,CAAG,EAAA,IAAI,EAAE,CAAC;AAClC,QAAA,OAAO,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAA,EAAG,IAAI,CAAC,UAAU,CAAA,oBAAA,EAAuB,MAAM,CAAA,CAAE,CAAC,CAAC;KACtF;AAED,IAAA,mBAAmB,CAAC,MAAiC,EAAA;AACnD,QAAA,OAAO,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAG,EAAA,IAAI,CAAC,UAAU,mCAAmC,aAAa,CAAC,MAAM,CAAC,CAAA,CAAE,CAAC,CAAC;KACjH;AAED,IAAA,yBAAyB,CAAC,MAAiC,EAAA;AACzD,QAAA,OAAO,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAG,EAAA,IAAI,CAAC,UAAU,2BAA2B,aAAa,CAAC,MAAM,CAAC,CAAA,CAAE,CAAC,CAAC;KACzG;AAED,IAAA,kBAAkB,CAAC,KAAa,EAAA;QAC9B,OAAO,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAG,EAAA,IAAI,CAAC,UAAU,CAAG,EAAA,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAA,CAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;KACxG;AAED,IAAA,WAAW,CAAC,QAAgB,EAAA;AAC1B,QAAA,OAAO,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAA,EAAG,IAAI,CAAC,UAAU,CAAA,QAAA,EAAW,QAAQ,CAAA,CAAE,CAAC,CAAC;KAC5E;;AAGD,IAAA,WAAW,CAAC,cAAsB,EAAA;QAChC,OAAO,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAA,EAAG,IAAI,CAAC,UAAU,CAAA,EAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,aAAa,CAAU,OAAA,EAAA,cAAc,CAAE,CAAA,CAAC,CAAC;KACxH;AAED,IAAA,UAAU,CAAC,UAAsC,EAAA;QAC/C,OAAO,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAA,EAAG,IAAI,CAAC,UAAU,CAAA,EAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,aAAa,CAAE,CAAA,EAAE,UAAU,CAAC,CAAC;KAC7G;+GA7JU,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,UAAA,EAAA,EAAA,EAAA,KAAA,EAMnB,UAAU,EAAA,EAAA,EAAA,KAAA,EACV,WAAW,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAPV,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,cAFjB,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAH9B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAOI,MAAM;2BAAC,UAAU,CAAA;;0BACjB,MAAM;2BAAC,WAAW,CAAA;;;MC7BV,iBAAiB,CAAA;IAI5B,WAAoB,CAAA,UAAsB,EAA+B,UAAkB,EAAA;QAAvE,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QAA+B,IAAU,CAAA,UAAA,GAAV,UAAU,CAAQ;QAHpF,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;QACpB,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;KAEsE;IAE/F,YAAY,CAAC,SAAS,GAAG,EAAE,EAAE,UAAU,GAAG,GAAG,EAAE,SAAS,GAAG,KAAK,EAAA;AAC9D,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC;YAAE,OAAO;AAE/C,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACrB,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AAEzB,QAAA,MAAM,OAAO,GAAG,UAAU,CAAC,MAAK;AAC9B,YAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AACtB,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAC1B,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,8BAA8B,GAAG,SAAS,EAAE,SAAS,CAAC,CAAC;SAC/E,EAAE,SAAS,CAAC,CAAC;AAEd,QAAA,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAK;AAChC,YAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE;AAC1B,gBAAA,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC;aACxC;iBAAM;gBACL,aAAa,CAAC,QAAQ,CAAC,CAAC;gBACxB,YAAY,CAAC,OAAO,CAAC,CAAC;AACtB,gBAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;aAC3B;SACF,EAAE,UAAU,CAAC,CAAC;KAChB;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;KACvB;AA/BU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,yCAIwB,WAAW,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAJpD,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,cAFhB,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAH7B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAK8C,MAAM;2BAAC,WAAW,CAAA;;;MCNpD,oBAAoB,CAAA;AAG/B,IAAA,WAAA,CAA6B,aAA4B,EAAA;QAA5B,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;AAFjD,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,GAAG,EAA4B,CAAC;KAEU;IAE7D,MAAM,CAAC,IAAS,EAAE,QAAqB,EAAA;QACrC,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,CAAC,GAAG,EAAE;AACR,YAAA,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;YACzB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;SAC1B;QACD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;KACvC;AAED,IAAA,MAAM,CAAC,IAAY,EAAE,YAAA,GAA4B,IAAI,EAAA;QACnD,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,CAAC,GAAG,EAAE;AACR,YAAA,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;YACzB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;SAC1B;AACD,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;AAC3D,QAAA,OAAO,QAAQ,CAAC;KACjB;AAED,IAAA,MAAM,CAAC,IAAY,EAAA;QACjB,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,CAAC,GAAG,EAAE;AACR,YAAA,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;YACzB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;SAC1B;AACD,QAAA,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;KAChC;+GA/BU,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,cAFnB,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAHhC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MCQY,aAAa,CAAA;AAOxB,IAAA,WAAA,CAAoB,WAAwB,EAAA;QAAxB,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;AALtB,QAAA,IAAA,CAAA,KAAK,GAAG;YAC5B,cAAc,EAAE,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC;YACzD,qBAAqB,EAAE,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,mBAAmB,CAAC;SACtE,CAAC;KAE8C;+GAPrC,aAAa,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAb,aAAa,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,aAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,YAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECZ1B,sNAEA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDKY,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAKX,aAAa,EAAA,UAAA,EAAA,CAAA;kBARzB,SAAS;+BACE,aAAa,EAAA,UAAA,EACX,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,CAAC,EAAA,OAAA,EACd,CAAC,sBAAsB,CAAC,EAAA,QAAA,EAAA,sNAAA,EAAA,CAAA;6EAMX,KAAK,EAAA,CAAA;sBAA1B,WAAW;uBAAC,OAAO,CAAA;;;AEdtB;;ACAA,MAAM,+BAA+B,GAAG,CAAU,GAAQ,EAAE,GAAW,KAAS;AAC9E,IAAA,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAE,IAAY,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AAC9E;;ACFA,MAAM,8BAA8B,GAAG,CAAU,GAAQ,KAAS;IAChE,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAClC;;ICFY,QA4BX;AA5BD,CAAA,UAAY,OAAO,EAAA;AACjB,IAAA,OAAA,CAAA,IAAA,CAAA,GAAA,MAAW,CAAA;AACX,IAAA,OAAA,CAAA,IAAA,CAAA,GAAA,SAAc,CAAA;AACd,IAAA,OAAA,CAAA,IAAA,CAAA,GAAA,YAAY,CAAA;AACZ,IAAA,OAAA,CAAA,IAAA,CAAA,GAAA,UAAe,CAAA;AACf,IAAA,OAAA,CAAA,IAAA,CAAA,GAAA,OAAY,CAAA;AACZ,IAAA,OAAA,CAAA,IAAA,CAAA,GAAA,YAAY,CAAA;AACZ,IAAA,OAAA,CAAA,IAAA,CAAA,GAAA,kBAAuB,CAAA;AACvB,IAAA,OAAA,CAAA,IAAA,CAAA,GAAA,qBAAqB,CAAA;AACrB,IAAA,OAAA,CAAA,IAAA,CAAA,GAAA,YAAY,CAAA;AACZ,IAAA,OAAA,CAAA,IAAA,CAAA,GAAA,eAAe,CAAA;AACf,IAAA,OAAA,CAAA,IAAA,CAAA,GAAA,aAAkB,CAAA;AAClB,IAAA,OAAA,CAAA,IAAA,CAAA,GAAA,oBAAyB,CAAA;AACzB,IAAA,OAAA,CAAA,IAAA,CAAA,GAAA,cAAmB,CAAA;AACnB,IAAA,OAAA,CAAA,IAAA,CAAA,GAAA,WAAW,CAAA;AACX,IAAA,OAAA,CAAA,IAAA,CAAA,GAAA,cAAc,CAAA;AACd,IAAA,OAAA,CAAA,IAAA,CAAA,GAAA,aAAa,CAAA;AACb,IAAA,OAAA,CAAA,IAAA,CAAA,GAAA,YAAiB,CAAA;AACjB,IAAA,OAAA,CAAA,IAAA,CAAA,GAAA,YAAY,CAAA;AACZ,IAAA,OAAA,CAAA,IAAA,CAAA,GAAA,gBAAqB,CAAA;AACrB,IAAA,OAAA,CAAA,IAAA,CAAA,GAAA,qBAA0B,CAAA;AAC1B,IAAA,OAAA,CAAA,IAAA,CAAA,GAAA,mBAAwB,CAAA;AACxB,IAAA,OAAA,CAAA,IAAA,CAAA,GAAA,eAAe,CAAA;AACf,IAAA,OAAA,CAAA,IAAA,CAAA,GAAA,cAAc,CAAA;AACd,IAAA,OAAA,CAAA,IAAA,CAAA,GAAA,gBAAqB,CAAA;AACrB,IAAA,OAAA,CAAA,IAAA,CAAA,GAAA,gBAAgB,CAAA;AAChB,IAAA,OAAA,CAAA,IAAA,CAAA,GAAA,SAAc,CAAA;AACd,IAAA,OAAA,CAAA,IAAA,CAAA,GAAA,WAAgB,CAAA;AAClB,CAAC,EA5BW,OAAO,KAAP,OAAO,GA4BlB,EAAA,CAAA,CAAA;;IC5BW,mBAGX;AAHD,CAAA,UAAY,kBAAkB,EAAA;AAC5B,IAAA,kBAAA,CAAA,aAAA,CAAA,GAAA,aAA2B,CAAA;AAC3B,IAAA,kBAAA,CAAA,aAAA,CAAA,GAAA,aAA2B,CAAA;AAC7B,CAAC,EAHW,kBAAkB,KAAlB,kBAAkB,GAG7B,EAAA,CAAA,CAAA,CAAA;IAEW,sBAGX;AAHD,CAAA,UAAY,qBAAqB,EAAA;AAC/B,IAAA,qBAAA,CAAA,QAAA,CAAA,GAAA,SAAkB,CAAA;AAClB,IAAA,qBAAA,CAAA,SAAA,CAAA,GAAA,UAAoB,CAAA;AACtB,CAAC,EAHW,qBAAqB,KAArB,qBAAqB,GAGhC,EAAA,CAAA,CAAA;;ACRD;;AAEG;AAEH;;ACJA;;AAEG;;;;"}
|
|
@@ -5,8 +5,8 @@ export declare class NguCarouselService {
|
|
|
5
5
|
get defaultCarouselConfig(): any;
|
|
6
6
|
customCarouselConfig(config: Partial<NguCarouselConfig>): any;
|
|
7
7
|
moveTo(carousel: NguCarousel<any, any>, index: number): void;
|
|
8
|
-
scrollLeft(carousel: NguCarousel<any, any
|
|
9
|
-
scrollRight(carousel: NguCarousel<any, any
|
|
8
|
+
scrollLeft(carousel: NguCarousel<any, any>, loop?: boolean): void;
|
|
9
|
+
scrollRight(carousel: NguCarousel<any, any>, loop?: boolean): void;
|
|
10
10
|
needShowControls(config: NguCarouselConfig, width: number, itemsLength?: number): boolean;
|
|
11
11
|
static ɵfac: i0.ɵɵFactoryDeclaration<NguCarouselService, never>;
|
|
12
12
|
static ɵprov: i0.ɵɵInjectableDeclaration<NguCarouselService>;
|