diff --git a/_locales/am/messages.json b/_locales/am/messages.json
index 12ca161..728b40d 100644
--- a/_locales/am/messages.json
+++ b/_locales/am/messages.json
@@ -2,6 +2,12 @@
"accessIsDenied": {
"message": "Access is denied"
},
+ "appearance": {
+ "message": "Appearance"
+ },
+ "backgroundColor": {
+ "message": "Background color"
+ },
"cancel": {
"message": "Cancel"
},
@@ -20,14 +26,14 @@
"hideInFullscreen": {
"message": "Hide in fullscreen"
},
- "next": {
- "message": "Next"
+ "nextFrame": {
+ "message": "Next frame"
},
- "other": {
- "message": "Other"
+ "opacity": {
+ "message": "Opacity"
},
- "prev": {
- "message": "Prev"
+ "previousFrame": {
+ "message": "Previous frame"
},
"reset": {
"message": "Reset"
diff --git a/_locales/ar/messages.json b/_locales/ar/messages.json
index 1ee8d40..3bfb587 100644
--- a/_locales/ar/messages.json
+++ b/_locales/ar/messages.json
@@ -2,6 +2,12 @@
"accessIsDenied": {
"message": "يمنع الوصول"
},
+ "appearance": {
+ "message": "Appearance"
+ },
+ "backgroundColor": {
+ "message": "Background color"
+ },
"cancel": {
"message": "إلغاء"
},
@@ -20,14 +26,14 @@
"hideInFullscreen": {
"message": "إخفاء في وضع ملء الشاشة"
},
- "next": {
- "message": "التالي"
+ "nextFrame": {
+ "message": "Next frame"
},
- "other": {
- "message": "أخرى"
+ "opacity": {
+ "message": "Opacity"
},
- "prev": {
- "message": "السابق"
+ "previousFrame": {
+ "message": "Previous frame"
},
"reset": {
"message": "إعادة تعيين"
@@ -41,4 +47,4 @@
"time": {
"message": "الوقت"
}
-}
+}
\ No newline at end of file
diff --git a/_locales/bg/messages.json b/_locales/bg/messages.json
index 12ca161..728b40d 100644
--- a/_locales/bg/messages.json
+++ b/_locales/bg/messages.json
@@ -2,6 +2,12 @@
"accessIsDenied": {
"message": "Access is denied"
},
+ "appearance": {
+ "message": "Appearance"
+ },
+ "backgroundColor": {
+ "message": "Background color"
+ },
"cancel": {
"message": "Cancel"
},
@@ -20,14 +26,14 @@
"hideInFullscreen": {
"message": "Hide in fullscreen"
},
- "next": {
- "message": "Next"
+ "nextFrame": {
+ "message": "Next frame"
},
- "other": {
- "message": "Other"
+ "opacity": {
+ "message": "Opacity"
},
- "prev": {
- "message": "Prev"
+ "previousFrame": {
+ "message": "Previous frame"
},
"reset": {
"message": "Reset"
diff --git a/_locales/bn/messages.json b/_locales/bn/messages.json
index 12ca161..728b40d 100644
--- a/_locales/bn/messages.json
+++ b/_locales/bn/messages.json
@@ -2,6 +2,12 @@
"accessIsDenied": {
"message": "Access is denied"
},
+ "appearance": {
+ "message": "Appearance"
+ },
+ "backgroundColor": {
+ "message": "Background color"
+ },
"cancel": {
"message": "Cancel"
},
@@ -20,14 +26,14 @@
"hideInFullscreen": {
"message": "Hide in fullscreen"
},
- "next": {
- "message": "Next"
+ "nextFrame": {
+ "message": "Next frame"
},
- "other": {
- "message": "Other"
+ "opacity": {
+ "message": "Opacity"
},
- "prev": {
- "message": "Prev"
+ "previousFrame": {
+ "message": "Previous frame"
},
"reset": {
"message": "Reset"
diff --git a/_locales/ca/messages.json b/_locales/ca/messages.json
index 12ca161..728b40d 100644
--- a/_locales/ca/messages.json
+++ b/_locales/ca/messages.json
@@ -2,6 +2,12 @@
"accessIsDenied": {
"message": "Access is denied"
},
+ "appearance": {
+ "message": "Appearance"
+ },
+ "backgroundColor": {
+ "message": "Background color"
+ },
"cancel": {
"message": "Cancel"
},
@@ -20,14 +26,14 @@
"hideInFullscreen": {
"message": "Hide in fullscreen"
},
- "next": {
- "message": "Next"
+ "nextFrame": {
+ "message": "Next frame"
},
- "other": {
- "message": "Other"
+ "opacity": {
+ "message": "Opacity"
},
- "prev": {
- "message": "Prev"
+ "previousFrame": {
+ "message": "Previous frame"
},
"reset": {
"message": "Reset"
diff --git a/_locales/cs/messages.json b/_locales/cs/messages.json
index 12ca161..728b40d 100644
--- a/_locales/cs/messages.json
+++ b/_locales/cs/messages.json
@@ -2,6 +2,12 @@
"accessIsDenied": {
"message": "Access is denied"
},
+ "appearance": {
+ "message": "Appearance"
+ },
+ "backgroundColor": {
+ "message": "Background color"
+ },
"cancel": {
"message": "Cancel"
},
@@ -20,14 +26,14 @@
"hideInFullscreen": {
"message": "Hide in fullscreen"
},
- "next": {
- "message": "Next"
+ "nextFrame": {
+ "message": "Next frame"
},
- "other": {
- "message": "Other"
+ "opacity": {
+ "message": "Opacity"
},
- "prev": {
- "message": "Prev"
+ "previousFrame": {
+ "message": "Previous frame"
},
"reset": {
"message": "Reset"
diff --git a/_locales/da/messages.json b/_locales/da/messages.json
index 12ca161..728b40d 100644
--- a/_locales/da/messages.json
+++ b/_locales/da/messages.json
@@ -2,6 +2,12 @@
"accessIsDenied": {
"message": "Access is denied"
},
+ "appearance": {
+ "message": "Appearance"
+ },
+ "backgroundColor": {
+ "message": "Background color"
+ },
"cancel": {
"message": "Cancel"
},
@@ -20,14 +26,14 @@
"hideInFullscreen": {
"message": "Hide in fullscreen"
},
- "next": {
- "message": "Next"
+ "nextFrame": {
+ "message": "Next frame"
},
- "other": {
- "message": "Other"
+ "opacity": {
+ "message": "Opacity"
},
- "prev": {
- "message": "Prev"
+ "previousFrame": {
+ "message": "Previous frame"
},
"reset": {
"message": "Reset"
diff --git a/_locales/de/messages.json b/_locales/de/messages.json
index b66e7e5..3f15372 100644
--- a/_locales/de/messages.json
+++ b/_locales/de/messages.json
@@ -2,6 +2,12 @@
"accessIsDenied": {
"message": "Access is denied"
},
+ "appearance": {
+ "message": "Appearance"
+ },
+ "backgroundColor": {
+ "message": "Background color"
+ },
"cancel": {
"message": "Cancel"
},
@@ -20,14 +26,14 @@
"hideInFullscreen": {
"message": "Hide in fullscreen"
},
- "next": {
- "message": "Nächster"
+ "nextFrame": {
+ "message": "Next frame"
},
- "other": {
- "message": "Other"
+ "opacity": {
+ "message": "Opacity"
},
- "prev": {
- "message": "Vorheriger"
+ "previousFrame": {
+ "message": "Previous frame"
},
"reset": {
"message": "Reset"
diff --git a/_locales/el/messages.json b/_locales/el/messages.json
index 12ca161..728b40d 100644
--- a/_locales/el/messages.json
+++ b/_locales/el/messages.json
@@ -2,6 +2,12 @@
"accessIsDenied": {
"message": "Access is denied"
},
+ "appearance": {
+ "message": "Appearance"
+ },
+ "backgroundColor": {
+ "message": "Background color"
+ },
"cancel": {
"message": "Cancel"
},
@@ -20,14 +26,14 @@
"hideInFullscreen": {
"message": "Hide in fullscreen"
},
- "next": {
- "message": "Next"
+ "nextFrame": {
+ "message": "Next frame"
},
- "other": {
- "message": "Other"
+ "opacity": {
+ "message": "Opacity"
},
- "prev": {
- "message": "Prev"
+ "previousFrame": {
+ "message": "Previous frame"
},
"reset": {
"message": "Reset"
diff --git a/_locales/en/messages.json b/_locales/en/messages.json
index 12ca161..728b40d 100644
--- a/_locales/en/messages.json
+++ b/_locales/en/messages.json
@@ -2,6 +2,12 @@
"accessIsDenied": {
"message": "Access is denied"
},
+ "appearance": {
+ "message": "Appearance"
+ },
+ "backgroundColor": {
+ "message": "Background color"
+ },
"cancel": {
"message": "Cancel"
},
@@ -20,14 +26,14 @@
"hideInFullscreen": {
"message": "Hide in fullscreen"
},
- "next": {
- "message": "Next"
+ "nextFrame": {
+ "message": "Next frame"
},
- "other": {
- "message": "Other"
+ "opacity": {
+ "message": "Opacity"
},
- "prev": {
- "message": "Prev"
+ "previousFrame": {
+ "message": "Previous frame"
},
"reset": {
"message": "Reset"
diff --git a/_locales/es/messages.json b/_locales/es/messages.json
index 12ca161..728b40d 100644
--- a/_locales/es/messages.json
+++ b/_locales/es/messages.json
@@ -2,6 +2,12 @@
"accessIsDenied": {
"message": "Access is denied"
},
+ "appearance": {
+ "message": "Appearance"
+ },
+ "backgroundColor": {
+ "message": "Background color"
+ },
"cancel": {
"message": "Cancel"
},
@@ -20,14 +26,14 @@
"hideInFullscreen": {
"message": "Hide in fullscreen"
},
- "next": {
- "message": "Next"
+ "nextFrame": {
+ "message": "Next frame"
},
- "other": {
- "message": "Other"
+ "opacity": {
+ "message": "Opacity"
},
- "prev": {
- "message": "Prev"
+ "previousFrame": {
+ "message": "Previous frame"
},
"reset": {
"message": "Reset"
diff --git a/_locales/et/messages.json b/_locales/et/messages.json
index 12ca161..728b40d 100644
--- a/_locales/et/messages.json
+++ b/_locales/et/messages.json
@@ -2,6 +2,12 @@
"accessIsDenied": {
"message": "Access is denied"
},
+ "appearance": {
+ "message": "Appearance"
+ },
+ "backgroundColor": {
+ "message": "Background color"
+ },
"cancel": {
"message": "Cancel"
},
@@ -20,14 +26,14 @@
"hideInFullscreen": {
"message": "Hide in fullscreen"
},
- "next": {
- "message": "Next"
+ "nextFrame": {
+ "message": "Next frame"
},
- "other": {
- "message": "Other"
+ "opacity": {
+ "message": "Opacity"
},
- "prev": {
- "message": "Prev"
+ "previousFrame": {
+ "message": "Previous frame"
},
"reset": {
"message": "Reset"
diff --git a/_locales/fa/messages.json b/_locales/fa/messages.json
index 12ca161..728b40d 100644
--- a/_locales/fa/messages.json
+++ b/_locales/fa/messages.json
@@ -2,6 +2,12 @@
"accessIsDenied": {
"message": "Access is denied"
},
+ "appearance": {
+ "message": "Appearance"
+ },
+ "backgroundColor": {
+ "message": "Background color"
+ },
"cancel": {
"message": "Cancel"
},
@@ -20,14 +26,14 @@
"hideInFullscreen": {
"message": "Hide in fullscreen"
},
- "next": {
- "message": "Next"
+ "nextFrame": {
+ "message": "Next frame"
},
- "other": {
- "message": "Other"
+ "opacity": {
+ "message": "Opacity"
},
- "prev": {
- "message": "Prev"
+ "previousFrame": {
+ "message": "Previous frame"
},
"reset": {
"message": "Reset"
diff --git a/_locales/fi/messages.json b/_locales/fi/messages.json
index 12ca161..728b40d 100644
--- a/_locales/fi/messages.json
+++ b/_locales/fi/messages.json
@@ -2,6 +2,12 @@
"accessIsDenied": {
"message": "Access is denied"
},
+ "appearance": {
+ "message": "Appearance"
+ },
+ "backgroundColor": {
+ "message": "Background color"
+ },
"cancel": {
"message": "Cancel"
},
@@ -20,14 +26,14 @@
"hideInFullscreen": {
"message": "Hide in fullscreen"
},
- "next": {
- "message": "Next"
+ "nextFrame": {
+ "message": "Next frame"
},
- "other": {
- "message": "Other"
+ "opacity": {
+ "message": "Opacity"
},
- "prev": {
- "message": "Prev"
+ "previousFrame": {
+ "message": "Previous frame"
},
"reset": {
"message": "Reset"
diff --git a/_locales/fil/messages.json b/_locales/fil/messages.json
index 12ca161..728b40d 100644
--- a/_locales/fil/messages.json
+++ b/_locales/fil/messages.json
@@ -2,6 +2,12 @@
"accessIsDenied": {
"message": "Access is denied"
},
+ "appearance": {
+ "message": "Appearance"
+ },
+ "backgroundColor": {
+ "message": "Background color"
+ },
"cancel": {
"message": "Cancel"
},
@@ -20,14 +26,14 @@
"hideInFullscreen": {
"message": "Hide in fullscreen"
},
- "next": {
- "message": "Next"
+ "nextFrame": {
+ "message": "Next frame"
},
- "other": {
- "message": "Other"
+ "opacity": {
+ "message": "Opacity"
},
- "prev": {
- "message": "Prev"
+ "previousFrame": {
+ "message": "Previous frame"
},
"reset": {
"message": "Reset"
diff --git a/_locales/fr/messages.json b/_locales/fr/messages.json
index 12ca161..728b40d 100644
--- a/_locales/fr/messages.json
+++ b/_locales/fr/messages.json
@@ -2,6 +2,12 @@
"accessIsDenied": {
"message": "Access is denied"
},
+ "appearance": {
+ "message": "Appearance"
+ },
+ "backgroundColor": {
+ "message": "Background color"
+ },
"cancel": {
"message": "Cancel"
},
@@ -20,14 +26,14 @@
"hideInFullscreen": {
"message": "Hide in fullscreen"
},
- "next": {
- "message": "Next"
+ "nextFrame": {
+ "message": "Next frame"
},
- "other": {
- "message": "Other"
+ "opacity": {
+ "message": "Opacity"
},
- "prev": {
- "message": "Prev"
+ "previousFrame": {
+ "message": "Previous frame"
},
"reset": {
"message": "Reset"
diff --git a/_locales/gu/messages.json b/_locales/gu/messages.json
index 12ca161..728b40d 100644
--- a/_locales/gu/messages.json
+++ b/_locales/gu/messages.json
@@ -2,6 +2,12 @@
"accessIsDenied": {
"message": "Access is denied"
},
+ "appearance": {
+ "message": "Appearance"
+ },
+ "backgroundColor": {
+ "message": "Background color"
+ },
"cancel": {
"message": "Cancel"
},
@@ -20,14 +26,14 @@
"hideInFullscreen": {
"message": "Hide in fullscreen"
},
- "next": {
- "message": "Next"
+ "nextFrame": {
+ "message": "Next frame"
},
- "other": {
- "message": "Other"
+ "opacity": {
+ "message": "Opacity"
},
- "prev": {
- "message": "Prev"
+ "previousFrame": {
+ "message": "Previous frame"
},
"reset": {
"message": "Reset"
diff --git a/_locales/he/messages.json b/_locales/he/messages.json
index eb7746e..833d1d0 100644
--- a/_locales/he/messages.json
+++ b/_locales/he/messages.json
@@ -2,6 +2,12 @@
"accessIsDenied": {
"message": "הגישה נדחתה"
},
+ "appearance": {
+ "message": "Appearance"
+ },
+ "backgroundColor": {
+ "message": "Background color"
+ },
"cancel": {
"message": "ביטול"
},
@@ -20,14 +26,14 @@
"hideInFullscreen": {
"message": "הסתרה במסך מלא"
},
- "next": {
- "message": "הבא"
+ "nextFrame": {
+ "message": "Next frame"
},
- "other": {
- "message": "אחר"
+ "opacity": {
+ "message": "Opacity"
},
- "prev": {
- "message": "הקודם"
+ "previousFrame": {
+ "message": "Previous frame"
},
"reset": {
"message": "איפוס"
@@ -41,4 +47,4 @@
"time": {
"message": "זמן"
}
-}
+}
\ No newline at end of file
diff --git a/_locales/hi/messages.json b/_locales/hi/messages.json
index 12ca161..728b40d 100644
--- a/_locales/hi/messages.json
+++ b/_locales/hi/messages.json
@@ -2,6 +2,12 @@
"accessIsDenied": {
"message": "Access is denied"
},
+ "appearance": {
+ "message": "Appearance"
+ },
+ "backgroundColor": {
+ "message": "Background color"
+ },
"cancel": {
"message": "Cancel"
},
@@ -20,14 +26,14 @@
"hideInFullscreen": {
"message": "Hide in fullscreen"
},
- "next": {
- "message": "Next"
+ "nextFrame": {
+ "message": "Next frame"
},
- "other": {
- "message": "Other"
+ "opacity": {
+ "message": "Opacity"
},
- "prev": {
- "message": "Prev"
+ "previousFrame": {
+ "message": "Previous frame"
},
"reset": {
"message": "Reset"
diff --git a/_locales/hr/messages.json b/_locales/hr/messages.json
index 12ca161..728b40d 100644
--- a/_locales/hr/messages.json
+++ b/_locales/hr/messages.json
@@ -2,6 +2,12 @@
"accessIsDenied": {
"message": "Access is denied"
},
+ "appearance": {
+ "message": "Appearance"
+ },
+ "backgroundColor": {
+ "message": "Background color"
+ },
"cancel": {
"message": "Cancel"
},
@@ -20,14 +26,14 @@
"hideInFullscreen": {
"message": "Hide in fullscreen"
},
- "next": {
- "message": "Next"
+ "nextFrame": {
+ "message": "Next frame"
},
- "other": {
- "message": "Other"
+ "opacity": {
+ "message": "Opacity"
},
- "prev": {
- "message": "Prev"
+ "previousFrame": {
+ "message": "Previous frame"
},
"reset": {
"message": "Reset"
diff --git a/_locales/hu/messages.json b/_locales/hu/messages.json
index 12ca161..728b40d 100644
--- a/_locales/hu/messages.json
+++ b/_locales/hu/messages.json
@@ -2,6 +2,12 @@
"accessIsDenied": {
"message": "Access is denied"
},
+ "appearance": {
+ "message": "Appearance"
+ },
+ "backgroundColor": {
+ "message": "Background color"
+ },
"cancel": {
"message": "Cancel"
},
@@ -20,14 +26,14 @@
"hideInFullscreen": {
"message": "Hide in fullscreen"
},
- "next": {
- "message": "Next"
+ "nextFrame": {
+ "message": "Next frame"
},
- "other": {
- "message": "Other"
+ "opacity": {
+ "message": "Opacity"
},
- "prev": {
- "message": "Prev"
+ "previousFrame": {
+ "message": "Previous frame"
},
"reset": {
"message": "Reset"
diff --git a/_locales/id/messages.json b/_locales/id/messages.json
index 12ca161..728b40d 100644
--- a/_locales/id/messages.json
+++ b/_locales/id/messages.json
@@ -2,6 +2,12 @@
"accessIsDenied": {
"message": "Access is denied"
},
+ "appearance": {
+ "message": "Appearance"
+ },
+ "backgroundColor": {
+ "message": "Background color"
+ },
"cancel": {
"message": "Cancel"
},
@@ -20,14 +26,14 @@
"hideInFullscreen": {
"message": "Hide in fullscreen"
},
- "next": {
- "message": "Next"
+ "nextFrame": {
+ "message": "Next frame"
},
- "other": {
- "message": "Other"
+ "opacity": {
+ "message": "Opacity"
},
- "prev": {
- "message": "Prev"
+ "previousFrame": {
+ "message": "Previous frame"
},
"reset": {
"message": "Reset"
diff --git a/_locales/it/messages.json b/_locales/it/messages.json
index 12ca161..728b40d 100644
--- a/_locales/it/messages.json
+++ b/_locales/it/messages.json
@@ -2,6 +2,12 @@
"accessIsDenied": {
"message": "Access is denied"
},
+ "appearance": {
+ "message": "Appearance"
+ },
+ "backgroundColor": {
+ "message": "Background color"
+ },
"cancel": {
"message": "Cancel"
},
@@ -20,14 +26,14 @@
"hideInFullscreen": {
"message": "Hide in fullscreen"
},
- "next": {
- "message": "Next"
+ "nextFrame": {
+ "message": "Next frame"
},
- "other": {
- "message": "Other"
+ "opacity": {
+ "message": "Opacity"
},
- "prev": {
- "message": "Prev"
+ "previousFrame": {
+ "message": "Previous frame"
},
"reset": {
"message": "Reset"
diff --git a/_locales/ja/messages.json b/_locales/ja/messages.json
index 12ca161..728b40d 100644
--- a/_locales/ja/messages.json
+++ b/_locales/ja/messages.json
@@ -2,6 +2,12 @@
"accessIsDenied": {
"message": "Access is denied"
},
+ "appearance": {
+ "message": "Appearance"
+ },
+ "backgroundColor": {
+ "message": "Background color"
+ },
"cancel": {
"message": "Cancel"
},
@@ -20,14 +26,14 @@
"hideInFullscreen": {
"message": "Hide in fullscreen"
},
- "next": {
- "message": "Next"
+ "nextFrame": {
+ "message": "Next frame"
},
- "other": {
- "message": "Other"
+ "opacity": {
+ "message": "Opacity"
},
- "prev": {
- "message": "Prev"
+ "previousFrame": {
+ "message": "Previous frame"
},
"reset": {
"message": "Reset"
diff --git a/_locales/kn/messages.json b/_locales/kn/messages.json
index 12ca161..728b40d 100644
--- a/_locales/kn/messages.json
+++ b/_locales/kn/messages.json
@@ -2,6 +2,12 @@
"accessIsDenied": {
"message": "Access is denied"
},
+ "appearance": {
+ "message": "Appearance"
+ },
+ "backgroundColor": {
+ "message": "Background color"
+ },
"cancel": {
"message": "Cancel"
},
@@ -20,14 +26,14 @@
"hideInFullscreen": {
"message": "Hide in fullscreen"
},
- "next": {
- "message": "Next"
+ "nextFrame": {
+ "message": "Next frame"
},
- "other": {
- "message": "Other"
+ "opacity": {
+ "message": "Opacity"
},
- "prev": {
- "message": "Prev"
+ "previousFrame": {
+ "message": "Previous frame"
},
"reset": {
"message": "Reset"
diff --git a/_locales/ko/messages.json b/_locales/ko/messages.json
index 12ca161..728b40d 100644
--- a/_locales/ko/messages.json
+++ b/_locales/ko/messages.json
@@ -2,6 +2,12 @@
"accessIsDenied": {
"message": "Access is denied"
},
+ "appearance": {
+ "message": "Appearance"
+ },
+ "backgroundColor": {
+ "message": "Background color"
+ },
"cancel": {
"message": "Cancel"
},
@@ -20,14 +26,14 @@
"hideInFullscreen": {
"message": "Hide in fullscreen"
},
- "next": {
- "message": "Next"
+ "nextFrame": {
+ "message": "Next frame"
},
- "other": {
- "message": "Other"
+ "opacity": {
+ "message": "Opacity"
},
- "prev": {
- "message": "Prev"
+ "previousFrame": {
+ "message": "Previous frame"
},
"reset": {
"message": "Reset"
diff --git a/_locales/lt/messages.json b/_locales/lt/messages.json
index 12ca161..728b40d 100644
--- a/_locales/lt/messages.json
+++ b/_locales/lt/messages.json
@@ -2,6 +2,12 @@
"accessIsDenied": {
"message": "Access is denied"
},
+ "appearance": {
+ "message": "Appearance"
+ },
+ "backgroundColor": {
+ "message": "Background color"
+ },
"cancel": {
"message": "Cancel"
},
@@ -20,14 +26,14 @@
"hideInFullscreen": {
"message": "Hide in fullscreen"
},
- "next": {
- "message": "Next"
+ "nextFrame": {
+ "message": "Next frame"
},
- "other": {
- "message": "Other"
+ "opacity": {
+ "message": "Opacity"
},
- "prev": {
- "message": "Prev"
+ "previousFrame": {
+ "message": "Previous frame"
},
"reset": {
"message": "Reset"
diff --git a/_locales/lv/messages.json b/_locales/lv/messages.json
index 12ca161..728b40d 100644
--- a/_locales/lv/messages.json
+++ b/_locales/lv/messages.json
@@ -2,6 +2,12 @@
"accessIsDenied": {
"message": "Access is denied"
},
+ "appearance": {
+ "message": "Appearance"
+ },
+ "backgroundColor": {
+ "message": "Background color"
+ },
"cancel": {
"message": "Cancel"
},
@@ -20,14 +26,14 @@
"hideInFullscreen": {
"message": "Hide in fullscreen"
},
- "next": {
- "message": "Next"
+ "nextFrame": {
+ "message": "Next frame"
},
- "other": {
- "message": "Other"
+ "opacity": {
+ "message": "Opacity"
},
- "prev": {
- "message": "Prev"
+ "previousFrame": {
+ "message": "Previous frame"
},
"reset": {
"message": "Reset"
diff --git a/_locales/ml/messages.json b/_locales/ml/messages.json
index 12ca161..728b40d 100644
--- a/_locales/ml/messages.json
+++ b/_locales/ml/messages.json
@@ -2,6 +2,12 @@
"accessIsDenied": {
"message": "Access is denied"
},
+ "appearance": {
+ "message": "Appearance"
+ },
+ "backgroundColor": {
+ "message": "Background color"
+ },
"cancel": {
"message": "Cancel"
},
@@ -20,14 +26,14 @@
"hideInFullscreen": {
"message": "Hide in fullscreen"
},
- "next": {
- "message": "Next"
+ "nextFrame": {
+ "message": "Next frame"
},
- "other": {
- "message": "Other"
+ "opacity": {
+ "message": "Opacity"
},
- "prev": {
- "message": "Prev"
+ "previousFrame": {
+ "message": "Previous frame"
},
"reset": {
"message": "Reset"
diff --git a/_locales/mr/messages.json b/_locales/mr/messages.json
index 12ca161..728b40d 100644
--- a/_locales/mr/messages.json
+++ b/_locales/mr/messages.json
@@ -2,6 +2,12 @@
"accessIsDenied": {
"message": "Access is denied"
},
+ "appearance": {
+ "message": "Appearance"
+ },
+ "backgroundColor": {
+ "message": "Background color"
+ },
"cancel": {
"message": "Cancel"
},
@@ -20,14 +26,14 @@
"hideInFullscreen": {
"message": "Hide in fullscreen"
},
- "next": {
- "message": "Next"
+ "nextFrame": {
+ "message": "Next frame"
},
- "other": {
- "message": "Other"
+ "opacity": {
+ "message": "Opacity"
},
- "prev": {
- "message": "Prev"
+ "previousFrame": {
+ "message": "Previous frame"
},
"reset": {
"message": "Reset"
diff --git a/_locales/ms/messages.json b/_locales/ms/messages.json
index 12ca161..728b40d 100644
--- a/_locales/ms/messages.json
+++ b/_locales/ms/messages.json
@@ -2,6 +2,12 @@
"accessIsDenied": {
"message": "Access is denied"
},
+ "appearance": {
+ "message": "Appearance"
+ },
+ "backgroundColor": {
+ "message": "Background color"
+ },
"cancel": {
"message": "Cancel"
},
@@ -20,14 +26,14 @@
"hideInFullscreen": {
"message": "Hide in fullscreen"
},
- "next": {
- "message": "Next"
+ "nextFrame": {
+ "message": "Next frame"
},
- "other": {
- "message": "Other"
+ "opacity": {
+ "message": "Opacity"
},
- "prev": {
- "message": "Prev"
+ "previousFrame": {
+ "message": "Previous frame"
},
"reset": {
"message": "Reset"
diff --git a/_locales/nl/messages.json b/_locales/nl/messages.json
index 12ca161..728b40d 100644
--- a/_locales/nl/messages.json
+++ b/_locales/nl/messages.json
@@ -2,6 +2,12 @@
"accessIsDenied": {
"message": "Access is denied"
},
+ "appearance": {
+ "message": "Appearance"
+ },
+ "backgroundColor": {
+ "message": "Background color"
+ },
"cancel": {
"message": "Cancel"
},
@@ -20,14 +26,14 @@
"hideInFullscreen": {
"message": "Hide in fullscreen"
},
- "next": {
- "message": "Next"
+ "nextFrame": {
+ "message": "Next frame"
},
- "other": {
- "message": "Other"
+ "opacity": {
+ "message": "Opacity"
},
- "prev": {
- "message": "Prev"
+ "previousFrame": {
+ "message": "Previous frame"
},
"reset": {
"message": "Reset"
diff --git a/_locales/no/messages.json b/_locales/no/messages.json
index 12ca161..728b40d 100644
--- a/_locales/no/messages.json
+++ b/_locales/no/messages.json
@@ -2,6 +2,12 @@
"accessIsDenied": {
"message": "Access is denied"
},
+ "appearance": {
+ "message": "Appearance"
+ },
+ "backgroundColor": {
+ "message": "Background color"
+ },
"cancel": {
"message": "Cancel"
},
@@ -20,14 +26,14 @@
"hideInFullscreen": {
"message": "Hide in fullscreen"
},
- "next": {
- "message": "Next"
+ "nextFrame": {
+ "message": "Next frame"
},
- "other": {
- "message": "Other"
+ "opacity": {
+ "message": "Opacity"
},
- "prev": {
- "message": "Prev"
+ "previousFrame": {
+ "message": "Previous frame"
},
"reset": {
"message": "Reset"
diff --git a/_locales/pl/messages.json b/_locales/pl/messages.json
index 12ca161..728b40d 100644
--- a/_locales/pl/messages.json
+++ b/_locales/pl/messages.json
@@ -2,6 +2,12 @@
"accessIsDenied": {
"message": "Access is denied"
},
+ "appearance": {
+ "message": "Appearance"
+ },
+ "backgroundColor": {
+ "message": "Background color"
+ },
"cancel": {
"message": "Cancel"
},
@@ -20,14 +26,14 @@
"hideInFullscreen": {
"message": "Hide in fullscreen"
},
- "next": {
- "message": "Next"
+ "nextFrame": {
+ "message": "Next frame"
},
- "other": {
- "message": "Other"
+ "opacity": {
+ "message": "Opacity"
},
- "prev": {
- "message": "Prev"
+ "previousFrame": {
+ "message": "Previous frame"
},
"reset": {
"message": "Reset"
diff --git a/_locales/pt_BR/messages.json b/_locales/pt_BR/messages.json
index 12ca161..728b40d 100644
--- a/_locales/pt_BR/messages.json
+++ b/_locales/pt_BR/messages.json
@@ -2,6 +2,12 @@
"accessIsDenied": {
"message": "Access is denied"
},
+ "appearance": {
+ "message": "Appearance"
+ },
+ "backgroundColor": {
+ "message": "Background color"
+ },
"cancel": {
"message": "Cancel"
},
@@ -20,14 +26,14 @@
"hideInFullscreen": {
"message": "Hide in fullscreen"
},
- "next": {
- "message": "Next"
+ "nextFrame": {
+ "message": "Next frame"
},
- "other": {
- "message": "Other"
+ "opacity": {
+ "message": "Opacity"
},
- "prev": {
- "message": "Prev"
+ "previousFrame": {
+ "message": "Previous frame"
},
"reset": {
"message": "Reset"
diff --git a/_locales/pt_PT/messages.json b/_locales/pt_PT/messages.json
index 12ca161..728b40d 100644
--- a/_locales/pt_PT/messages.json
+++ b/_locales/pt_PT/messages.json
@@ -2,6 +2,12 @@
"accessIsDenied": {
"message": "Access is denied"
},
+ "appearance": {
+ "message": "Appearance"
+ },
+ "backgroundColor": {
+ "message": "Background color"
+ },
"cancel": {
"message": "Cancel"
},
@@ -20,14 +26,14 @@
"hideInFullscreen": {
"message": "Hide in fullscreen"
},
- "next": {
- "message": "Next"
+ "nextFrame": {
+ "message": "Next frame"
},
- "other": {
- "message": "Other"
+ "opacity": {
+ "message": "Opacity"
},
- "prev": {
- "message": "Prev"
+ "previousFrame": {
+ "message": "Previous frame"
},
"reset": {
"message": "Reset"
diff --git a/_locales/ro/messages.json b/_locales/ro/messages.json
index 12ca161..728b40d 100644
--- a/_locales/ro/messages.json
+++ b/_locales/ro/messages.json
@@ -2,6 +2,12 @@
"accessIsDenied": {
"message": "Access is denied"
},
+ "appearance": {
+ "message": "Appearance"
+ },
+ "backgroundColor": {
+ "message": "Background color"
+ },
"cancel": {
"message": "Cancel"
},
@@ -20,14 +26,14 @@
"hideInFullscreen": {
"message": "Hide in fullscreen"
},
- "next": {
- "message": "Next"
+ "nextFrame": {
+ "message": "Next frame"
},
- "other": {
- "message": "Other"
+ "opacity": {
+ "message": "Opacity"
},
- "prev": {
- "message": "Prev"
+ "previousFrame": {
+ "message": "Previous frame"
},
"reset": {
"message": "Reset"
diff --git a/_locales/ru/messages.json b/_locales/ru/messages.json
index 31f02a6..d8cf6b4 100644
--- a/_locales/ru/messages.json
+++ b/_locales/ru/messages.json
@@ -2,6 +2,12 @@
"accessIsDenied": {
"message": "Access is denied"
},
+ "appearance": {
+ "message": "Appearance"
+ },
+ "backgroundColor": {
+ "message": "Background color"
+ },
"cancel": {
"message": "Cancel"
},
@@ -20,14 +26,14 @@
"hideInFullscreen": {
"message": "Hide in fullscreen"
},
- "next": {
- "message": "Следующий"
+ "nextFrame": {
+ "message": "Next frame"
},
- "other": {
- "message": "Other"
+ "opacity": {
+ "message": "Opacity"
},
- "prev": {
- "message": "Предыдущий"
+ "previousFrame": {
+ "message": "Previous frame"
},
"reset": {
"message": "Reset"
diff --git a/_locales/sk/messages.json b/_locales/sk/messages.json
index 12ca161..728b40d 100644
--- a/_locales/sk/messages.json
+++ b/_locales/sk/messages.json
@@ -2,6 +2,12 @@
"accessIsDenied": {
"message": "Access is denied"
},
+ "appearance": {
+ "message": "Appearance"
+ },
+ "backgroundColor": {
+ "message": "Background color"
+ },
"cancel": {
"message": "Cancel"
},
@@ -20,14 +26,14 @@
"hideInFullscreen": {
"message": "Hide in fullscreen"
},
- "next": {
- "message": "Next"
+ "nextFrame": {
+ "message": "Next frame"
},
- "other": {
- "message": "Other"
+ "opacity": {
+ "message": "Opacity"
},
- "prev": {
- "message": "Prev"
+ "previousFrame": {
+ "message": "Previous frame"
},
"reset": {
"message": "Reset"
diff --git a/_locales/sl/messages.json b/_locales/sl/messages.json
index 12ca161..728b40d 100644
--- a/_locales/sl/messages.json
+++ b/_locales/sl/messages.json
@@ -2,6 +2,12 @@
"accessIsDenied": {
"message": "Access is denied"
},
+ "appearance": {
+ "message": "Appearance"
+ },
+ "backgroundColor": {
+ "message": "Background color"
+ },
"cancel": {
"message": "Cancel"
},
@@ -20,14 +26,14 @@
"hideInFullscreen": {
"message": "Hide in fullscreen"
},
- "next": {
- "message": "Next"
+ "nextFrame": {
+ "message": "Next frame"
},
- "other": {
- "message": "Other"
+ "opacity": {
+ "message": "Opacity"
},
- "prev": {
- "message": "Prev"
+ "previousFrame": {
+ "message": "Previous frame"
},
"reset": {
"message": "Reset"
diff --git a/_locales/sr/messages.json b/_locales/sr/messages.json
index 12ca161..728b40d 100644
--- a/_locales/sr/messages.json
+++ b/_locales/sr/messages.json
@@ -2,6 +2,12 @@
"accessIsDenied": {
"message": "Access is denied"
},
+ "appearance": {
+ "message": "Appearance"
+ },
+ "backgroundColor": {
+ "message": "Background color"
+ },
"cancel": {
"message": "Cancel"
},
@@ -20,14 +26,14 @@
"hideInFullscreen": {
"message": "Hide in fullscreen"
},
- "next": {
- "message": "Next"
+ "nextFrame": {
+ "message": "Next frame"
},
- "other": {
- "message": "Other"
+ "opacity": {
+ "message": "Opacity"
},
- "prev": {
- "message": "Prev"
+ "previousFrame": {
+ "message": "Previous frame"
},
"reset": {
"message": "Reset"
diff --git a/_locales/sv/messages.json b/_locales/sv/messages.json
index 12ca161..728b40d 100644
--- a/_locales/sv/messages.json
+++ b/_locales/sv/messages.json
@@ -2,6 +2,12 @@
"accessIsDenied": {
"message": "Access is denied"
},
+ "appearance": {
+ "message": "Appearance"
+ },
+ "backgroundColor": {
+ "message": "Background color"
+ },
"cancel": {
"message": "Cancel"
},
@@ -20,14 +26,14 @@
"hideInFullscreen": {
"message": "Hide in fullscreen"
},
- "next": {
- "message": "Next"
+ "nextFrame": {
+ "message": "Next frame"
},
- "other": {
- "message": "Other"
+ "opacity": {
+ "message": "Opacity"
},
- "prev": {
- "message": "Prev"
+ "previousFrame": {
+ "message": "Previous frame"
},
"reset": {
"message": "Reset"
diff --git a/_locales/sw/messages.json b/_locales/sw/messages.json
index 12ca161..728b40d 100644
--- a/_locales/sw/messages.json
+++ b/_locales/sw/messages.json
@@ -2,6 +2,12 @@
"accessIsDenied": {
"message": "Access is denied"
},
+ "appearance": {
+ "message": "Appearance"
+ },
+ "backgroundColor": {
+ "message": "Background color"
+ },
"cancel": {
"message": "Cancel"
},
@@ -20,14 +26,14 @@
"hideInFullscreen": {
"message": "Hide in fullscreen"
},
- "next": {
- "message": "Next"
+ "nextFrame": {
+ "message": "Next frame"
},
- "other": {
- "message": "Other"
+ "opacity": {
+ "message": "Opacity"
},
- "prev": {
- "message": "Prev"
+ "previousFrame": {
+ "message": "Previous frame"
},
"reset": {
"message": "Reset"
diff --git a/_locales/ta/messages.json b/_locales/ta/messages.json
index 12ca161..728b40d 100644
--- a/_locales/ta/messages.json
+++ b/_locales/ta/messages.json
@@ -2,6 +2,12 @@
"accessIsDenied": {
"message": "Access is denied"
},
+ "appearance": {
+ "message": "Appearance"
+ },
+ "backgroundColor": {
+ "message": "Background color"
+ },
"cancel": {
"message": "Cancel"
},
@@ -20,14 +26,14 @@
"hideInFullscreen": {
"message": "Hide in fullscreen"
},
- "next": {
- "message": "Next"
+ "nextFrame": {
+ "message": "Next frame"
},
- "other": {
- "message": "Other"
+ "opacity": {
+ "message": "Opacity"
},
- "prev": {
- "message": "Prev"
+ "previousFrame": {
+ "message": "Previous frame"
},
"reset": {
"message": "Reset"
diff --git a/_locales/te/messages.json b/_locales/te/messages.json
index 12ca161..728b40d 100644
--- a/_locales/te/messages.json
+++ b/_locales/te/messages.json
@@ -2,6 +2,12 @@
"accessIsDenied": {
"message": "Access is denied"
},
+ "appearance": {
+ "message": "Appearance"
+ },
+ "backgroundColor": {
+ "message": "Background color"
+ },
"cancel": {
"message": "Cancel"
},
@@ -20,14 +26,14 @@
"hideInFullscreen": {
"message": "Hide in fullscreen"
},
- "next": {
- "message": "Next"
+ "nextFrame": {
+ "message": "Next frame"
},
- "other": {
- "message": "Other"
+ "opacity": {
+ "message": "Opacity"
},
- "prev": {
- "message": "Prev"
+ "previousFrame": {
+ "message": "Previous frame"
},
"reset": {
"message": "Reset"
diff --git a/_locales/th/messages.json b/_locales/th/messages.json
index 12ca161..728b40d 100644
--- a/_locales/th/messages.json
+++ b/_locales/th/messages.json
@@ -2,6 +2,12 @@
"accessIsDenied": {
"message": "Access is denied"
},
+ "appearance": {
+ "message": "Appearance"
+ },
+ "backgroundColor": {
+ "message": "Background color"
+ },
"cancel": {
"message": "Cancel"
},
@@ -20,14 +26,14 @@
"hideInFullscreen": {
"message": "Hide in fullscreen"
},
- "next": {
- "message": "Next"
+ "nextFrame": {
+ "message": "Next frame"
},
- "other": {
- "message": "Other"
+ "opacity": {
+ "message": "Opacity"
},
- "prev": {
- "message": "Prev"
+ "previousFrame": {
+ "message": "Previous frame"
},
"reset": {
"message": "Reset"
diff --git a/_locales/tr/messages.json b/_locales/tr/messages.json
index 12ca161..728b40d 100644
--- a/_locales/tr/messages.json
+++ b/_locales/tr/messages.json
@@ -2,6 +2,12 @@
"accessIsDenied": {
"message": "Access is denied"
},
+ "appearance": {
+ "message": "Appearance"
+ },
+ "backgroundColor": {
+ "message": "Background color"
+ },
"cancel": {
"message": "Cancel"
},
@@ -20,14 +26,14 @@
"hideInFullscreen": {
"message": "Hide in fullscreen"
},
- "next": {
- "message": "Next"
+ "nextFrame": {
+ "message": "Next frame"
},
- "other": {
- "message": "Other"
+ "opacity": {
+ "message": "Opacity"
},
- "prev": {
- "message": "Prev"
+ "previousFrame": {
+ "message": "Previous frame"
},
"reset": {
"message": "Reset"
diff --git a/_locales/uk/messages.json b/_locales/uk/messages.json
index 12ca161..728b40d 100644
--- a/_locales/uk/messages.json
+++ b/_locales/uk/messages.json
@@ -2,6 +2,12 @@
"accessIsDenied": {
"message": "Access is denied"
},
+ "appearance": {
+ "message": "Appearance"
+ },
+ "backgroundColor": {
+ "message": "Background color"
+ },
"cancel": {
"message": "Cancel"
},
@@ -20,14 +26,14 @@
"hideInFullscreen": {
"message": "Hide in fullscreen"
},
- "next": {
- "message": "Next"
+ "nextFrame": {
+ "message": "Next frame"
},
- "other": {
- "message": "Other"
+ "opacity": {
+ "message": "Opacity"
},
- "prev": {
- "message": "Prev"
+ "previousFrame": {
+ "message": "Previous frame"
},
"reset": {
"message": "Reset"
diff --git a/_locales/vi/messages.json b/_locales/vi/messages.json
index 12ca161..728b40d 100644
--- a/_locales/vi/messages.json
+++ b/_locales/vi/messages.json
@@ -2,6 +2,12 @@
"accessIsDenied": {
"message": "Access is denied"
},
+ "appearance": {
+ "message": "Appearance"
+ },
+ "backgroundColor": {
+ "message": "Background color"
+ },
"cancel": {
"message": "Cancel"
},
@@ -20,14 +26,14 @@
"hideInFullscreen": {
"message": "Hide in fullscreen"
},
- "next": {
- "message": "Next"
+ "nextFrame": {
+ "message": "Next frame"
},
- "other": {
- "message": "Other"
+ "opacity": {
+ "message": "Opacity"
},
- "prev": {
- "message": "Prev"
+ "previousFrame": {
+ "message": "Previous frame"
},
"reset": {
"message": "Reset"
diff --git a/_locales/zh_CN/messages.json b/_locales/zh_CN/messages.json
index 12ca161..728b40d 100644
--- a/_locales/zh_CN/messages.json
+++ b/_locales/zh_CN/messages.json
@@ -2,6 +2,12 @@
"accessIsDenied": {
"message": "Access is denied"
},
+ "appearance": {
+ "message": "Appearance"
+ },
+ "backgroundColor": {
+ "message": "Background color"
+ },
"cancel": {
"message": "Cancel"
},
@@ -20,14 +26,14 @@
"hideInFullscreen": {
"message": "Hide in fullscreen"
},
- "next": {
- "message": "Next"
+ "nextFrame": {
+ "message": "Next frame"
},
- "other": {
- "message": "Other"
+ "opacity": {
+ "message": "Opacity"
},
- "prev": {
- "message": "Prev"
+ "previousFrame": {
+ "message": "Previous frame"
},
"reset": {
"message": "Reset"
diff --git a/_locales/zh_TW/messages.json b/_locales/zh_TW/messages.json
index 12ca161..728b40d 100644
--- a/_locales/zh_TW/messages.json
+++ b/_locales/zh_TW/messages.json
@@ -2,6 +2,12 @@
"accessIsDenied": {
"message": "Access is denied"
},
+ "appearance": {
+ "message": "Appearance"
+ },
+ "backgroundColor": {
+ "message": "Background color"
+ },
"cancel": {
"message": "Cancel"
},
@@ -20,14 +26,14 @@
"hideInFullscreen": {
"message": "Hide in fullscreen"
},
- "next": {
- "message": "Next"
+ "nextFrame": {
+ "message": "Next frame"
},
- "other": {
- "message": "Other"
+ "opacity": {
+ "message": "Opacity"
},
- "prev": {
- "message": "Prev"
+ "previousFrame": {
+ "message": "Previous frame"
},
"reset": {
"message": "Reset"
diff --git a/content-script.js b/content-script.js
index a5ee411..0c55f64 100644
--- a/content-script.js
+++ b/content-script.js
@@ -664,6 +664,14 @@ window.addEventListener('DOMContentLoaded', function() {
hide_in_fullscreen = items.hide_in_fullscreen;
}
+ if (items.hasOwnProperty('opacity')) {
+ ui.info_panel.style.opacity = items.opacity;
+ }
+
+ if (items.hasOwnProperty('background_color')) {
+ ui.info_panel.style.backgroundColor = items.background_color;
+ }
+
setInterval(searchVideos, 2500);
setInterval(calcPositions, 1000);
setInterval(checkMouse, 100);
@@ -690,6 +698,10 @@ chrome.storage.onChanged.addListener(function(changes) {
moveUserInterface();
} else if (key === 'hide_in_fullscreen') {
hide_in_fullscreen = value;
+ } else if (key === 'opacity') {
+ ui.info_panel.style.opacity = value;
+ } else if (key === 'background_color') {
+ ui.info_panel.style.backgroundColor = value;
}
if (key === location.hostname) {
diff --git a/manifest.json b/manifest.json
index d3f58da..7fe5bfd 100644
--- a/manifest.json
+++ b/manifest.json
@@ -2,7 +2,7 @@
"manifest_version": 2,
"name": "Frame By Frame",
"description": "__MSG_description__",
- "version": "1.7.0",
+ "version": "2.0.0",
"default_locale": "en",
@@ -28,11 +28,9 @@
}],
"browser_action": {
- "default_popup": "popup/index.html"
+ "default_popup": "popup/popup.html"
},
- "options_page": "popup/index.html",
-
"offline_enabled": true,
"permissions": [
diff --git a/popup/index.html b/popup/index.html
deleted file mode 100644
index 0f20170..0000000
--- a/popup/index.html
+++ /dev/null
@@ -1,37 +0,0 @@
-
-
-
-
-
- Frame By Frame
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/popup/popup.css b/popup/popup.css
new file mode 100644
index 0000000..b6bdb22
--- /dev/null
+++ b/popup/popup.css
@@ -0,0 +1,133 @@
+/*--------------------------------------------------------------
+>>> POPUP:
+----------------------------------------------------------------
+# Body
+# Made with love
+--------------------------------------------------------------*/
+
+/*--------------------------------------------------------------
+# BODY
+--------------------------------------------------------------*/
+
+body {
+ color: #565676;
+ background: #0e0e1b;
+ --satus-primary: #3d3d8f;
+ --satus-hover: rgba(255,255,255,.03);
+ --satus-header-background: #1c1c36;
+ --satus-header-text: #9595b2;
+ --satus-layers-background: #0e0e1b;
+ --satus-layers-text: #565676;
+ --satus-section-card-background: #161627;
+ --satus-section-card-text: #9595b2;
+ --satus-switch-background: rgba(255, 255, 255, .12);
+ --satus-modal-background: #202031;
+ --satus-modal-text: #9595b2;
+}
+
+.satus-header {
+ font-weight: 600;
+ font-size: 15px;
+ justify-content: flex-start;
+}
+
+.satus-header .satus-button {
+ width: 40px;
+ min-width: 40px;
+ height: 40px;
+ padding: 8px;
+ color: inherit;
+ border-radius: 50%;
+ margin: 0 8px 0 -8px;
+}
+
+.satus-header .satus-button:hover {
+ cursor: pointer;
+ background: rgba(255, 255, 255, .04);
+}
+
+.satus-header .satus-button>svg {
+ stroke: currentcolor;
+ stroke-linecap: round;
+ stroke-linejoin: round;
+ fill: none;
+}
+
+.satus-switch--domain {
+ width: calc(100% - 16px);
+ height: 48px;
+ margin: 16px 8px 16px;
+ padding: 0 16px;
+ color: #494965;
+ border: 1px solid #22222f;
+ border-radius: 8px;
+ background-color: #14141f;
+}
+
+.satus-switch--domain:hover {
+ background-color: #181825;
+ color: #565676;
+ border-color: #272735;
+}
+
+.satus-span--error {
+ display: flex;
+ box-sizing: border-box;
+ width: calc(100% - 16px);
+ height: 48px;
+ margin: 16px 8px 16px;
+ padding: 0 16px;
+ color: rgba(255, 127, 127, .7);
+ border: 1px solid rgba(255, 0, 0, .15);
+ border-radius: 8px;
+ background: rgba(255, 0, 0, .1);
+ align-items: center;
+}
+
+.satus-section--label {
+ font-size: 14px;
+ font-weight: 600;
+}
+
+
+/*--------------------------------------------------------------
+# MADE WITH LOVE
+--------------------------------------------------------------*/
+
+.made-with-love {
+ font-size: 13px;
+ position: absolute;
+ bottom: 16px;
+ left: 50%;
+ width: 100%;
+ height: auto;
+ min-height: auto;
+ padding: 0;
+ cursor: pointer;
+ transform: translateX(-50%);
+ text-align: center;
+ justify-content: center;
+ text-decoration: none;
+ color: #9595b2;
+ font-weight: 600;
+}
+
+.satus-base[data-hide-made-with-love=true] .made-with-love {
+ display: none;
+}
+
+.made-with-love svg {
+ position: relative;
+ top: 4px;
+ width: 16px;
+ height: 16px;
+ fill: #d62121;
+}
+
+.satus.dark .made-with-love svg {
+ fill: #704343;
+}
+
+.made-with-love span {
+ margin: 0 0 0 4px;
+}
\ No newline at end of file
diff --git a/popup/popup.html b/popup/popup.html
new file mode 100644
index 0000000..5983d8c
--- /dev/null
+++ b/popup/popup.html
@@ -0,0 +1,22 @@
+
+
+
+
+
+ Frame By Frame
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/popup/popup.js b/popup/popup.js
new file mode 100644
index 0000000..595d66b
--- /dev/null
+++ b/popup/popup.js
@@ -0,0 +1,182 @@
+/*--------------------------------------------------------------
+>>> POPUP:
+----------------------------------------------------------------
+# Skeleton
+# Initialization
+--------------------------------------------------------------*/
+
+/*--------------------------------------------------------------
+# SKELETON
+--------------------------------------------------------------*/
+
+var skeleton = {
+ component: 'base',
+
+ header: {
+ component: 'header',
+
+ back: {
+ component: 'button',
+ attr: {
+ 'hidden': 'true'
+ },
+ on: {
+ click: 'layers.back'
+ },
+ pluviam: true,
+
+ svg: {
+ component: 'svg',
+ attr: {
+ 'viewBox': '0 0 24 24',
+ 'stroke-width': '1.5'
+ },
+
+ path: {
+ component: 'path',
+ attr: {
+ 'd': 'M14 18l-6-6 6-6'
+ }
+ }
+ }
+ },
+ title: {
+ component: 'span',
+ text: 'Frame By Frame'
+ }
+ },
+ layers: {
+ component: 'layers',
+ on: {
+ open: function () {
+ var skeleton = this.path[this.path.length - 1];
+
+ this.base.skeleton.header.back.rendered.hidden = this.path.length <= 1;
+ this.base.skeleton.header.title.rendered.innerText = satus.locale.get(skeleton.title) || 'Frame By Frame';
+ }
+ },
+
+ toolbar: {
+ component: 'switch',
+ class: 'satus-switch--domain'
+ },
+ section: {
+ component: 'section',
+ class: 'satus-section--card',
+
+ appearance: {
+ component: 'button',
+ text: 'appearance',
+ on: {
+ click: {
+ component: 'section',
+ class: 'satus-section--card',
+ title: 'appearance',
+
+ hide_in_fullscreen: {
+ component: 'switch',
+ text: 'hideInFullscreen'
+ },
+ background_color: {
+ component: 'color-picker',
+ text: 'backgroundColor',
+ value: '#000'
+ },
+ opacity: {
+ component: 'slider',
+ text: 'opacity',
+ value: .85,
+ step: .05,
+ storage: 'opacity'
+ }
+ }
+ }
+ },
+ shortcuts: {
+ component: 'button',
+ text: 'shortcuts',
+ on: {
+ click: {
+ component: 'section',
+ class: 'satus-section--card',
+ title: 'shortcuts',
+
+ next_shortcut: {
+ component: 'shortcut',
+ text: 'nextFrame',
+ value: {
+ keys: {
+ 37: {
+ key: 'ArrowRight'
+ }
+ }
+ }
+ },
+ prev_shortcut: {
+ component: 'shortcut',
+ text: 'previousFrame',
+ value: {
+ keys: {
+ 39: {
+ key: 'ArrowLeft'
+ }
+ }
+ }
+ },
+ hide_shortcut: {
+ component: 'shortcut',
+ text: 'hide',
+ value: {
+ keys: {
+ 72: {
+ key: 'h'
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+
+ made_with_love: {
+ component: 'a',
+ class: 'made-with-love',
+ attr: {
+ target: '_blank',
+ href: 'https://chrome.google.com/webstore/detail/improve-youtube-open-sour/bnomihfieiccainjcjblhegjgglakjdd'
+ },
+ properties: {
+ innerHTML: 'Made with by ImprovedTube'
+ }
+ }
+ }
+};
+
+
+/*--------------------------------------------------------------
+# INITIALIZATION
+--------------------------------------------------------------*/
+
+satus.storage.import(function (items) {
+ satus.fetch('../_locales/' + (items.language || 'en') + '/messages.json', function (object) {
+ for (var key in object) {
+ satus.locale.strings[key] = object[key].message;
+ }
+
+ chrome.tabs.query({active: true, currentWindow: true}, function(tabs) {
+ chrome.tabs.sendMessage(tabs[0].id, {}, function(response) {
+ skeleton.layers.toolbar.text = response || 'accessIsDenied';
+
+ if (!response) {
+ skeleton.layers.toolbar.component = 'span';
+ skeleton.layers.toolbar.class = 'satus-span--error';
+ } else {
+ skeleton.layers.toolbar.storage = 'domains/' + response;
+ }
+
+ satus.render(skeleton);
+ });
+ });
+ });
+});
\ No newline at end of file
diff --git a/popup/satus.css b/popup/satus.css
new file mode 100644
index 0000000..65df412
--- /dev/null
+++ b/popup/satus.css
@@ -0,0 +1 @@
+html{--satus-theme-primary:#ff4158;--satus-header-background:#fff;--satus-switch-background:rgba(0,0,0,.08)}.satus-color-picker{font-size:inherit;position:relative;display:flex;box-sizing:border-box;margin:0;cursor:pointer;color:inherit;border:none;outline:0;background-color:var(--satus-theme-button);justify-content:space-between;-webkit-tap-highlight-color:transparent;align-items:center;-webkit-appearance:none}.satus-color-picker__value{width:24px;height:24px;border-radius:50%}.satus-modal--color-picker{position:relative}.satus-modal--color-picker .satus-modal__surface{display:flex;flex-direction:column;align-items:center}.satus-modal--color-picker canvas{width:256px;height:256px}.satus-color-picker__cursor{border-radius:50%;position:absolute;pointer-events:none;width:5px;border:1px solid #fff;height:5px;box-shadow:0 0 0 1px #000;transform:translate(-50%,-50%)}.satus-color-picker__slider .satus-slider__container{height:18px}.satus-color-picker__slider .satus-slider__track-container{top:calc(50% - 9px);height:18px}.satus-color-picker__slider .satus-slider__track-container::before{height:16px;opacity:1;background:linear-gradient(90deg,#fff,#000);border:1px solid #bfbfbf;border-radius:4px}.satus-color-picker__slider .satus-slider__track{background:0 0}.satus-color-picker__slider .satus-slider__thumb{background:#fff;top:0;border-radius:4px;height:18px;box-shadow:0 0 2px rgb(0,0,0,.2)}.satus-color-picker__slider .satus-slider__thumb:before{display:none}.satus-color-picker__actions{width:100%;justify-content:flex-end}.satus-main{color:var(--satus-main-text);background:var(--satus-main-background)}.satus-button{font:inherit;position:relative;overflow:hidden;height:48px;margin:0;padding:8px;color:var(--satus-button-text);border:none;background:var(--satus-button-background);appearance:none}.satus-button:hover{cursor:pointer;background-color:var(--satus-hover)}.satus-button>*{pointer-events:none}.satus-list{list-style:none;margin:0}.satus-list__item{display:flex;align-items:center;justify-content:space-between;height:48px}.satus-list__item>:last-child{text-align:right}.satus-section{display:flex;flex-wrap:wrap}.satus-section--align-start{justify-content:flex-start}.satus-section--align-end{justify-content:flex-end}.satus-header>.satus-section{align-items:center}.satus-section--card{flex-direction:column;width:calc(100% - 16px);max-width:900px;margin:8px auto;padding:8px 0;border:1px solid rgba(0,0,0,.1);border-radius:8px;background:var(--satus-section-card-background);color:var(--satus-section-card-text)}.satus-section--card>*{min-height:48px;padding:0 16px;text-align:left}.satus-section--card>.satus-button{display:flex;padding:0 16px;align-items:center}.satus-section--card>.satus-button>svg{width:20px;margin-right:8px;color:var(--satus-theme-primary)}.satus-section--label{font-size:17px;display:block;width:calc(100% - 16px);max-width:900px;margin:16px auto 8px}::-webkit-scrollbar{width:4px}::-webkit-scrollbar:hover{width:8px}::-webkit-scrollbar-thumb{background:rgba(0,0,0,.3)}.satus-modal{position:absolute;z-index:100;top:0;left:0;display:flex;width:100%;height:100vh;justify-content:center;align-items:center}.satus-modal__scrim{position:absolute;top:0;left:0;width:100%;height:100%;animation:modalFadeIn 150ms linear forwards;opacity:0;background:rgba(0,0,0,.2);backdrop-filter:blur(8px)}.satus-modal__surface{font-size:14px;display:flex;overflow-y:auto;flex-direction:column;width:95%;min-width:240px;max-width:560px;max-height:80%;padding:8px 0;transform:scale(.8);animation:modalZoomIn 150ms linear forwards;animation-delay:20ms;opacity:0;color:var(--satus-modal-text);border-radius:6px;background-color:var(--satus-modal-background);box-shadow:inset 0 -1px 1px 1px rgb(0,0,0,.1),0 2px 6px rgb(0,0,0,.15)}.satus-modal--closing .satus-modal__scrim{animation:modalFadeOut 70ms linear forwards}.satus-modal--closing .satus-modal__surface{animation:modalZoomOut 70ms linear forwards}@keyframes modalFadeIn{from{opacity:0}to{opacity:1}}@keyframes modalFadeOut{from{opacity:1}to{opacity:0}}@keyframes modalZoomIn{from{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}@keyframes modalZoomOut{from{transform:scale(1);opacity:1}to{transform:scale(.8);opacity:0}}.satus-switch{font:inherit;display:flex;transition:background-color 75ms;color:inherit;border:none;outline:0;background-color:transparent;justify-content:space-between;align-items:center}.satus-switch:hover{cursor:pointer;background-color:var(--satus-hover)}.satus-switch__thumb{width:38px;height:20px;transition:background-color 150ms;border-radius:20px;background-color:var(--satus-switch-background)}.satus-switch__thumb::before{display:block;width:16px;height:16px;margin:2px;content:'';transition:transform 150ms cubic-bezier(.4,0,.2,1);border-radius:50%;background-color:#fff;will-change:transform}.satus-switch[data-value=true] .satus-switch__thumb{background-color:var(--satus-primary)}.satus-switch[data-value=true] .satus-switch__thumb::before{transform:translateX(18px)}.satus-slider{position:relative;display:flex;flex-direction:column;box-sizing:border-box;width:100%;min-height:64px;padding:0 16px;-webkit-user-select:none;-moz-user-select:none;user-select:none;outline:0;align-items:flex-start;justify-content:center}.satus-slider:hover{cursor:pointer;background-color:rgba(0,0,0,.04)}.satus-slider__label{cursor:default}.satus-slider>input{position:absolute;z-index:1;top:0;left:0;box-sizing:border-box;width:100%;height:100%;margin:0;padding:0;opacity:0}.satus-slider__container{position:relative;width:100%;height:12px;margin:8px 0 0}.satus-slider__track-container{position:absolute;top:calc(50% - 1px);width:100%;height:2px;pointer-events:none}.satus-slider__track-container::before{position:absolute;top:0;left:0;width:100%;height:2px;content:'';opacity:.26;background-color:var(--satus-theme-primary)}.satus-slider__track{position:relative;width:0;height:100%;background-color:var(--satus-theme-primary);will-change:width}.satus-slider:not(.satus-slider--dragging) .satus-slider__track{transition:width .1s ease-out}.satus-slider__thumb{position:absolute;top:-5px;right:-12px;width:12px;height:12px;border-radius:50%;background-color:var(--satus-theme-primary);box-shadow:0 1px 5px rgba(0,0,0,.15)}.satus-slider .satus-slider__thumb::before{font-size:13px;position:absolute;top:-34px;left:50%;visibility:hidden;box-sizing:border-box;min-width:28px;padding:4px 4px;content:attr(data-value);transform:translateX(-50%);text-align:center;pointer-events:none;color:#fff;border-radius:4px;background:var(--satus-theme-tooltip)}.satus-slider:hover .satus-slider__thumb::before,.satus-slider>input:focus .satus-slider__container .satus-slider__thumb::before{visibility:visible}.satus-slider__ring{position:absolute;top:-11px;right:-18px;width:24px;height:24px;transition:.1s;transform:scale(0);opacity:0;border-radius:50%;background-color:var(--satus-theme-primary)}.satus-slider>input:focus+.satus-slider__container .satus-slider__ring{transform:scale(1);opacity:.25}.satus-shortcut{justify-content:space-between}.satus-shortcut__value{text-transform:uppercase;font-size:11px;opacity:.5}.satus-shortcut__actions{display:flex;justify-content:flex-end}.satus-shortcut__actions .satus-button{height:32px;background:rgba(0,0,0,.15);margin:8px 4px 0;border-radius:8px}.satus-shortcut__actions .satus-button:hover{background:rgba(0,0,0,.25)}.satus-shortcut__primary{display:flex;box-sizing:border-box;width:100%;height:68px;padding:16px;background:rgba(0,0,0,.16);align-items:center}.satus-shortcut__key{display:flex;box-sizing:border-box;min-width:32px;height:32px;padding:4px 8px;border-radius:4px;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.15),inset 0 -3px 0 rgba(0,0,0,.1);align-items:center;justify-content:center}.satus-shortcut__plus{position:relative;width:12px;height:12px;margin:8px}.satus-shortcut__plus::before{position:absolute;top:0;left:5px;width:2px;height:12px;content:'';background-color:#aaa}.satus-shortcut__plus::after{position:absolute;top:5px;left:0;width:12px;height:2px;content:'';background-color:#aaa}.satus-shortcut__mouse{position:relative;display:flex;width:28px;height:36px;border-radius:50%;border-top-left-radius:12px;border-top-right-radius:12px;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.15),inset 0 -3px 0 rgba(0,0,0,.1)}.satus-shortcut__mouse>div{position:absolute;top:0;left:13px;width:2px;height:11px;border-radius:2px;background:#ccc}.satus-shortcut__mouse::before{position:absolute;top:-4px;left:21px;width:2px;height:18px;content:'';background:#f96754}.satus-shortcut__mouse.false::after{position:absolute;top:-12px;left:17px;width:0;height:0;content:'';border-right:5px solid transparent;border-bottom:8px solid #f96754;border-left:5px solid transparent}.satus-shortcut__mouse.true::after{position:absolute;top:14px;left:17px;width:0;height:0;content:'';border-top:8px solid #f96754;border-right:5px solid transparent;border-left:5px solid transparent}.satus-section_shortcut{width:100%;margin:8px 0 0;justify-content:flex-end}.satus-button_shortcut{font-weight:500;overflow:hidden;height:28px;min-height:28px;margin-right:2px;padding:4px 8px;text-transform:uppercase;color:#f96754;border-radius:4px}.satus-base{display:flex;flex-direction:column;width:100%;height:100vh}.satus-text-field{position:relative;padding:0 16px;background-color:#333347;border-radius:8px;color:#c4c4d4;overflow:hidden;display:flex}.satus-text-field__pre{display:flex;position:relative;height:100%;margin:0;padding:0;overflow:hidden;align-items:center;flex:1}.satus-text-field__input{font:inherit;position:absolute;top:0;left:0;width:100%;min-width:0;max-width:none;height:100%;min-height:0;max-height:none;margin:0;padding:0;opacity:0;border:none;appearance:none;z-index:9}.satus-text-field__hidden-text{position:absolute;pointer-events:none;opacity:0}.satus-text-field__text{position:absolute;top:0;left:0;display:flex;height:100%;margin:0;align-items:center}.satus-text-field__cursor{position:absolute;top:6px;left:0;display:none;width:2px;height:25px;animation:blink 1s step-end 8;background:#fa0}.satus-text-field__selection{position:absolute;top:5px;left:0;display:none;width:0;height:25px;border:1px solid rgba(255,255,255,.2);border-radius:3px;background:rgba(255,255,255,.1)}.satus-text-field__input:focus+*+*+*+.satus-text-field__cursor,.satus-text-field__selection:not([disabled]){display:block}@keyframes blink{from,to{opacity:1}50%{opacity:0}}.satus-text-field__text>.group{color:#47ff47;background-color:rgb(71,255,71,.16)}.satus-text-field__text>.character-class{color:#ffc247;background-color:rgb(255,170,0,.16)}.satus-text-field__text>.quantifier{color:#47c2ff;background-color:rgb(71,194,255,.16)}.satus-text-field__text>.anchor{color:#47c2ff;background-color:rgb(71,194,255,.16)}.satus-text-field__text>.metasequence{color:#47ff47;background-color:rgb(71,255,71,.16)}.satus-text-field__text>.text{color:#c4c4d4;background-color:rgb(196,196,212,.16)}.satus-header{display:flex;box-sizing:border-box;height:56px;padding:0 16px;color:var(--satus-header-text);background:var(--satus-header-background);align-items:center;justify-content:space-between}.satus-layers{position:relative;overflow:hidden;color:var(--satus-layers-text);background:var(--satus-layers-background);flex:1}.satus-layer{position:absolute;top:0;left:0;display:flex;overflow-y:auto;width:100%;height:100%;flex-wrap:wrap;align-content:flex-start}.satus-input[type=text]{font:inherit;box-sizing:border-box;width:100%;margin:0;padding:0;padding:0 8px;color:inherit;border:none;outline:0;background:0 0;appearance:none}.satus-select{position:relative;display:flex;box-sizing:border-box;align-items:center}.satus-select select{font:inherit;position:absolute;top:0;left:0;width:100%;height:100%;margin:0;padding:0;padding:inherit;cursor:pointer;color:inherit;border:none;outline:0;background:0 0;appearance:none}.satus-select select:hover{cursor:pointer;background-color:rgba(0,0,0,.04)}.satus-section--card .satus-select select{text-align-last:right}.satus-pluviam{position:absolute;transform:scale(0);animation-name:pluviam;animation-duration:1s;opacity:.04;border-radius:50%;background:#000;animation-fill-mode:forwards}@keyframes pluviam{0%{transform:scale(0);opacity:.04}70%{transform:scale(.8);opacity:.04}100%{transform:scale(1);opacity:0}}
\ No newline at end of file
diff --git a/popup/satus.js b/popup/satus.js
new file mode 100644
index 0000000..34bcb4e
--- /dev/null
+++ b/popup/satus.js
@@ -0,0 +1 @@
+var satus={components:{},events:{},locale:{strings:{}},storage:{data:{}},append:function(M,N){(N||document.body).appendChild(M)},getAnimationDuration:function(M){return 1e3*Number(window.getComputedStyle(M).getPropertyValue("animation-duration").replace(/[^0-9.]/g,""))},attr:function(M,N){if(N)for(var I in N){var A;M.is_svg?M.setAttributeNS(null,I,N[I]):(A=N[I],"title"===I&&(A=satus.locale.get(A)),M.setAttribute(I,A))}},data:function(M,N){if(N)for(var I in N)M.dataset[I]=N[I]},properties:function(M,N){if(N)for(var I in N)M[I]=N[I]},camelize:function(M){for(var N="",I=0,A=M.length;I',M.onclick=function(){I.querySelector(".satus-modal__scrim").click()},I.className="satus-modal satus-modal--color-picker",A.width=200,A.height=200,A.addEventListener("mousedown",function(){i(event),this.addEventListener("mousemove",i),window.addEventListener("mouseup",g)}),N.onload=function(){D.drawImage(N,0,0),N.remove()},N.src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNzAgMjcwIj48ZGVmcz48cmFkaWFsR3JhZGllbnQgaWQ9ImEiPjxzdG9wIG9mZnNldD0iMCUiIHN0b3AtY29sb3I9IiNmZmYiLz48c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNmZmYiIHN0b3Atb3BhY2l0eT0iMCIvPjwvcmFkaWFsR3JhZGllbnQ+PC9kZWZzPjxnIGZpbGw9Im5vbmUiIHN0cm9rZS13aWR0aD0iMTMzIiBjbGFzcz0iSXJvV2hlZWxIdWUiPjxwYXRoIHN0cm9rZT0iaHNsKDI0MCwgMTAwJSwgNTAlKSIgZD0iTTIwMS40NzcgMTM2Ljc0YTY2LjUgNjYuNSAwIDAwLjAyMy0xLjc0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjQxLCAxMDAlLCA1MCUpIiBkPSJNMjAxLjQzNyAxMzcuOWE2Ni41IDY2LjUgMCAwMC4wNTMtMS43NCIvPjxwYXRoIHN0cm9rZT0iaHNsKDI0MiwgMTAwJSwgNTAlKSIgZD0iTTIwMS4zNzYgMTM5LjA2YTY2LjUgNjYuNSAwIDAwLjA4My0xLjc0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjQzLCAxMDAlLCA1MCUpIiBkPSJNMjAxLjI5NSAxNDAuMjE4YTY2LjUgNjYuNSAwIDAwLjExNC0xLjczOCIvPjxwYXRoIHN0cm9rZT0iaHNsKDI0NCwgMTAwJSwgNTAlKSIgZD0iTTIwMS4xOTQgMTQxLjM3NGE2Ni41IDY2LjUgMCAwMC4xNDQtMS43MzUiLz48cGF0aCBzdHJva2U9ImhzbCgyNDUsIDEwMCUsIDUwJSkiIGQ9Ik0yMDEuMDczIDE0Mi41MjhhNjYuNSA2Ni41IDAgMDAuMTc0LTEuNzMyIi8+PHBhdGggc3Ryb2tlPSJoc2woMjQ2LCAxMDAlLCA1MCUpIiBkPSJNMjAwLjkzMSAxNDMuNjhhNjYuNSA2Ni41IDAgMDAuMjA1LTEuNzI5Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjQ3LCAxMDAlLCA1MCUpIiBkPSJNMjAwLjc3IDE0NC44M2E2Ni41IDY2LjUgMCAwMC4yMzQtMS43MjYiLz48cGF0aCBzdHJva2U9ImhzbCgyNDgsIDEwMCUsIDUwJSkiIGQ9Ik0yMDAuNTg4IDE0NS45NzZhNjYuNSA2Ni41IDAgMDAuMjY1LTEuNzIxIi8+PHBhdGggc3Ryb2tlPSJoc2woMjQ5LCAxMDAlLCA1MCUpIiBkPSJNMjAwLjM4NiAxNDcuMTE5YTY2LjUgNjYuNSAwIDAwLjI5NS0xLjcxNiIvPjxwYXRoIHN0cm9rZT0iaHNsKDI1MCwgMTAwJSwgNTAlKSIgZD0iTTIwMC4xNjUgMTQ4LjI1OGE2Ni41IDY2LjUgMCAwMC4zMjUtMS43MSIvPjxwYXRoIHN0cm9rZT0iaHNsKDI1MSwgMTAwJSwgNTAlKSIgZD0iTTE5OS45MjQgMTQ5LjM5M2E2Ni41IDY2LjUgMCAwMC4zNTQtMS43MDQiLz48cGF0aCBzdHJva2U9ImhzbCgyNTIsIDEwMCUsIDUwJSkiIGQ9Ik0xOTkuNjYzIDE1MC41MjRhNjYuNSA2Ni41IDAgMDAuMzg0LTEuNjk4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjUzLCAxMDAlLCA1MCUpIiBkPSJNMTk5LjM4MiAxNTEuNjVhNjYuNSA2Ni41IDAgMDAuNDE0LTEuNjkiLz48cGF0aCBzdHJva2U9ImhzbCgyNTQsIDEwMCUsIDUwJSkiIGQ9Ik0xOTkuMDgxIDE1Mi43NzFhNjYuNSA2Ni41IDAgMDAuNDQ0LTEuNjgzIi8+PHBhdGggc3Ryb2tlPSJoc2woMjU1LCAxMDAlLCA1MCUpIiBkPSJNMTk4Ljc2MiAxNTMuODg3YTY2LjUgNjYuNSAwIDAwLjQ3Mi0xLjY3NiIvPjxwYXRoIHN0cm9rZT0iaHNsKDI1NiwgMTAwJSwgNTAlKSIgZD0iTTE5OC40MjIgMTU0Ljk5N2E2Ni41IDY2LjUgMCAwMC41MDItMS42NjciLz48cGF0aCBzdHJva2U9ImhzbCgyNTcsIDEwMCUsIDUwJSkiIGQ9Ik0xOTguMDY0IDE1Ni4xYTY2LjUgNjYuNSAwIDAwLjUzLTEuNjU3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjU4LCAxMDAlLCA1MCUpIiBkPSJNMTk3LjY4NiAxNTcuMTk4YTY2LjUgNjYuNSAwIDAwLjU2LTEuNjQ4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjU5LCAxMDAlLCA1MCUpIiBkPSJNMTk3LjI4OSAxNTguMjg5YTY2LjUgNjYuNSAwIDAwLjU4OC0xLjYzOSIvPjxwYXRoIHN0cm9rZT0iaHNsKDI2MCwgMTAwJSwgNTAlKSIgZD0iTTE5Ni44NzMgMTU5LjM3MmE2Ni41IDY2LjUgMCAwMC42MTctMS42MjgiLz48cGF0aCBzdHJva2U9ImhzbCgyNjEsIDEwMCUsIDUwJSkiIGQ9Ik0xOTYuNDM4IDE2MC40NDhhNjYuNSA2Ni41IDAgMDAuNjQ1LTEuNjE3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjYyLCAxMDAlLCA1MCUpIiBkPSJNMTk1Ljk4NCAxNjEuNTE3YTY2LjUgNjYuNSAwIDAwLjY3NC0xLjYwNiIvPjxwYXRoIHN0cm9rZT0iaHNsKDI2MywgMTAwJSwgNTAlKSIgZD0iTTE5NS41MTIgMTYyLjU3N2E2Ni41IDY2LjUgMCAwMC43MDItMS41OTMiLz48cGF0aCBzdHJva2U9ImhzbCgyNjQsIDEwMCUsIDUwJSkiIGQ9Ik0xOTUuMDIyIDE2My42MjlhNjYuNSA2Ni41IDAgMDAuNzI5LTEuNTgxIi8+PHBhdGggc3Ryb2tlPSJoc2woMjY1LCAxMDAlLCA1MCUpIiBkPSJNMTk0LjUxMyAxNjQuNjcyYTY2LjUgNjYuNSAwIDAwLjc1Ni0xLjU2OCIvPjxwYXRoIHN0cm9rZT0iaHNsKDI2NiwgMTAwJSwgNTAlKSIgZD0iTTE5My45ODYgMTY1LjcwNmE2Ni41IDY2LjUgMCAwMC43ODQtMS41NTQiLz48cGF0aCBzdHJva2U9ImhzbCgyNjcsIDEwMCUsIDUwJSkiIGQ9Ik0xOTMuNDQxIDE2Ni43MzFhNjYuNSA2Ni41IDAgMDAuODEtMS41NCIvPjxwYXRoIHN0cm9rZT0iaHNsKDI2OCwgMTAwJSwgNTAlKSIgZD0iTTE5Mi44NzkgMTY3Ljc0NmE2Ni41IDY2LjUgMCAwMC44MzctMS41MjYiLz48cGF0aCBzdHJva2U9ImhzbCgyNjksIDEwMCUsIDUwJSkiIGQ9Ik0xOTIuMjk4IDE2OC43NTFhNjYuNSA2Ni41IDAgMDAuODY0LTEuNTExIi8+PHBhdGggc3Ryb2tlPSJoc2woMjcwLCAxMDAlLCA1MCUpIiBkPSJNMTkxLjcgMTY5Ljc0NmE2Ni41IDY2LjUgMCAwMC44OS0xLjQ5NiIvPjxwYXRoIHN0cm9rZT0iaHNsKDI3MSwgMTAwJSwgNTAlKSIgZD0iTTE5MS4wODYgMTcwLjczYTY2LjUgNjYuNSAwIDAwLjkxNi0xLjQ4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjcyLCAxMDAlLCA1MCUpIiBkPSJNMTkwLjQ1MyAxNzEuNzA0YTY2LjUgNjYuNSAwIDAwLjk0Mi0xLjQ2NCIvPjxwYXRoIHN0cm9rZT0iaHNsKDI3MywgMTAwJSwgNTAlKSIgZD0iTTE4OS44MDQgMTcyLjY2NmE2Ni41IDY2LjUgMCAwMC45NjgtMS40NDgiLz48cGF0aCBzdHJva2U9ImhzbCgyNzQsIDEwMCUsIDUwJSkiIGQ9Ik0xODkuMTM5IDE3My42MTdhNjYuNSA2Ni41IDAgMDAuOTkyLTEuNDMiLz48cGF0aCBzdHJva2U9ImhzbCgyNzUsIDEwMCUsIDUwJSkiIGQ9Ik0xODguNDU2IDE3NC41NTZhNjYuNSA2Ni41IDAgMDAxLjAxOC0xLjQxMyIvPjxwYXRoIHN0cm9rZT0iaHNsKDI3NiwgMTAwJSwgNTAlKSIgZD0iTTE4Ny43NTggMTc1LjQ4M2E2Ni41IDY2LjUgMCAwMDEuMDQyLTEuMzk1Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjc3LCAxMDAlLCA1MCUpIiBkPSJNMTg3LjA0MyAxNzYuMzk3YTY2LjUgNjYuNSAwIDAwMS4wNjYtMS4zNzYiLz48cGF0aCBzdHJva2U9ImhzbCgyNzgsIDEwMCUsIDUwJSkiIGQ9Ik0xODYuMzEzIDE3Ny4zYTY2LjUgNjYuNSAwIDAwMS4wOS0xLjM1OSIvPjxwYXRoIHN0cm9rZT0iaHNsKDI3OSwgMTAwJSwgNTAlKSIgZD0iTTE4NS41NjcgMTc4LjE4OGE2Ni41IDY2LjUgMCAwMDEuMTEzLTEuMzM4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjgwLCAxMDAlLCA1MCUpIiBkPSJNMTg0LjgwNiAxNzkuMDY0YTY2LjUgNjYuNSAwIDAwMS4xMzYtMS4zMTkiLz48cGF0aCBzdHJva2U9ImhzbCgyODEsIDEwMCUsIDUwJSkiIGQ9Ik0xODQuMDI5IDE3OS45MjdhNjYuNSA2Ni41IDAgMDAxLjE2LTEuMyIvPjxwYXRoIHN0cm9rZT0iaHNsKDI4MiwgMTAwJSwgNTAlKSIgZD0iTTE4My4yMzcgMTgwLjc3NmE2Ni41IDY2LjUgMCAwMDEuMTgyLTEuMjc5Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjgzLCAxMDAlLCA1MCUpIiBkPSJNMTgyLjQzMSAxODEuNjFhNjYuNSA2Ni41IDAgMDAxLjIwNC0xLjI1NyIvPjxwYXRoIHN0cm9rZT0iaHNsKDI4NCwgMTAwJSwgNTAlKSIgZD0iTTE4MS42MSAxODIuNDMxYTY2LjUgNjYuNSAwIDAwMS4yMjYtMS4yMzYiLz48cGF0aCBzdHJva2U9ImhzbCgyODUsIDEwMCUsIDUwJSkiIGQ9Ik0xODAuNzc2IDE4My4yMzdhNjYuNSA2Ni41IDAgMDAxLjI0Ny0xLjIxNCIvPjxwYXRoIHN0cm9rZT0iaHNsKDI4NiwgMTAwJSwgNTAlKSIgZD0iTTE3OS45MjcgMTg0LjAyOWE2Ni41IDY2LjUgMCAwMDEuMjY4LTEuMTkzIi8+PHBhdGggc3Ryb2tlPSJoc2woMjg3LCAxMDAlLCA1MCUpIiBkPSJNMTc5LjA2NCAxODQuODA2YTY2LjUgNjYuNSAwIDAwMS4yODktMS4xNzEiLz48cGF0aCBzdHJva2U9ImhzbCgyODgsIDEwMCUsIDUwJSkiIGQ9Ik0xNzguMTg4IDE4NS41NjdhNjYuNSA2Ni41IDAgMDAxLjMxLTEuMTQ4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjg5LCAxMDAlLCA1MCUpIiBkPSJNMTc3LjMgMTg2LjMxM2E2Ni41IDY2LjUgMCAwMDEuMzI4LTEuMTI1Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjkwLCAxMDAlLCA1MCUpIiBkPSJNMTc2LjM5NyAxODcuMDQzYTY2LjUgNjYuNSAwIDAwMS4zNDgtMS4xMDEiLz48cGF0aCBzdHJva2U9ImhzbCgyOTEsIDEwMCUsIDUwJSkiIGQ9Ik0xNzUuNDgzIDE4Ny43NThhNjYuNSA2Ni41IDAgMDAxLjM2Ny0xLjA3OCIvPjxwYXRoIHN0cm9rZT0iaHNsKDI5MiwgMTAwJSwgNTAlKSIgZD0iTTE3NC41NTYgMTg4LjQ1NmE2Ni41IDY2LjUgMCAwMDEuMzg1LTEuMDUzIi8+PHBhdGggc3Ryb2tlPSJoc2woMjkzLCAxMDAlLCA1MCUpIiBkPSJNMTczLjYxNyAxODkuMTM5YTY2LjUgNjYuNSAwIDAwMS40MDQtMS4wMyIvPjxwYXRoIHN0cm9rZT0iaHNsKDI5NCwgMTAwJSwgNTAlKSIgZD0iTTE3Mi42NjYgMTg5LjgwNGE2Ni41IDY2LjUgMCAwMDEuNDIyLTEuMDA0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjk1LCAxMDAlLCA1MCUpIiBkPSJNMTcxLjcwNCAxOTAuNDUzYTY2LjUgNjYuNSAwIDAwMS40MzktLjk4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjk2LCAxMDAlLCA1MCUpIiBkPSJNMTcwLjczIDE5MS4wODZhNjYuNSA2Ni41IDAgMDAxLjQ1Ni0uOTU1Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjk3LCAxMDAlLCA1MCUpIiBkPSJNMTY5Ljc0NiAxOTEuN2E2Ni41IDY2LjUgMCAwMDEuNDcyLS45MjgiLz48cGF0aCBzdHJva2U9ImhzbCgyOTgsIDEwMCUsIDUwJSkiIGQ9Ik0xNjguNzUxIDE5Mi4yOThhNjYuNSA2Ni41IDAgMDAxLjQ4OS0uOTAzIi8+PHBhdGggc3Ryb2tlPSJoc2woMjk5LCAxMDAlLCA1MCUpIiBkPSJNMTY3Ljc0NiAxOTIuODc5YTY2LjUgNjYuNSAwIDAwMS41MDQtLjg3NyIvPjxwYXRoIHN0cm9rZT0iaHNsKDMwMCwgMTAwJSwgNTAlKSIgZD0iTTE2Ni43MzEgMTkzLjQ0MWE2Ni41IDY2LjUgMCAwMDEuNTE5LS44NSIvPjxwYXRoIHN0cm9rZT0iaHNsKDMwMSwgMTAwJSwgNTAlKSIgZD0iTTE2NS43MDYgMTkzLjk4NmE2Ni41IDY2LjUgMCAwMDEuNTM0LS44MjQiLz48cGF0aCBzdHJva2U9ImhzbCgzMDIsIDEwMCUsIDUwJSkiIGQ9Ik0xNjQuNjcyIDE5NC41MTNhNjYuNSA2Ni41IDAgMDAxLjU0OC0uNzk3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzAzLCAxMDAlLCA1MCUpIiBkPSJNMTYzLjYyOSAxOTUuMDIyYTY2LjUgNjYuNSAwIDAwMS41NjEtLjc3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzA0LCAxMDAlLCA1MCUpIiBkPSJNMTYyLjU3NyAxOTUuNTEyYTY2LjUgNjYuNSAwIDAwMS41NzUtLjc0MiIvPjxwYXRoIHN0cm9rZT0iaHNsKDMwNSwgMTAwJSwgNTAlKSIgZD0iTTE2MS41MTcgMTk1Ljk4NGE2Ni41IDY2LjUgMCAwMDEuNTg3LS43MTUiLz48cGF0aCBzdHJva2U9ImhzbCgzMDYsIDEwMCUsIDUwJSkiIGQ9Ik0xNjAuNDQ4IDE5Ni40MzhhNjYuNSA2Ni41IDAgMDAxLjYtLjY4NyIvPjxwYXRoIHN0cm9rZT0iaHNsKDMwNywgMTAwJSwgNTAlKSIgZD0iTTE1OS4zNzIgMTk2Ljg3M2E2Ni41IDY2LjUgMCAwMDEuNjEyLS42NiIvPjxwYXRoIHN0cm9rZT0iaHNsKDMwOCwgMTAwJSwgNTAlKSIgZD0iTTE1OC4yODkgMTk3LjI4OWE2Ni41IDY2LjUgMCAwMDEuNjIyLS42MzEiLz48cGF0aCBzdHJva2U9ImhzbCgzMDksIDEwMCUsIDUwJSkiIGQ9Ik0xNTcuMTk4IDE5Ny42ODZhNjYuNSA2Ni41IDAgMDAxLjYzMy0uNjAzIi8+PHBhdGggc3Ryb2tlPSJoc2woMzEwLCAxMDAlLCA1MCUpIiBkPSJNMTU2LjEgMTk4LjA2NGE2Ni41IDY2LjUgMCAwMDEuNjQ0LS41NzQiLz48cGF0aCBzdHJva2U9ImhzbCgzMTEsIDEwMCUsIDUwJSkiIGQ9Ik0xNTQuOTk3IDE5OC40MjJhNjYuNSA2Ni41IDAgMDAxLjY1My0uNTQ1Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzEyLCAxMDAlLCA1MCUpIiBkPSJNMTUzLjg4NyAxOTguNzYyYTY2LjUgNjYuNSAwIDAwMS42NjMtLjUxNyIvPjxwYXRoIHN0cm9rZT0iaHNsKDMxMywgMTAwJSwgNTAlKSIgZD0iTTE1Mi43NzEgMTk5LjA4MWE2Ni41IDY2LjUgMCAwMDEuNjcyLS40ODciLz48cGF0aCBzdHJva2U9ImhzbCgzMTQsIDEwMCUsIDUwJSkiIGQ9Ik0xNTEuNjUgMTk5LjM4MmE2Ni41IDY2LjUgMCAwMDEuNjgtLjQ1OCIvPjxwYXRoIHN0cm9rZT0iaHNsKDMxNSwgMTAwJSwgNTAlKSIgZD0iTTE1MC41MjQgMTk5LjY2M2E2Ni41IDY2LjUgMCAwMDEuNjg3LS40MjkiLz48cGF0aCBzdHJva2U9ImhzbCgzMTYsIDEwMCUsIDUwJSkiIGQ9Ik0xNDkuMzkzIDE5OS45MjRhNjYuNSA2Ni41IDAgMDAxLjY5NS0uNCIvPjxwYXRoIHN0cm9rZT0iaHNsKDMxNywgMTAwJSwgNTAlKSIgZD0iTTE0OC4yNTggMjAwLjE2NWE2Ni41IDY2LjUgMCAwMDEuNzAxLS4zNyIvPjxwYXRoIHN0cm9rZT0iaHNsKDMxOCwgMTAwJSwgNTAlKSIgZD0iTTE0Ny4xMTkgMjAwLjM4NmE2Ni41IDY2LjUgMCAwMDEuNzA3LS4zNCIvPjxwYXRoIHN0cm9rZT0iaHNsKDMxOSwgMTAwJSwgNTAlKSIgZD0iTTE0NS45NzYgMjAwLjU4OGE2Ni41IDY2LjUgMCAwMDEuNzEzLS4zMSIvPjxwYXRoIHN0cm9rZT0iaHNsKDMyMCwgMTAwJSwgNTAlKSIgZD0iTTE0NC44MyAyMDAuNzdhNjYuNSA2Ni41IDAgMDAxLjcxOC0uMjgiLz48cGF0aCBzdHJva2U9ImhzbCgzMjEsIDEwMCUsIDUwJSkiIGQ9Ik0xNDMuNjggMjAwLjkzMWE2Ni41IDY2LjUgMCAwMDEuNzIzLS4yNSIvPjxwYXRoIHN0cm9rZT0iaHNsKDMyMiwgMTAwJSwgNTAlKSIgZD0iTTE0Mi41MjggMjAxLjA3M2E2Ni41IDY2LjUgMCAwMDEuNzI3LS4yMiIvPjxwYXRoIHN0cm9rZT0iaHNsKDMyMywgMTAwJSwgNTAlKSIgZD0iTTE0MS4zNzQgMjAxLjE5NGE2Ni41IDY2LjUgMCAwMDEuNzMtLjE5Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzI0LCAxMDAlLCA1MCUpIiBkPSJNMTQwLjIxOCAyMDEuMjk1YTY2LjUgNjYuNSAwIDAwMS43MzMtLjE2Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzI1LCAxMDAlLCA1MCUpIiBkPSJNMTM5LjA2IDIwMS4zNzZhNjYuNSA2Ni41IDAgMDAxLjczNi0uMTMiLz48cGF0aCBzdHJva2U9ImhzbCgzMjYsIDEwMCUsIDUwJSkiIGQ9Ik0xMzcuOSAyMDEuNDM3YTY2LjUgNjYuNSAwIDAwMS43MzktLjA5OSIvPjxwYXRoIHN0cm9rZT0iaHNsKDMyNywgMTAwJSwgNTAlKSIgZD0iTTEzNi43NCAyMDEuNDc3YTY2LjUgNjYuNSAwIDAwMS43NC0uMDY4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzI4LCAxMDAlLCA1MCUpIiBkPSJNMTM1LjU4IDIwMS40OTdhNjYuNSA2Ni41IDAgMDAxLjc0LS4wMzgiLz48cGF0aCBzdHJva2U9ImhzbCgzMjksIDEwMCUsIDUwJSkiIGQ9Ik0xMzQuNDIgMjAxLjQ5N2E2Ni41IDY2LjUgMCAwMDEuNzQtLjAwNyIvPjxwYXRoIHN0cm9rZT0iaHNsKDMzMCwgMTAwJSwgNTAlKSIgZD0iTTEzMy4yNiAyMDEuNDc3YTY2LjUgNjYuNSAwIDAwMS43NC4wMjMiLz48cGF0aCBzdHJva2U9ImhzbCgzMzEsIDEwMCUsIDUwJSkiIGQ9Ik0xMzIuMSAyMDEuNDM3YTY2LjUgNjYuNSAwIDAwMS43NC4wNTMiLz48cGF0aCBzdHJva2U9ImhzbCgzMzIsIDEwMCUsIDUwJSkiIGQ9Ik0xMzAuOTQgMjAxLjM3NmE2Ni41IDY2LjUgMCAwMDEuNzQuMDgzIi8+PHBhdGggc3Ryb2tlPSJoc2woMzMzLCAxMDAlLCA1MCUpIiBkPSJNMTI5Ljc4MiAyMDEuMjk1YTY2LjUgNjYuNSAwIDAwMS43MzguMTE0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzM0LCAxMDAlLCA1MCUpIiBkPSJNMTI4LjYyNiAyMDEuMTk0YTY2LjUgNjYuNSAwIDAwMS43MzUuMTQ0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzM1LCAxMDAlLCA1MCUpIiBkPSJNMTI3LjQ3MiAyMDEuMDczYTY2LjUgNjYuNSAwIDAwMS43MzIuMTc0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzM2LCAxMDAlLCA1MCUpIiBkPSJNMTI2LjMyIDIwMC45MzFhNjYuNSA2Ni41IDAgMDAxLjcyOS4yMDUiLz48cGF0aCBzdHJva2U9ImhzbCgzMzcsIDEwMCUsIDUwJSkiIGQ9Ik0xMjUuMTcgMjAwLjc3YTY2LjUgNjYuNSAwIDAwMS43MjYuMjM0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzM4LCAxMDAlLCA1MCUpIiBkPSJNMTI0LjAyNCAyMDAuNTg4YTY2LjUgNjYuNSAwIDAwMS43MjEuMjY1Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzM5LCAxMDAlLCA1MCUpIiBkPSJNMTIyLjg4MSAyMDAuMzg2YTY2LjUgNjYuNSAwIDAwMS43MTYuMjk1Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzQwLCAxMDAlLCA1MCUpIiBkPSJNMTIxLjc0MiAyMDAuMTY1YTY2LjUgNjYuNSAwIDAwMS43MS4zMjUiLz48cGF0aCBzdHJva2U9ImhzbCgzNDEsIDEwMCUsIDUwJSkiIGQ9Ik0xMjAuNjA3IDE5OS45MjRhNjYuNSA2Ni41IDAgMDAxLjcwNC4zNTQiLz48cGF0aCBzdHJva2U9ImhzbCgzNDIsIDEwMCUsIDUwJSkiIGQ9Ik0xMTkuNDc2IDE5OS42NjNhNjYuNSA2Ni41IDAgMDAxLjY5OC4zODQiLz48cGF0aCBzdHJva2U9ImhzbCgzNDMsIDEwMCUsIDUwJSkiIGQ9Ik0xMTguMzUgMTk5LjM4MmE2Ni41IDY2LjUgMCAwMDEuNjkuNDE0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzQ0LCAxMDAlLCA1MCUpIiBkPSJNMTE3LjIyOSAxOTkuMDgxYTY2LjUgNjYuNSAwIDAwMS42ODMuNDQ0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzQ1LCAxMDAlLCA1MCUpIiBkPSJNMTE2LjExMyAxOTguNzYyYTY2LjUgNjYuNSAwIDAwMS42NzYuNDcyIi8+PHBhdGggc3Ryb2tlPSJoc2woMzQ2LCAxMDAlLCA1MCUpIiBkPSJNMTE1LjAwMyAxOTguNDIyYTY2LjUgNjYuNSAwIDAwMS42NjcuNTAyIi8+PHBhdGggc3Ryb2tlPSJoc2woMzQ3LCAxMDAlLCA1MCUpIiBkPSJNMTEzLjkgMTk4LjA2NGE2Ni41IDY2LjUgMCAwMDEuNjU3LjUzIi8+PHBhdGggc3Ryb2tlPSJoc2woMzQ4LCAxMDAlLCA1MCUpIiBkPSJNMTEyLjgwMiAxOTcuNjg2YTY2LjUgNjYuNSAwIDAwMS42NDguNTYiLz48cGF0aCBzdHJva2U9ImhzbCgzNDksIDEwMCUsIDUwJSkiIGQ9Ik0xMTEuNzExIDE5Ny4yODlhNjYuNSA2Ni41IDAgMDAxLjYzOS41ODgiLz48cGF0aCBzdHJva2U9ImhzbCgzNTAsIDEwMCUsIDUwJSkiIGQ9Ik0xMTAuNjI4IDE5Ni44NzNhNjYuNSA2Ni41IDAgMDAxLjYyOC42MTciLz48cGF0aCBzdHJva2U9ImhzbCgzNTEsIDEwMCUsIDUwJSkiIGQ9Ik0xMDkuNTUyIDE5Ni40MzhhNjYuNSA2Ni41IDAgMDAxLjYxNy42NDUiLz48cGF0aCBzdHJva2U9ImhzbCgzNTIsIDEwMCUsIDUwJSkiIGQ9Ik0xMDguNDgzIDE5NS45ODRhNjYuNSA2Ni41IDAgMDAxLjYwNi42NzQiLz48cGF0aCBzdHJva2U9ImhzbCgzNTMsIDEwMCUsIDUwJSkiIGQ9Ik0xMDcuNDIzIDE5NS41MTJhNjYuNSA2Ni41IDAgMDAxLjU5My43MDIiLz48cGF0aCBzdHJva2U9ImhzbCgzNTQsIDEwMCUsIDUwJSkiIGQ9Ik0xMDYuMzcxIDE5NS4wMjJhNjYuNSA2Ni41IDAgMDAxLjU4MS43MjkiLz48cGF0aCBzdHJva2U9ImhzbCgzNTUsIDEwMCUsIDUwJSkiIGQ9Ik0xMDUuMzI4IDE5NC41MTNhNjYuNSA2Ni41IDAgMDAxLjU2OC43NTYiLz48cGF0aCBzdHJva2U9ImhzbCgzNTYsIDEwMCUsIDUwJSkiIGQ9Ik0xMDQuMjk0IDE5My45ODZhNjYuNSA2Ni41IDAgMDAxLjU1NC43ODQiLz48cGF0aCBzdHJva2U9ImhzbCgzNTcsIDEwMCUsIDUwJSkiIGQ9Ik0xMDMuMjY5IDE5My40NDFhNjYuNSA2Ni41IDAgMDAxLjU0LjgxIi8+PHBhdGggc3Ryb2tlPSJoc2woMzU4LCAxMDAlLCA1MCUpIiBkPSJNMTAyLjI1NCAxOTIuODc5YTY2LjUgNjYuNSAwIDAwMS41MjYuODM3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzU5LCAxMDAlLCA1MCUpIiBkPSJNMTAxLjI0OSAxOTIuMjk4YTY2LjUgNjYuNSAwIDAwMS41MTEuODY0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMCwgMTAwJSwgNTAlKSIgZD0iTTEwMC4yNTQgMTkxLjdhNjYuNSA2Ni41IDAgMDAxLjQ5Ni44OSIvPjxwYXRoIHN0cm9rZT0iaHNsKDEsIDEwMCUsIDUwJSkiIGQ9Ik05OS4yNyAxOTEuMDg2YTY2LjUgNjYuNSAwIDAwMS40OC45MTYiLz48cGF0aCBzdHJva2U9ImhzbCgyLCAxMDAlLCA1MCUpIiBkPSJNOTguMjk2IDE5MC40NTNhNjYuNSA2Ni41IDAgMDAxLjQ2NC45NDIiLz48cGF0aCBzdHJva2U9ImhzbCgzLCAxMDAlLCA1MCUpIiBkPSJNOTcuMzM0IDE4OS44MDRhNjYuNSA2Ni41IDAgMDAxLjQ0OC45NjgiLz48cGF0aCBzdHJva2U9ImhzbCg0LCAxMDAlLCA1MCUpIiBkPSJNOTYuMzgzIDE4OS4xMzlhNjYuNSA2Ni41IDAgMDAxLjQzLjk5MiIvPjxwYXRoIHN0cm9rZT0iaHNsKDUsIDEwMCUsIDUwJSkiIGQ9Ik05NS40NDQgMTg4LjQ1NmE2Ni41IDY2LjUgMCAwMDEuNDEzIDEuMDE4Ii8+PHBhdGggc3Ryb2tlPSJoc2woNiwgMTAwJSwgNTAlKSIgZD0iTTk0LjUxNyAxODcuNzU4YTY2LjUgNjYuNSAwIDAwMS4zOTUgMS4wNDIiLz48cGF0aCBzdHJva2U9ImhzbCg3LCAxMDAlLCA1MCUpIiBkPSJNOTMuNjAzIDE4Ny4wNDNhNjYuNSA2Ni41IDAgMDAxLjM3NiAxLjA2NiIvPjxwYXRoIHN0cm9rZT0iaHNsKDgsIDEwMCUsIDUwJSkiIGQ9Ik05Mi43IDE4Ni4zMTNhNjYuNSA2Ni41IDAgMDAxLjM1OSAxLjA5Ii8+PHBhdGggc3Ryb2tlPSJoc2woOSwgMTAwJSwgNTAlKSIgZD0iTTkxLjgxMiAxODUuNTY3YTY2LjUgNjYuNSAwIDAwMS4zMzggMS4xMTMiLz48cGF0aCBzdHJva2U9ImhzbCgxMCwgMTAwJSwgNTAlKSIgZD0iTTkwLjkzNiAxODQuODA2YTY2LjUgNjYuNSAwIDAwMS4zMTkgMS4xMzYiLz48cGF0aCBzdHJva2U9ImhzbCgxMSwgMTAwJSwgNTAlKSIgZD0iTTkwLjA3MyAxODQuMDI5YTY2LjUgNjYuNSAwIDAwMS4zIDEuMTYiLz48cGF0aCBzdHJva2U9ImhzbCgxMiwgMTAwJSwgNTAlKSIgZD0iTTg5LjIyNCAxODMuMjM3YTY2LjUgNjYuNSAwIDAwMS4yNzkgMS4xODIiLz48cGF0aCBzdHJva2U9ImhzbCgxMywgMTAwJSwgNTAlKSIgZD0iTTg4LjM5IDE4Mi40MzFhNjYuNSA2Ni41IDAgMDAxLjI1NyAxLjIwNCIvPjxwYXRoIHN0cm9rZT0iaHNsKDE0LCAxMDAlLCA1MCUpIiBkPSJNODcuNTY5IDE4MS42MWE2Ni41IDY2LjUgMCAwMDEuMjM2IDEuMjI2Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTUsIDEwMCUsIDUwJSkiIGQ9Ik04Ni43NjMgMTgwLjc3NmE2Ni41IDY2LjUgMCAwMDEuMjE0IDEuMjQ3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTYsIDEwMCUsIDUwJSkiIGQ9Ik04NS45NzEgMTc5LjkyN2E2Ni41IDY2LjUgMCAwMDEuMTkzIDEuMjY4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTcsIDEwMCUsIDUwJSkiIGQ9Ik04NS4xOTQgMTc5LjA2NGE2Ni41IDY2LjUgMCAwMDEuMTcxIDEuMjg5Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTgsIDEwMCUsIDUwJSkiIGQ9Ik04NC40MzMgMTc4LjE4OGE2Ni41IDY2LjUgMCAwMDEuMTQ4IDEuMzEiLz48cGF0aCBzdHJva2U9ImhzbCgxOSwgMTAwJSwgNTAlKSIgZD0iTTgzLjY4NyAxNzcuM2E2Ni41IDY2LjUgMCAwMDEuMTI1IDEuMzI4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjAsIDEwMCUsIDUwJSkiIGQ9Ik04Mi45NTcgMTc2LjM5N2E2Ni41IDY2LjUgMCAwMDEuMTAxIDEuMzQ4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjEsIDEwMCUsIDUwJSkiIGQ9Ik04Mi4yNDIgMTc1LjQ4M2E2Ni41IDY2LjUgMCAwMDEuMDc4IDEuMzY3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjIsIDEwMCUsIDUwJSkiIGQ9Ik04MS41NDQgMTc0LjU1NmE2Ni41IDY2LjUgMCAwMDEuMDUzIDEuMzg1Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjMsIDEwMCUsIDUwJSkiIGQ9Ik04MC44NjEgMTczLjYxN2E2Ni41IDY2LjUgMCAwMDEuMDMgMS40MDQiLz48cGF0aCBzdHJva2U9ImhzbCgyNCwgMTAwJSwgNTAlKSIgZD0iTTgwLjE5NiAxNzIuNjY2YTY2LjUgNjYuNSAwIDAwMS4wMDQgMS40MjIiLz48cGF0aCBzdHJva2U9ImhzbCgyNSwgMTAwJSwgNTAlKSIgZD0iTTc5LjU0NyAxNzEuNzA0YTY2LjUgNjYuNSAwIDAwLjk4IDEuNDM5Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjYsIDEwMCUsIDUwJSkiIGQ9Ik03OC45MTQgMTcwLjczYTY2LjUgNjYuNSAwIDAwLjk1NSAxLjQ1NiIvPjxwYXRoIHN0cm9rZT0iaHNsKDI3LCAxMDAlLCA1MCUpIiBkPSJNNzguMyAxNjkuNzQ2YTY2LjUgNjYuNSAwIDAwLjkyOCAxLjQ3MiIvPjxwYXRoIHN0cm9rZT0iaHNsKDI4LCAxMDAlLCA1MCUpIiBkPSJNNzcuNzAyIDE2OC43NTFhNjYuNSA2Ni41IDAgMDAuOTAzIDEuNDg5Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjksIDEwMCUsIDUwJSkiIGQ9Ik03Ny4xMjEgMTY3Ljc0NmE2Ni41IDY2LjUgMCAwMC44NzcgMS41MDQiLz48cGF0aCBzdHJva2U9ImhzbCgzMCwgMTAwJSwgNTAlKSIgZD0iTTc2LjU1OSAxNjYuNzMxYTY2LjUgNjYuNSAwIDAwLjg1IDEuNTE5Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzEsIDEwMCUsIDUwJSkiIGQ9Ik03Ni4wMTQgMTY1LjcwNmE2Ni41IDY2LjUgMCAwMC44MjQgMS41MzQiLz48cGF0aCBzdHJva2U9ImhzbCgzMiwgMTAwJSwgNTAlKSIgZD0iTTc1LjQ4NyAxNjQuNjcyYTY2LjUgNjYuNSAwIDAwLjc5NyAxLjU0OCIvPjxwYXRoIHN0cm9rZT0iaHNsKDMzLCAxMDAlLCA1MCUpIiBkPSJNNzQuOTc4IDE2My42MjlhNjYuNSA2Ni41IDAgMDAuNzcgMS41NjEiLz48cGF0aCBzdHJva2U9ImhzbCgzNCwgMTAwJSwgNTAlKSIgZD0iTTc0LjQ4OCAxNjIuNTc3YTY2LjUgNjYuNSAwIDAwLjc0MiAxLjU3NSIvPjxwYXRoIHN0cm9rZT0iaHNsKDM1LCAxMDAlLCA1MCUpIiBkPSJNNzQuMDE2IDE2MS41MTdhNjYuNSA2Ni41IDAgMDAuNzE1IDEuNTg3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzYsIDEwMCUsIDUwJSkiIGQ9Ik03My41NjIgMTYwLjQ0OGE2Ni41IDY2LjUgMCAwMC42ODcgMS42Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzcsIDEwMCUsIDUwJSkiIGQ9Ik03My4xMjcgMTU5LjM3MmE2Ni41IDY2LjUgMCAwMC42NiAxLjYxMiIvPjxwYXRoIHN0cm9rZT0iaHNsKDM4LCAxMDAlLCA1MCUpIiBkPSJNNzIuNzExIDE1OC4yODlhNjYuNSA2Ni41IDAgMDAuNjMxIDEuNjIyIi8+PHBhdGggc3Ryb2tlPSJoc2woMzksIDEwMCUsIDUwJSkiIGQ9Ik03Mi4zMTQgMTU3LjE5OGE2Ni41IDY2LjUgMCAwMC42MDMgMS42MzMiLz48cGF0aCBzdHJva2U9ImhzbCg0MCwgMTAwJSwgNTAlKSIgZD0iTTcxLjkzNiAxNTYuMWE2Ni41IDY2LjUgMCAwMC41NzQgMS42NDQiLz48cGF0aCBzdHJva2U9ImhzbCg0MSwgMTAwJSwgNTAlKSIgZD0iTTcxLjU3OCAxNTQuOTk3YTY2LjUgNjYuNSAwIDAwLjU0NSAxLjY1MyIvPjxwYXRoIHN0cm9rZT0iaHNsKDQyLCAxMDAlLCA1MCUpIiBkPSJNNzEuMjM4IDE1My44ODdhNjYuNSA2Ni41IDAgMDAuNTE3IDEuNjYzIi8+PHBhdGggc3Ryb2tlPSJoc2woNDMsIDEwMCUsIDUwJSkiIGQ9Ik03MC45MTkgMTUyLjc3MWE2Ni41IDY2LjUgMCAwMC40ODcgMS42NzIiLz48cGF0aCBzdHJva2U9ImhzbCg0NCwgMTAwJSwgNTAlKSIgZD0iTTcwLjYxOCAxNTEuNjVhNjYuNSA2Ni41IDAgMDAuNDU4IDEuNjgiLz48cGF0aCBzdHJva2U9ImhzbCg0NSwgMTAwJSwgNTAlKSIgZD0iTTcwLjMzNyAxNTAuNTI0YTY2LjUgNjYuNSAwIDAwLjQyOSAxLjY4NyIvPjxwYXRoIHN0cm9rZT0iaHNsKDQ2LCAxMDAlLCA1MCUpIiBkPSJNNzAuMDc2IDE0OS4zOTNhNjYuNSA2Ni41IDAgMDAuNCAxLjY5NSIvPjxwYXRoIHN0cm9rZT0iaHNsKDQ3LCAxMDAlLCA1MCUpIiBkPSJNNjkuODM1IDE0OC4yNThhNjYuNSA2Ni41IDAgMDAuMzcgMS43MDEiLz48cGF0aCBzdHJva2U9ImhzbCg0OCwgMTAwJSwgNTAlKSIgZD0iTTY5LjYxNCAxNDcuMTE5YTY2LjUgNjYuNSAwIDAwLjM0IDEuNzA3Ii8+PHBhdGggc3Ryb2tlPSJoc2woNDksIDEwMCUsIDUwJSkiIGQ9Ik02OS40MTIgMTQ1Ljk3NmE2Ni41IDY2LjUgMCAwMC4zMSAxLjcxMyIvPjxwYXRoIHN0cm9rZT0iaHNsKDUwLCAxMDAlLCA1MCUpIiBkPSJNNjkuMjMgMTQ0LjgzYTY2LjUgNjYuNSAwIDAwLjI4IDEuNzE4Ii8+PHBhdGggc3Ryb2tlPSJoc2woNTEsIDEwMCUsIDUwJSkiIGQ9Ik02OS4wNjkgMTQzLjY4YTY2LjUgNjYuNSAwIDAwLjI1IDEuNzIzIi8+PHBhdGggc3Ryb2tlPSJoc2woNTIsIDEwMCUsIDUwJSkiIGQ9Ik02OC45MjcgMTQyLjUyOGE2Ni41IDY2LjUgMCAwMC4yMiAxLjcyNyIvPjxwYXRoIHN0cm9rZT0iaHNsKDUzLCAxMDAlLCA1MCUpIiBkPSJNNjguODA2IDE0MS4zNzRhNjYuNSA2Ni41IDAgMDAuMTkgMS43MyIvPjxwYXRoIHN0cm9rZT0iaHNsKDU0LCAxMDAlLCA1MCUpIiBkPSJNNjguNzA1IDE0MC4yMThhNjYuNSA2Ni41IDAgMDAuMTYgMS43MzMiLz48cGF0aCBzdHJva2U9ImhzbCg1NSwgMTAwJSwgNTAlKSIgZD0iTTY4LjYyNCAxMzkuMDZhNjYuNSA2Ni41IDAgMDAuMTMgMS43MzYiLz48cGF0aCBzdHJva2U9ImhzbCg1NiwgMTAwJSwgNTAlKSIgZD0iTTY4LjU2MyAxMzcuOWE2Ni41IDY2LjUgMCAwMC4wOTkgMS43MzkiLz48cGF0aCBzdHJva2U9ImhzbCg1NywgMTAwJSwgNTAlKSIgZD0iTTY4LjUyMyAxMzYuNzRhNjYuNSA2Ni41IDAgMDAuMDY4IDEuNzQiLz48cGF0aCBzdHJva2U9ImhzbCg1OCwgMTAwJSwgNTAlKSIgZD0iTTY4LjUwMyAxMzUuNThhNjYuNSA2Ni41IDAgMDAuMDM4IDEuNzQiLz48cGF0aCBzdHJva2U9ImhzbCg1OSwgMTAwJSwgNTAlKSIgZD0iTTY4LjUwMyAxMzQuNDJhNjYuNSA2Ni41IDAgMDAuMDA3IDEuNzQiLz48cGF0aCBzdHJva2U9ImhzbCg2MCwgMTAwJSwgNTAlKSIgZD0iTTY4LjUyMyAxMzMuMjZBNjYuNSA2Ni41IDAgMDA2OC41IDEzNSIvPjxwYXRoIHN0cm9rZT0iaHNsKDYxLCAxMDAlLCA1MCUpIiBkPSJNNjguNTYzIDEzMi4xYTY2LjUgNjYuNSAwIDAwLS4wNTMgMS43NCIvPjxwYXRoIHN0cm9rZT0iaHNsKDYyLCAxMDAlLCA1MCUpIiBkPSJNNjguNjI0IDEzMC45NGE2Ni41IDY2LjUgMCAwMC0uMDgzIDEuNzQiLz48cGF0aCBzdHJva2U9ImhzbCg2MywgMTAwJSwgNTAlKSIgZD0iTTY4LjcwNSAxMjkuNzgyYTY2LjUgNjYuNSAwIDAwLS4xMTQgMS43MzgiLz48cGF0aCBzdHJva2U9ImhzbCg2NCwgMTAwJSwgNTAlKSIgZD0iTTY4LjgwNiAxMjguNjI2YTY2LjUgNjYuNSAwIDAwLS4xNDQgMS43MzUiLz48cGF0aCBzdHJva2U9ImhzbCg2NSwgMTAwJSwgNTAlKSIgZD0iTTY4LjkyNyAxMjcuNDcyYTY2LjUgNjYuNSAwIDAwLS4xNzQgMS43MzIiLz48cGF0aCBzdHJva2U9ImhzbCg2NiwgMTAwJSwgNTAlKSIgZD0iTTY5LjA2OSAxMjYuMzJhNjYuNSA2Ni41IDAgMDAtLjIwNSAxLjcyOSIvPjxwYXRoIHN0cm9rZT0iaHNsKDY3LCAxMDAlLCA1MCUpIiBkPSJNNjkuMjMgMTI1LjE3YTY2LjUgNjYuNSAwIDAwLS4yMzQgMS43MjYiLz48cGF0aCBzdHJva2U9ImhzbCg2OCwgMTAwJSwgNTAlKSIgZD0iTTY5LjQxMiAxMjQuMDI0YTY2LjUgNjYuNSAwIDAwLS4yNjUgMS43MjEiLz48cGF0aCBzdHJva2U9ImhzbCg2OSwgMTAwJSwgNTAlKSIgZD0iTTY5LjYxNCAxMjIuODgxYTY2LjUgNjYuNSAwIDAwLS4yOTUgMS43MTYiLz48cGF0aCBzdHJva2U9ImhzbCg3MCwgMTAwJSwgNTAlKSIgZD0iTTY5LjgzNSAxMjEuNzQyYTY2LjUgNjYuNSAwIDAwLS4zMjUgMS43MSIvPjxwYXRoIHN0cm9rZT0iaHNsKDcxLCAxMDAlLCA1MCUpIiBkPSJNNzAuMDc2IDEyMC42MDdhNjYuNSA2Ni41IDAgMDAtLjM1NCAxLjcwNCIvPjxwYXRoIHN0cm9rZT0iaHNsKDcyLCAxMDAlLCA1MCUpIiBkPSJNNzAuMzM3IDExOS40NzZhNjYuNSA2Ni41IDAgMDAtLjM4NCAxLjY5OCIvPjxwYXRoIHN0cm9rZT0iaHNsKDczLCAxMDAlLCA1MCUpIiBkPSJNNzAuNjE4IDExOC4zNWE2Ni41IDY2LjUgMCAwMC0uNDE0IDEuNjkiLz48cGF0aCBzdHJva2U9ImhzbCg3NCwgMTAwJSwgNTAlKSIgZD0iTTcwLjkxOSAxMTcuMjI5YTY2LjUgNjYuNSAwIDAwLS40NDQgMS42ODMiLz48cGF0aCBzdHJva2U9ImhzbCg3NSwgMTAwJSwgNTAlKSIgZD0iTTcxLjIzOCAxMTYuMTEzYTY2LjUgNjYuNSAwIDAwLS40NzIgMS42NzYiLz48cGF0aCBzdHJva2U9ImhzbCg3NiwgMTAwJSwgNTAlKSIgZD0iTTcxLjU3OCAxMTUuMDAzYTY2LjUgNjYuNSAwIDAwLS41MDIgMS42NjciLz48cGF0aCBzdHJva2U9ImhzbCg3NywgMTAwJSwgNTAlKSIgZD0iTTcxLjkzNiAxMTMuOWE2Ni41IDY2LjUgMCAwMC0uNTMgMS42NTciLz48cGF0aCBzdHJva2U9ImhzbCg3OCwgMTAwJSwgNTAlKSIgZD0iTTcyLjMxNCAxMTIuODAyYTY2LjUgNjYuNSAwIDAwLS41NiAxLjY0OCIvPjxwYXRoIHN0cm9rZT0iaHNsKDc5LCAxMDAlLCA1MCUpIiBkPSJNNzIuNzExIDExMS43MTFhNjYuNSA2Ni41IDAgMDAtLjU4OCAxLjYzOSIvPjxwYXRoIHN0cm9rZT0iaHNsKDgwLCAxMDAlLCA1MCUpIiBkPSJNNzMuMTI3IDExMC42MjhhNjYuNSA2Ni41IDAgMDAtLjYxNyAxLjYyOCIvPjxwYXRoIHN0cm9rZT0iaHNsKDgxLCAxMDAlLCA1MCUpIiBkPSJNNzMuNTYyIDEwOS41NTJhNjYuNSA2Ni41IDAgMDAtLjY0NSAxLjYxNyIvPjxwYXRoIHN0cm9rZT0iaHNsKDgyLCAxMDAlLCA1MCUpIiBkPSJNNzQuMDE2IDEwOC40ODNhNjYuNSA2Ni41IDAgMDAtLjY3NCAxLjYwNiIvPjxwYXRoIHN0cm9rZT0iaHNsKDgzLCAxMDAlLCA1MCUpIiBkPSJNNzQuNDg4IDEwNy40MjNhNjYuNSA2Ni41IDAgMDAtLjcwMiAxLjU5MyIvPjxwYXRoIHN0cm9rZT0iaHNsKDg0LCAxMDAlLCA1MCUpIiBkPSJNNzQuOTc4IDEwNi4zNzFhNjYuNSA2Ni41IDAgMDAtLjcyOSAxLjU4MSIvPjxwYXRoIHN0cm9rZT0iaHNsKDg1LCAxMDAlLCA1MCUpIiBkPSJNNzUuNDg3IDEwNS4zMjhhNjYuNSA2Ni41IDAgMDAtLjc1NiAxLjU2OCIvPjxwYXRoIHN0cm9rZT0iaHNsKDg2LCAxMDAlLCA1MCUpIiBkPSJNNzYuMDE0IDEwNC4yOTRhNjYuNSA2Ni41IDAgMDAtLjc4NCAxLjU1NCIvPjxwYXRoIHN0cm9rZT0iaHNsKDg3LCAxMDAlLCA1MCUpIiBkPSJNNzYuNTU5IDEwMy4yNjlhNjYuNSA2Ni41IDAgMDAtLjgxIDEuNTQiLz48cGF0aCBzdHJva2U9ImhzbCg4OCwgMTAwJSwgNTAlKSIgZD0iTTc3LjEyMSAxMDIuMjU0YTY2LjUgNjYuNSAwIDAwLS44MzcgMS41MjYiLz48cGF0aCBzdHJva2U9ImhzbCg4OSwgMTAwJSwgNTAlKSIgZD0iTTc3LjcwMiAxMDEuMjQ5YTY2LjUgNjYuNSAwIDAwLS44NjQgMS41MTEiLz48cGF0aCBzdHJva2U9ImhzbCg5MCwgMTAwJSwgNTAlKSIgZD0iTTc4LjMgMTAwLjI1NGE2Ni41IDY2LjUgMCAwMC0uODkgMS40OTYiLz48cGF0aCBzdHJva2U9ImhzbCg5MSwgMTAwJSwgNTAlKSIgZD0iTTc4LjkxNCA5OS4yN2E2Ni41IDY2LjUgMCAwMC0uOTE2IDEuNDgiLz48cGF0aCBzdHJva2U9ImhzbCg5MiwgMTAwJSwgNTAlKSIgZD0iTTc5LjU0NyA5OC4yOTZhNjYuNSA2Ni41IDAgMDAtLjk0MiAxLjQ2NCIvPjxwYXRoIHN0cm9rZT0iaHNsKDkzLCAxMDAlLCA1MCUpIiBkPSJNODAuMTk2IDk3LjMzNGE2Ni41IDY2LjUgMCAwMC0uOTY4IDEuNDQ4Ii8+PHBhdGggc3Ryb2tlPSJoc2woOTQsIDEwMCUsIDUwJSkiIGQ9Ik04MC44NjEgOTYuMzgzYTY2LjUgNjYuNSAwIDAwLS45OTIgMS40MyIvPjxwYXRoIHN0cm9rZT0iaHNsKDk1LCAxMDAlLCA1MCUpIiBkPSJNODEuNTQ0IDk1LjQ0NGE2Ni41IDY2LjUgMCAwMC0xLjAxOCAxLjQxMyIvPjxwYXRoIHN0cm9rZT0iaHNsKDk2LCAxMDAlLCA1MCUpIiBkPSJNODIuMjQyIDk0LjUxN2E2Ni41IDY2LjUgMCAwMC0xLjA0MiAxLjM5NSIvPjxwYXRoIHN0cm9rZT0iaHNsKDk3LCAxMDAlLCA1MCUpIiBkPSJNODIuOTU3IDkzLjYwM2E2Ni41IDY2LjUgMCAwMC0xLjA2NiAxLjM3NiIvPjxwYXRoIHN0cm9rZT0iaHNsKDk4LCAxMDAlLCA1MCUpIiBkPSJNODMuNjg3IDkyLjdhNjYuNSA2Ni41IDAgMDAtMS4wOSAxLjM1OSIvPjxwYXRoIHN0cm9rZT0iaHNsKDk5LCAxMDAlLCA1MCUpIiBkPSJNODQuNDMzIDkxLjgxMmE2Ni41IDY2LjUgMCAwMC0xLjExMyAxLjMzOCIvPjxwYXRoIHN0cm9rZT0iaHNsKDEwMCwgMTAwJSwgNTAlKSIgZD0iTTg1LjE5NCA5MC45MzZhNjYuNSA2Ni41IDAgMDAtMS4xMzYgMS4zMTkiLz48cGF0aCBzdHJva2U9ImhzbCgxMDEsIDEwMCUsIDUwJSkiIGQ9Ik04NS45NzEgOTAuMDczYTY2LjUgNjYuNSAwIDAwLTEuMTYgMS4zIi8+PHBhdGggc3Ryb2tlPSJoc2woMTAyLCAxMDAlLCA1MCUpIiBkPSJNODYuNzYzIDg5LjIyNGE2Ni41IDY2LjUgMCAwMC0xLjE4MiAxLjI3OSIvPjxwYXRoIHN0cm9rZT0iaHNsKDEwMywgMTAwJSwgNTAlKSIgZD0iTTg3LjU2OSA4OC4zOWE2Ni41IDY2LjUgMCAwMC0xLjIwNCAxLjI1NyIvPjxwYXRoIHN0cm9rZT0iaHNsKDEwNCwgMTAwJSwgNTAlKSIgZD0iTTg4LjM5IDg3LjU2OWE2Ni41IDY2LjUgMCAwMC0xLjIyNiAxLjIzNiIvPjxwYXRoIHN0cm9rZT0iaHNsKDEwNSwgMTAwJSwgNTAlKSIgZD0iTTg5LjIyNCA4Ni43NjNhNjYuNSA2Ni41IDAgMDAtMS4yNDcgMS4yMTQiLz48cGF0aCBzdHJva2U9ImhzbCgxMDYsIDEwMCUsIDUwJSkiIGQ9Ik05MC4wNzMgODUuOTcxYTY2LjUgNjYuNSAwIDAwLTEuMjY4IDEuMTkzIi8+PHBhdGggc3Ryb2tlPSJoc2woMTA3LCAxMDAlLCA1MCUpIiBkPSJNOTAuOTM2IDg1LjE5NGE2Ni41IDY2LjUgMCAwMC0xLjI4OSAxLjE3MSIvPjxwYXRoIHN0cm9rZT0iaHNsKDEwOCwgMTAwJSwgNTAlKSIgZD0iTTkxLjgxMiA4NC40MzNhNjYuNSA2Ni41IDAgMDAtMS4zMSAxLjE0OCIvPjxwYXRoIHN0cm9rZT0iaHNsKDEwOSwgMTAwJSwgNTAlKSIgZD0iTTkyLjcgODMuNjg3YTY2LjUgNjYuNSAwIDAwLTEuMzI4IDEuMTI1Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTEwLCAxMDAlLCA1MCUpIiBkPSJNOTMuNjAzIDgyLjk1N2E2Ni41IDY2LjUgMCAwMC0xLjM0OCAxLjEwMSIvPjxwYXRoIHN0cm9rZT0iaHNsKDExMSwgMTAwJSwgNTAlKSIgZD0iTTk0LjUxNyA4Mi4yNDJhNjYuNSA2Ni41IDAgMDAtMS4zNjcgMS4wNzgiLz48cGF0aCBzdHJva2U9ImhzbCgxMTIsIDEwMCUsIDUwJSkiIGQ9Ik05NS40NDQgODEuNTQ0YTY2LjUgNjYuNSAwIDAwLTEuMzg1IDEuMDUzIi8+PHBhdGggc3Ryb2tlPSJoc2woMTEzLCAxMDAlLCA1MCUpIiBkPSJNOTYuMzgzIDgwLjg2MWE2Ni41IDY2LjUgMCAwMC0xLjQwNCAxLjAzIi8+PHBhdGggc3Ryb2tlPSJoc2woMTE0LCAxMDAlLCA1MCUpIiBkPSJNOTcuMzM0IDgwLjE5NmE2Ni41IDY2LjUgMCAwMC0xLjQyMiAxLjAwNCIvPjxwYXRoIHN0cm9rZT0iaHNsKDExNSwgMTAwJSwgNTAlKSIgZD0iTTk4LjI5NiA3OS41NDdhNjYuNSA2Ni41IDAgMDAtMS40MzkuOTgiLz48cGF0aCBzdHJva2U9ImhzbCgxMTYsIDEwMCUsIDUwJSkiIGQ9Ik05OS4yNyA3OC45MTRhNjYuNSA2Ni41IDAgMDAtMS40NTYuOTU1Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTE3LCAxMDAlLCA1MCUpIiBkPSJNMTAwLjI1NCA3OC4zYTY2LjUgNjYuNSAwIDAwLTEuNDcyLjkyOCIvPjxwYXRoIHN0cm9rZT0iaHNsKDExOCwgMTAwJSwgNTAlKSIgZD0iTTEwMS4yNDkgNzcuNzAyYTY2LjUgNjYuNSAwIDAwLTEuNDg5LjkwMyIvPjxwYXRoIHN0cm9rZT0iaHNsKDExOSwgMTAwJSwgNTAlKSIgZD0iTTEwMi4yNTQgNzcuMTIxYTY2LjUgNjYuNSAwIDAwLTEuNTA0Ljg3NyIvPjxwYXRoIHN0cm9rZT0iaHNsKDEyMCwgMTAwJSwgNTAlKSIgZD0iTTEwMy4yNjkgNzYuNTU5YTY2LjUgNjYuNSAwIDAwLTEuNTE5Ljg1Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTIxLCAxMDAlLCA1MCUpIiBkPSJNMTA0LjI5NCA3Ni4wMTRhNjYuNSA2Ni41IDAgMDAtMS41MzQuODI0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTIyLCAxMDAlLCA1MCUpIiBkPSJNMTA1LjMyOCA3NS40ODdhNjYuNSA2Ni41IDAgMDAtMS41NDguNzk3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTIzLCAxMDAlLCA1MCUpIiBkPSJNMTA2LjM3MSA3NC45NzhhNjYuNSA2Ni41IDAgMDAtMS41NjEuNzciLz48cGF0aCBzdHJva2U9ImhzbCgxMjQsIDEwMCUsIDUwJSkiIGQ9Ik0xMDcuNDIzIDc0LjQ4OGE2Ni41IDY2LjUgMCAwMC0xLjU3NS43NDIiLz48cGF0aCBzdHJva2U9ImhzbCgxMjUsIDEwMCUsIDUwJSkiIGQ9Ik0xMDguNDgzIDc0LjAxNmE2Ni41IDY2LjUgMCAwMC0xLjU4Ny43MTUiLz48cGF0aCBzdHJva2U9ImhzbCgxMjYsIDEwMCUsIDUwJSkiIGQ9Ik0xMDkuNTUyIDczLjU2MmE2Ni41IDY2LjUgMCAwMC0xLjYuNjg3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTI3LCAxMDAlLCA1MCUpIiBkPSJNMTEwLjYyOCA3My4xMjdhNjYuNSA2Ni41IDAgMDAtMS42MTIuNjYiLz48cGF0aCBzdHJva2U9ImhzbCgxMjgsIDEwMCUsIDUwJSkiIGQ9Ik0xMTEuNzExIDcyLjcxMWE2Ni41IDY2LjUgMCAwMC0xLjYyMi42MzEiLz48cGF0aCBzdHJva2U9ImhzbCgxMjksIDEwMCUsIDUwJSkiIGQ9Ik0xMTIuODAyIDcyLjMxNGE2Ni41IDY2LjUgMCAwMC0xLjYzMy42MDMiLz48cGF0aCBzdHJva2U9ImhzbCgxMzAsIDEwMCUsIDUwJSkiIGQ9Ik0xMTMuOSA3MS45MzZhNjYuNSA2Ni41IDAgMDAtMS42NDQuNTc0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTMxLCAxMDAlLCA1MCUpIiBkPSJNMTE1LjAwMyA3MS41NzhhNjYuNSA2Ni41IDAgMDAtMS42NTMuNTQ1Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTMyLCAxMDAlLCA1MCUpIiBkPSJNMTE2LjExMyA3MS4yMzhhNjYuNSA2Ni41IDAgMDAtMS42NjMuNTE3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTMzLCAxMDAlLCA1MCUpIiBkPSJNMTE3LjIyOSA3MC45MTlhNjYuNSA2Ni41IDAgMDAtMS42NzIuNDg3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTM0LCAxMDAlLCA1MCUpIiBkPSJNMTE4LjM1IDcwLjYxOGE2Ni41IDY2LjUgMCAwMC0xLjY4LjQ1OCIvPjxwYXRoIHN0cm9rZT0iaHNsKDEzNSwgMTAwJSwgNTAlKSIgZD0iTTExOS40NzYgNzAuMzM3YTY2LjUgNjYuNSAwIDAwLTEuNjg3LjQyOSIvPjxwYXRoIHN0cm9rZT0iaHNsKDEzNiwgMTAwJSwgNTAlKSIgZD0iTTEyMC42MDcgNzAuMDc2YTY2LjUgNjYuNSAwIDAwLTEuNjk1LjQiLz48cGF0aCBzdHJva2U9ImhzbCgxMzcsIDEwMCUsIDUwJSkiIGQ9Ik0xMjEuNzQyIDY5LjgzNWE2Ni41IDY2LjUgMCAwMC0xLjcwMS4zNyIvPjxwYXRoIHN0cm9rZT0iaHNsKDEzOCwgMTAwJSwgNTAlKSIgZD0iTTEyMi44ODEgNjkuNjE0YTY2LjUgNjYuNSAwIDAwLTEuNzA3LjM0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTM5LCAxMDAlLCA1MCUpIiBkPSJNMTI0LjAyNCA2OS40MTJhNjYuNSA2Ni41IDAgMDAtMS43MTMuMzEiLz48cGF0aCBzdHJva2U9ImhzbCgxNDAsIDEwMCUsIDUwJSkiIGQ9Ik0xMjUuMTcgNjkuMjNhNjYuNSA2Ni41IDAgMDAtMS43MTguMjgiLz48cGF0aCBzdHJva2U9ImhzbCgxNDEsIDEwMCUsIDUwJSkiIGQ9Ik0xMjYuMzIgNjkuMDY5YTY2LjUgNjYuNSAwIDAwLTEuNzIzLjI1Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTQyLCAxMDAlLCA1MCUpIiBkPSJNMTI3LjQ3MiA2OC45MjdhNjYuNSA2Ni41IDAgMDAtMS43MjcuMjIiLz48cGF0aCBzdHJva2U9ImhzbCgxNDMsIDEwMCUsIDUwJSkiIGQ9Ik0xMjguNjI2IDY4LjgwNmE2Ni41IDY2LjUgMCAwMC0xLjczLjE5Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTQ0LCAxMDAlLCA1MCUpIiBkPSJNMTI5Ljc4MiA2OC43MDVhNjYuNSA2Ni41IDAgMDAtMS43MzMuMTYiLz48cGF0aCBzdHJva2U9ImhzbCgxNDUsIDEwMCUsIDUwJSkiIGQ9Ik0xMzAuOTQgNjguNjI0YTY2LjUgNjYuNSAwIDAwLTEuNzM2LjEzIi8+PHBhdGggc3Ryb2tlPSJoc2woMTQ2LCAxMDAlLCA1MCUpIiBkPSJNMTMyLjEgNjguNTYzYTY2LjUgNjYuNSAwIDAwLTEuNzM5LjA5OSIvPjxwYXRoIHN0cm9rZT0iaHNsKDE0NywgMTAwJSwgNTAlKSIgZD0iTTEzMy4yNiA2OC41MjNhNjYuNSA2Ni41IDAgMDAtMS43NC4wNjgiLz48cGF0aCBzdHJva2U9ImhzbCgxNDgsIDEwMCUsIDUwJSkiIGQ9Ik0xMzQuNDIgNjguNTAzYTY2LjUgNjYuNSAwIDAwLTEuNzQuMDM4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTQ5LCAxMDAlLCA1MCUpIiBkPSJNMTM1LjU4IDY4LjUwM2E2Ni41IDY2LjUgMCAwMC0xLjc0LjAwNyIvPjxwYXRoIHN0cm9rZT0iaHNsKDE1MCwgMTAwJSwgNTAlKSIgZD0iTTEzNi43NCA2OC41MjNBNjYuNSA2Ni41IDAgMDAxMzUgNjguNSIvPjxwYXRoIHN0cm9rZT0iaHNsKDE1MSwgMTAwJSwgNTAlKSIgZD0iTTEzNy45IDY4LjU2M2E2Ni41IDY2LjUgMCAwMC0xLjc0LS4wNTMiLz48cGF0aCBzdHJva2U9ImhzbCgxNTIsIDEwMCUsIDUwJSkiIGQ9Ik0xMzkuMDYgNjguNjI0YTY2LjUgNjYuNSAwIDAwLTEuNzQtLjA4MyIvPjxwYXRoIHN0cm9rZT0iaHNsKDE1MywgMTAwJSwgNTAlKSIgZD0iTTE0MC4yMTggNjguNzA1YTY2LjUgNjYuNSAwIDAwLTEuNzM4LS4xMTQiLz48cGF0aCBzdHJva2U9ImhzbCgxNTQsIDEwMCUsIDUwJSkiIGQ9Ik0xNDEuMzc0IDY4LjgwNmE2Ni41IDY2LjUgMCAwMC0xLjczNS0uMTQ0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTU1LCAxMDAlLCA1MCUpIiBkPSJNMTQyLjUyOCA2OC45MjdhNjYuNSA2Ni41IDAgMDAtMS43MzItLjE3NCIvPjxwYXRoIHN0cm9rZT0iaHNsKDE1NiwgMTAwJSwgNTAlKSIgZD0iTTE0My42OCA2OS4wNjlhNjYuNSA2Ni41IDAgMDAtMS43MjktLjIwNSIvPjxwYXRoIHN0cm9rZT0iaHNsKDE1NywgMTAwJSwgNTAlKSIgZD0iTTE0NC44MyA2OS4yM2E2Ni41IDY2LjUgMCAwMC0xLjcyNi0uMjM0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTU4LCAxMDAlLCA1MCUpIiBkPSJNMTQ1Ljk3NiA2OS40MTJhNjYuNSA2Ni41IDAgMDAtMS43MjEtLjI2NSIvPjxwYXRoIHN0cm9rZT0iaHNsKDE1OSwgMTAwJSwgNTAlKSIgZD0iTTE0Ny4xMTkgNjkuNjE0YTY2LjUgNjYuNSAwIDAwLTEuNzE2LS4yOTUiLz48cGF0aCBzdHJva2U9ImhzbCgxNjAsIDEwMCUsIDUwJSkiIGQ9Ik0xNDguMjU4IDY5LjgzNWE2Ni41IDY2LjUgMCAwMC0xLjcxLS4zMjUiLz48cGF0aCBzdHJva2U9ImhzbCgxNjEsIDEwMCUsIDUwJSkiIGQ9Ik0xNDkuMzkzIDcwLjA3NmE2Ni41IDY2LjUgMCAwMC0xLjcwNC0uMzU0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTYyLCAxMDAlLCA1MCUpIiBkPSJNMTUwLjUyNCA3MC4zMzdhNjYuNSA2Ni41IDAgMDAtMS42OTgtLjM4NCIvPjxwYXRoIHN0cm9rZT0iaHNsKDE2MywgMTAwJSwgNTAlKSIgZD0iTTE1MS42NSA3MC42MThhNjYuNSA2Ni41IDAgMDAtMS42OS0uNDE0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTY0LCAxMDAlLCA1MCUpIiBkPSJNMTUyLjc3MSA3MC45MTlhNjYuNSA2Ni41IDAgMDAtMS42ODMtLjQ0NCIvPjxwYXRoIHN0cm9rZT0iaHNsKDE2NSwgMTAwJSwgNTAlKSIgZD0iTTE1My44ODcgNzEuMjM4YTY2LjUgNjYuNSAwIDAwLTEuNjc2LS40NzIiLz48cGF0aCBzdHJva2U9ImhzbCgxNjYsIDEwMCUsIDUwJSkiIGQ9Ik0xNTQuOTk3IDcxLjU3OGE2Ni41IDY2LjUgMCAwMC0xLjY2Ny0uNTAyIi8+PHBhdGggc3Ryb2tlPSJoc2woMTY3LCAxMDAlLCA1MCUpIiBkPSJNMTU2LjEgNzEuOTM2YTY2LjUgNjYuNSAwIDAwLTEuNjU3LS41MyIvPjxwYXRoIHN0cm9rZT0iaHNsKDE2OCwgMTAwJSwgNTAlKSIgZD0iTTE1Ny4xOTggNzIuMzE0YTY2LjUgNjYuNSAwIDAwLTEuNjQ4LS41NiIvPjxwYXRoIHN0cm9rZT0iaHNsKDE2OSwgMTAwJSwgNTAlKSIgZD0iTTE1OC4yODkgNzIuNzExYTY2LjUgNjYuNSAwIDAwLTEuNjM5LS41ODgiLz48cGF0aCBzdHJva2U9ImhzbCgxNzAsIDEwMCUsIDUwJSkiIGQ9Ik0xNTkuMzcyIDczLjEyN2E2Ni41IDY2LjUgMCAwMC0xLjYyOC0uNjE3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTcxLCAxMDAlLCA1MCUpIiBkPSJNMTYwLjQ0OCA3My41NjJhNjYuNSA2Ni41IDAgMDAtMS42MTctLjY0NSIvPjxwYXRoIHN0cm9rZT0iaHNsKDE3MiwgMTAwJSwgNTAlKSIgZD0iTTE2MS41MTcgNzQuMDE2YTY2LjUgNjYuNSAwIDAwLTEuNjA2LS42NzQiLz48cGF0aCBzdHJva2U9ImhzbCgxNzMsIDEwMCUsIDUwJSkiIGQ9Ik0xNjIuNTc3IDc0LjQ4OGE2Ni41IDY2LjUgMCAwMC0xLjU5My0uNzAyIi8+PHBhdGggc3Ryb2tlPSJoc2woMTc0LCAxMDAlLCA1MCUpIiBkPSJNMTYzLjYyOSA3NC45NzhhNjYuNSA2Ni41IDAgMDAtMS41ODEtLjcyOSIvPjxwYXRoIHN0cm9rZT0iaHNsKDE3NSwgMTAwJSwgNTAlKSIgZD0iTTE2NC42NzIgNzUuNDg3YTY2LjUgNjYuNSAwIDAwLTEuNTY4LS43NTYiLz48cGF0aCBzdHJva2U9ImhzbCgxNzYsIDEwMCUsIDUwJSkiIGQ9Ik0xNjUuNzA2IDc2LjAxNGE2Ni41IDY2LjUgMCAwMC0xLjU1NC0uNzg0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTc3LCAxMDAlLCA1MCUpIiBkPSJNMTY2LjczMSA3Ni41NTlhNjYuNSA2Ni41IDAgMDAtMS41NC0uODEiLz48cGF0aCBzdHJva2U9ImhzbCgxNzgsIDEwMCUsIDUwJSkiIGQ9Ik0xNjcuNzQ2IDc3LjEyMWE2Ni41IDY2LjUgMCAwMC0xLjUyNi0uODM3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTc5LCAxMDAlLCA1MCUpIiBkPSJNMTY4Ljc1MSA3Ny43MDJhNjYuNSA2Ni41IDAgMDAtMS41MTEtLjg2NCIvPjxwYXRoIHN0cm9rZT0iaHNsKDE4MCwgMTAwJSwgNTAlKSIgZD0iTTE2OS43NDYgNzguM2E2Ni41IDY2LjUgMCAwMC0xLjQ5Ni0uODkiLz48cGF0aCBzdHJva2U9ImhzbCgxODEsIDEwMCUsIDUwJSkiIGQ9Ik0xNzAuNzMgNzguOTE0YTY2LjUgNjYuNSAwIDAwLTEuNDgtLjkxNiIvPjxwYXRoIHN0cm9rZT0iaHNsKDE4MiwgMTAwJSwgNTAlKSIgZD0iTTE3MS43MDQgNzkuNTQ3YTY2LjUgNjYuNSAwIDAwLTEuNDY0LS45NDIiLz48cGF0aCBzdHJva2U9ImhzbCgxODMsIDEwMCUsIDUwJSkiIGQ9Ik0xNzIuNjY2IDgwLjE5NmE2Ni41IDY2LjUgMCAwMC0xLjQ0OC0uOTY4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTg0LCAxMDAlLCA1MCUpIiBkPSJNMTczLjYxNyA4MC44NjFhNjYuNSA2Ni41IDAgMDAtMS40My0uOTkyIi8+PHBhdGggc3Ryb2tlPSJoc2woMTg1LCAxMDAlLCA1MCUpIiBkPSJNMTc0LjU1NiA4MS41NDRhNjYuNSA2Ni41IDAgMDAtMS40MTMtMS4wMTgiLz48cGF0aCBzdHJva2U9ImhzbCgxODYsIDEwMCUsIDUwJSkiIGQ9Ik0xNzUuNDgzIDgyLjI0MmE2Ni41IDY2LjUgMCAwMC0xLjM5NS0xLjA0MiIvPjxwYXRoIHN0cm9rZT0iaHNsKDE4NywgMTAwJSwgNTAlKSIgZD0iTTE3Ni4zOTcgODIuOTU3YTY2LjUgNjYuNSAwIDAwLTEuMzc2LTEuMDY2Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTg4LCAxMDAlLCA1MCUpIiBkPSJNMTc3LjMgODMuNjg3YTY2LjUgNjYuNSAwIDAwLTEuMzU5LTEuMDkiLz48cGF0aCBzdHJva2U9ImhzbCgxODksIDEwMCUsIDUwJSkiIGQ9Ik0xNzguMTg4IDg0LjQzM2E2Ni41IDY2LjUgMCAwMC0xLjMzOC0xLjExMyIvPjxwYXRoIHN0cm9rZT0iaHNsKDE5MCwgMTAwJSwgNTAlKSIgZD0iTTE3OS4wNjQgODUuMTk0YTY2LjUgNjYuNSAwIDAwLTEuMzE5LTEuMTM2Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTkxLCAxMDAlLCA1MCUpIiBkPSJNMTc5LjkyNyA4NS45NzFhNjYuNSA2Ni41IDAgMDAtMS4zLTEuMTYiLz48cGF0aCBzdHJva2U9ImhzbCgxOTIsIDEwMCUsIDUwJSkiIGQ9Ik0xODAuNzc2IDg2Ljc2M2E2Ni41IDY2LjUgMCAwMC0xLjI3OS0xLjE4MiIvPjxwYXRoIHN0cm9rZT0iaHNsKDE5MywgMTAwJSwgNTAlKSIgZD0iTTE4MS42MSA4Ny41NjlhNjYuNSA2Ni41IDAgMDAtMS4yNTctMS4yMDQiLz48cGF0aCBzdHJva2U9ImhzbCgxOTQsIDEwMCUsIDUwJSkiIGQ9Ik0xODIuNDMxIDg4LjM5YTY2LjUgNjYuNSAwIDAwLTEuMjM2LTEuMjI2Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTk1LCAxMDAlLCA1MCUpIiBkPSJNMTgzLjIzNyA4OS4yMjRhNjYuNSA2Ni41IDAgMDAtMS4yMTQtMS4yNDciLz48cGF0aCBzdHJva2U9ImhzbCgxOTYsIDEwMCUsIDUwJSkiIGQ9Ik0xODQuMDI5IDkwLjA3M2E2Ni41IDY2LjUgMCAwMC0xLjE5My0xLjI2OCIvPjxwYXRoIHN0cm9rZT0iaHNsKDE5NywgMTAwJSwgNTAlKSIgZD0iTTE4NC44MDYgOTAuOTM2YTY2LjUgNjYuNSAwIDAwLTEuMTcxLTEuMjg5Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTk4LCAxMDAlLCA1MCUpIiBkPSJNMTg1LjU2NyA5MS44MTJhNjYuNSA2Ni41IDAgMDAtMS4xNDgtMS4zMSIvPjxwYXRoIHN0cm9rZT0iaHNsKDE5OSwgMTAwJSwgNTAlKSIgZD0iTTE4Ni4zMTMgOTIuN2E2Ni41IDY2LjUgMCAwMC0xLjEyNS0xLjMyOCIvPjxwYXRoIHN0cm9rZT0iaHNsKDIwMCwgMTAwJSwgNTAlKSIgZD0iTTE4Ny4wNDMgOTMuNjAzYTY2LjUgNjYuNSAwIDAwLTEuMTAxLTEuMzQ4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjAxLCAxMDAlLCA1MCUpIiBkPSJNMTg3Ljc1OCA5NC41MTdhNjYuNSA2Ni41IDAgMDAtMS4wNzgtMS4zNjciLz48cGF0aCBzdHJva2U9ImhzbCgyMDIsIDEwMCUsIDUwJSkiIGQ9Ik0xODguNDU2IDk1LjQ0NGE2Ni41IDY2LjUgMCAwMC0xLjA1My0xLjM4NSIvPjxwYXRoIHN0cm9rZT0iaHNsKDIwMywgMTAwJSwgNTAlKSIgZD0iTTE4OS4xMzkgOTYuMzgzYTY2LjUgNjYuNSAwIDAwLTEuMDMtMS40MDQiLz48cGF0aCBzdHJva2U9ImhzbCgyMDQsIDEwMCUsIDUwJSkiIGQ9Ik0xODkuODA0IDk3LjMzNGE2Ni41IDY2LjUgMCAwMC0xLjAwNC0xLjQyMiIvPjxwYXRoIHN0cm9rZT0iaHNsKDIwNSwgMTAwJSwgNTAlKSIgZD0iTTE5MC40NTMgOTguMjk2YTY2LjUgNjYuNSAwIDAwLS45OC0xLjQzOSIvPjxwYXRoIHN0cm9rZT0iaHNsKDIwNiwgMTAwJSwgNTAlKSIgZD0iTTE5MS4wODYgOTkuMjdhNjYuNSA2Ni41IDAgMDAtLjk1NS0xLjQ1NiIvPjxwYXRoIHN0cm9rZT0iaHNsKDIwNywgMTAwJSwgNTAlKSIgZD0iTTE5MS43IDEwMC4yNTRhNjYuNSA2Ni41IDAgMDAtLjkyOC0xLjQ3MiIvPjxwYXRoIHN0cm9rZT0iaHNsKDIwOCwgMTAwJSwgNTAlKSIgZD0iTTE5Mi4yOTggMTAxLjI0OWE2Ni41IDY2LjUgMCAwMC0uOTAzLTEuNDg5Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjA5LCAxMDAlLCA1MCUpIiBkPSJNMTkyLjg3OSAxMDIuMjU0YTY2LjUgNjYuNSAwIDAwLS44NzctMS41MDQiLz48cGF0aCBzdHJva2U9ImhzbCgyMTAsIDEwMCUsIDUwJSkiIGQ9Ik0xOTMuNDQxIDEwMy4yNjlhNjYuNSA2Ni41IDAgMDAtLjg1LTEuNTE5Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjExLCAxMDAlLCA1MCUpIiBkPSJNMTkzLjk4NiAxMDQuMjk0YTY2LjUgNjYuNSAwIDAwLS44MjQtMS41MzQiLz48cGF0aCBzdHJva2U9ImhzbCgyMTIsIDEwMCUsIDUwJSkiIGQ9Ik0xOTQuNTEzIDEwNS4zMjhhNjYuNSA2Ni41IDAgMDAtLjc5Ny0xLjU0OCIvPjxwYXRoIHN0cm9rZT0iaHNsKDIxMywgMTAwJSwgNTAlKSIgZD0iTTE5NS4wMjIgMTA2LjM3MWE2Ni41IDY2LjUgMCAwMC0uNzctMS41NjEiLz48cGF0aCBzdHJva2U9ImhzbCgyMTQsIDEwMCUsIDUwJSkiIGQ9Ik0xOTUuNTEyIDEwNy40MjNhNjYuNSA2Ni41IDAgMDAtLjc0Mi0xLjU3NSIvPjxwYXRoIHN0cm9rZT0iaHNsKDIxNSwgMTAwJSwgNTAlKSIgZD0iTTE5NS45ODQgMTA4LjQ4M2E2Ni41IDY2LjUgMCAwMC0uNzE1LTEuNTg3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjE2LCAxMDAlLCA1MCUpIiBkPSJNMTk2LjQzOCAxMDkuNTUyYTY2LjUgNjYuNSAwIDAwLS42ODctMS42Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjE3LCAxMDAlLCA1MCUpIiBkPSJNMTk2Ljg3MyAxMTAuNjI4YTY2LjUgNjYuNSAwIDAwLS42Ni0xLjYxMiIvPjxwYXRoIHN0cm9rZT0iaHNsKDIxOCwgMTAwJSwgNTAlKSIgZD0iTTE5Ny4yODkgMTExLjcxMWE2Ni41IDY2LjUgMCAwMC0uNjMxLTEuNjIyIi8+PHBhdGggc3Ryb2tlPSJoc2woMjE5LCAxMDAlLCA1MCUpIiBkPSJNMTk3LjY4NiAxMTIuODAyYTY2LjUgNjYuNSAwIDAwLS42MDMtMS42MzMiLz48cGF0aCBzdHJva2U9ImhzbCgyMjAsIDEwMCUsIDUwJSkiIGQ9Ik0xOTguMDY0IDExMy45YTY2LjUgNjYuNSAwIDAwLS41NzQtMS42NDQiLz48cGF0aCBzdHJva2U9ImhzbCgyMjEsIDEwMCUsIDUwJSkiIGQ9Ik0xOTguNDIyIDExNS4wMDNhNjYuNSA2Ni41IDAgMDAtLjU0NS0xLjY1MyIvPjxwYXRoIHN0cm9rZT0iaHNsKDIyMiwgMTAwJSwgNTAlKSIgZD0iTTE5OC43NjIgMTE2LjExM2E2Ni41IDY2LjUgMCAwMC0uNTE3LTEuNjYzIi8+PHBhdGggc3Ryb2tlPSJoc2woMjIzLCAxMDAlLCA1MCUpIiBkPSJNMTk5LjA4MSAxMTcuMjI5YTY2LjUgNjYuNSAwIDAwLS40ODctMS42NzIiLz48cGF0aCBzdHJva2U9ImhzbCgyMjQsIDEwMCUsIDUwJSkiIGQ9Ik0xOTkuMzgyIDExOC4zNWE2Ni41IDY2LjUgMCAwMC0uNDU4LTEuNjgiLz48cGF0aCBzdHJva2U9ImhzbCgyMjUsIDEwMCUsIDUwJSkiIGQ9Ik0xOTkuNjYzIDExOS40NzZhNjYuNSA2Ni41IDAgMDAtLjQyOS0xLjY4NyIvPjxwYXRoIHN0cm9rZT0iaHNsKDIyNiwgMTAwJSwgNTAlKSIgZD0iTTE5OS45MjQgMTIwLjYwN2E2Ni41IDY2LjUgMCAwMC0uNC0xLjY5NSIvPjxwYXRoIHN0cm9rZT0iaHNsKDIyNywgMTAwJSwgNTAlKSIgZD0iTTIwMC4xNjUgMTIxLjc0MmE2Ni41IDY2LjUgMCAwMC0uMzctMS43MDEiLz48cGF0aCBzdHJva2U9ImhzbCgyMjgsIDEwMCUsIDUwJSkiIGQ9Ik0yMDAuMzg2IDEyMi44ODFhNjYuNSA2Ni41IDAgMDAtLjM0LTEuNzA3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjI5LCAxMDAlLCA1MCUpIiBkPSJNMjAwLjU4OCAxMjQuMDI0YTY2LjUgNjYuNSAwIDAwLS4zMS0xLjcxMyIvPjxwYXRoIHN0cm9rZT0iaHNsKDIzMCwgMTAwJSwgNTAlKSIgZD0iTTIwMC43NyAxMjUuMTdhNjYuNSA2Ni41IDAgMDAtLjI4LTEuNzE4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjMxLCAxMDAlLCA1MCUpIiBkPSJNMjAwLjkzMSAxMjYuMzJhNjYuNSA2Ni41IDAgMDAtLjI1LTEuNzIzIi8+PHBhdGggc3Ryb2tlPSJoc2woMjMyLCAxMDAlLCA1MCUpIiBkPSJNMjAxLjA3MyAxMjcuNDcyYTY2LjUgNjYuNSAwIDAwLS4yMi0xLjcyNyIvPjxwYXRoIHN0cm9rZT0iaHNsKDIzMywgMTAwJSwgNTAlKSIgZD0iTTIwMS4xOTQgMTI4LjYyNmE2Ni41IDY2LjUgMCAwMC0uMTktMS43MyIvPjxwYXRoIHN0cm9rZT0iaHNsKDIzNCwgMTAwJSwgNTAlKSIgZD0iTTIwMS4yOTUgMTI5Ljc4MmE2Ni41IDY2LjUgMCAwMC0uMTYtMS43MzMiLz48cGF0aCBzdHJva2U9ImhzbCgyMzUsIDEwMCUsIDUwJSkiIGQ9Ik0yMDEuMzc2IDEzMC45NGE2Ni41IDY2LjUgMCAwMC0uMTMtMS43MzYiLz48cGF0aCBzdHJva2U9ImhzbCgyMzYsIDEwMCUsIDUwJSkiIGQ9Ik0yMDEuNDM3IDEzMi4xYTY2LjUgNjYuNSAwIDAwLS4wOTktMS43MzkiLz48cGF0aCBzdHJva2U9ImhzbCgyMzcsIDEwMCUsIDUwJSkiIGQ9Ik0yMDEuNDc3IDEzMy4yNmE2Ni41IDY2LjUgMCAwMC0uMDY4LTEuNzQiLz48cGF0aCBzdHJva2U9ImhzbCgyMzgsIDEwMCUsIDUwJSkiIGQ9Ik0yMDEuNDk3IDEzNC40MmE2Ni41IDY2LjUgMCAwMC0uMDM4LTEuNzQiLz48cGF0aCBzdHJva2U9ImhzbCgyMzksIDEwMCUsIDUwJSkiIGQ9Ik0yMDEuNDk3IDEzNS41OGE2Ni41IDY2LjUgMCAwMC0uMDA3LTEuNzQiLz48L2c+PGNpcmNsZSBjeD0iMTM1IiBjeT0iMTM1IiByPSIxMzMiIGZpbGw9InVybCgjYSkiIGNsYXNzPSJJcm9XaGVlbFNhdHVyYXRpb24iLz48Y2lyY2xlIGN4PSIxMzUiIGN5PSIxMzUiIHI9IjEzMyIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjZmZmIiBzdHJva2Utd2lkdGg9IjIiIGNsYXNzPSJJcm9XaGVlbEJvcmRlciIvPjwvc3ZnPg==",I.querySelector(".satus-modal__surface").appendChild(M),I.querySelector(".satus-modal__surface").appendChild(A),document.body.appendChild(I)}),M.appendChild(j),M},satus.components.colorPicker=function(M){var N=document.createElement("button"),I=document.createElement("span");return N.className="satus-button",I.className="satus-color-picker__value",N.valueElement=I,N.addEventListener("render",function(){this.valueElement.style.backgroundColor=satus.storage.get(this.storage)||this.skeleton.value}),N.addEventListener("click",function(){satus.render({component:"modal",class:"satus-modal--color-picker",properties:{parentComponent:this},canvas:{component:"canvas",on:{render:function(){var M=this.getContext("2d"),N=new Image;N.addEventListener("load",function(){M.drawImage(this,0,0)}),N.src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNzAgMjcwIj48ZGVmcz48cmFkaWFsR3JhZGllbnQgaWQ9ImEiPjxzdG9wIG9mZnNldD0iMCUiIHN0b3AtY29sb3I9IiNmZmYiLz48c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNmZmYiIHN0b3Atb3BhY2l0eT0iMCIvPjwvcmFkaWFsR3JhZGllbnQ+PC9kZWZzPjxnIGZpbGw9Im5vbmUiIHN0cm9rZS13aWR0aD0iMTMzIiBjbGFzcz0iSXJvV2hlZWxIdWUiPjxwYXRoIHN0cm9rZT0iaHNsKDI0MCwgMTAwJSwgNTAlKSIgZD0iTTIwMS40NzcgMTM2Ljc0YTY2LjUgNjYuNSAwIDAwLjAyMy0xLjc0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjQxLCAxMDAlLCA1MCUpIiBkPSJNMjAxLjQzNyAxMzcuOWE2Ni41IDY2LjUgMCAwMC4wNTMtMS43NCIvPjxwYXRoIHN0cm9rZT0iaHNsKDI0MiwgMTAwJSwgNTAlKSIgZD0iTTIwMS4zNzYgMTM5LjA2YTY2LjUgNjYuNSAwIDAwLjA4My0xLjc0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjQzLCAxMDAlLCA1MCUpIiBkPSJNMjAxLjI5NSAxNDAuMjE4YTY2LjUgNjYuNSAwIDAwLjExNC0xLjczOCIvPjxwYXRoIHN0cm9rZT0iaHNsKDI0NCwgMTAwJSwgNTAlKSIgZD0iTTIwMS4xOTQgMTQxLjM3NGE2Ni41IDY2LjUgMCAwMC4xNDQtMS43MzUiLz48cGF0aCBzdHJva2U9ImhzbCgyNDUsIDEwMCUsIDUwJSkiIGQ9Ik0yMDEuMDczIDE0Mi41MjhhNjYuNSA2Ni41IDAgMDAuMTc0LTEuNzMyIi8+PHBhdGggc3Ryb2tlPSJoc2woMjQ2LCAxMDAlLCA1MCUpIiBkPSJNMjAwLjkzMSAxNDMuNjhhNjYuNSA2Ni41IDAgMDAuMjA1LTEuNzI5Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjQ3LCAxMDAlLCA1MCUpIiBkPSJNMjAwLjc3IDE0NC44M2E2Ni41IDY2LjUgMCAwMC4yMzQtMS43MjYiLz48cGF0aCBzdHJva2U9ImhzbCgyNDgsIDEwMCUsIDUwJSkiIGQ9Ik0yMDAuNTg4IDE0NS45NzZhNjYuNSA2Ni41IDAgMDAuMjY1LTEuNzIxIi8+PHBhdGggc3Ryb2tlPSJoc2woMjQ5LCAxMDAlLCA1MCUpIiBkPSJNMjAwLjM4NiAxNDcuMTE5YTY2LjUgNjYuNSAwIDAwLjI5NS0xLjcxNiIvPjxwYXRoIHN0cm9rZT0iaHNsKDI1MCwgMTAwJSwgNTAlKSIgZD0iTTIwMC4xNjUgMTQ4LjI1OGE2Ni41IDY2LjUgMCAwMC4zMjUtMS43MSIvPjxwYXRoIHN0cm9rZT0iaHNsKDI1MSwgMTAwJSwgNTAlKSIgZD0iTTE5OS45MjQgMTQ5LjM5M2E2Ni41IDY2LjUgMCAwMC4zNTQtMS43MDQiLz48cGF0aCBzdHJva2U9ImhzbCgyNTIsIDEwMCUsIDUwJSkiIGQ9Ik0xOTkuNjYzIDE1MC41MjRhNjYuNSA2Ni41IDAgMDAuMzg0LTEuNjk4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjUzLCAxMDAlLCA1MCUpIiBkPSJNMTk5LjM4MiAxNTEuNjVhNjYuNSA2Ni41IDAgMDAuNDE0LTEuNjkiLz48cGF0aCBzdHJva2U9ImhzbCgyNTQsIDEwMCUsIDUwJSkiIGQ9Ik0xOTkuMDgxIDE1Mi43NzFhNjYuNSA2Ni41IDAgMDAuNDQ0LTEuNjgzIi8+PHBhdGggc3Ryb2tlPSJoc2woMjU1LCAxMDAlLCA1MCUpIiBkPSJNMTk4Ljc2MiAxNTMuODg3YTY2LjUgNjYuNSAwIDAwLjQ3Mi0xLjY3NiIvPjxwYXRoIHN0cm9rZT0iaHNsKDI1NiwgMTAwJSwgNTAlKSIgZD0iTTE5OC40MjIgMTU0Ljk5N2E2Ni41IDY2LjUgMCAwMC41MDItMS42NjciLz48cGF0aCBzdHJva2U9ImhzbCgyNTcsIDEwMCUsIDUwJSkiIGQ9Ik0xOTguMDY0IDE1Ni4xYTY2LjUgNjYuNSAwIDAwLjUzLTEuNjU3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjU4LCAxMDAlLCA1MCUpIiBkPSJNMTk3LjY4NiAxNTcuMTk4YTY2LjUgNjYuNSAwIDAwLjU2LTEuNjQ4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjU5LCAxMDAlLCA1MCUpIiBkPSJNMTk3LjI4OSAxNTguMjg5YTY2LjUgNjYuNSAwIDAwLjU4OC0xLjYzOSIvPjxwYXRoIHN0cm9rZT0iaHNsKDI2MCwgMTAwJSwgNTAlKSIgZD0iTTE5Ni44NzMgMTU5LjM3MmE2Ni41IDY2LjUgMCAwMC42MTctMS42MjgiLz48cGF0aCBzdHJva2U9ImhzbCgyNjEsIDEwMCUsIDUwJSkiIGQ9Ik0xOTYuNDM4IDE2MC40NDhhNjYuNSA2Ni41IDAgMDAuNjQ1LTEuNjE3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjYyLCAxMDAlLCA1MCUpIiBkPSJNMTk1Ljk4NCAxNjEuNTE3YTY2LjUgNjYuNSAwIDAwLjY3NC0xLjYwNiIvPjxwYXRoIHN0cm9rZT0iaHNsKDI2MywgMTAwJSwgNTAlKSIgZD0iTTE5NS41MTIgMTYyLjU3N2E2Ni41IDY2LjUgMCAwMC43MDItMS41OTMiLz48cGF0aCBzdHJva2U9ImhzbCgyNjQsIDEwMCUsIDUwJSkiIGQ9Ik0xOTUuMDIyIDE2My42MjlhNjYuNSA2Ni41IDAgMDAuNzI5LTEuNTgxIi8+PHBhdGggc3Ryb2tlPSJoc2woMjY1LCAxMDAlLCA1MCUpIiBkPSJNMTk0LjUxMyAxNjQuNjcyYTY2LjUgNjYuNSAwIDAwLjc1Ni0xLjU2OCIvPjxwYXRoIHN0cm9rZT0iaHNsKDI2NiwgMTAwJSwgNTAlKSIgZD0iTTE5My45ODYgMTY1LjcwNmE2Ni41IDY2LjUgMCAwMC43ODQtMS41NTQiLz48cGF0aCBzdHJva2U9ImhzbCgyNjcsIDEwMCUsIDUwJSkiIGQ9Ik0xOTMuNDQxIDE2Ni43MzFhNjYuNSA2Ni41IDAgMDAuODEtMS41NCIvPjxwYXRoIHN0cm9rZT0iaHNsKDI2OCwgMTAwJSwgNTAlKSIgZD0iTTE5Mi44NzkgMTY3Ljc0NmE2Ni41IDY2LjUgMCAwMC44MzctMS41MjYiLz48cGF0aCBzdHJva2U9ImhzbCgyNjksIDEwMCUsIDUwJSkiIGQ9Ik0xOTIuMjk4IDE2OC43NTFhNjYuNSA2Ni41IDAgMDAuODY0LTEuNTExIi8+PHBhdGggc3Ryb2tlPSJoc2woMjcwLCAxMDAlLCA1MCUpIiBkPSJNMTkxLjcgMTY5Ljc0NmE2Ni41IDY2LjUgMCAwMC44OS0xLjQ5NiIvPjxwYXRoIHN0cm9rZT0iaHNsKDI3MSwgMTAwJSwgNTAlKSIgZD0iTTE5MS4wODYgMTcwLjczYTY2LjUgNjYuNSAwIDAwLjkxNi0xLjQ4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjcyLCAxMDAlLCA1MCUpIiBkPSJNMTkwLjQ1MyAxNzEuNzA0YTY2LjUgNjYuNSAwIDAwLjk0Mi0xLjQ2NCIvPjxwYXRoIHN0cm9rZT0iaHNsKDI3MywgMTAwJSwgNTAlKSIgZD0iTTE4OS44MDQgMTcyLjY2NmE2Ni41IDY2LjUgMCAwMC45NjgtMS40NDgiLz48cGF0aCBzdHJva2U9ImhzbCgyNzQsIDEwMCUsIDUwJSkiIGQ9Ik0xODkuMTM5IDE3My42MTdhNjYuNSA2Ni41IDAgMDAuOTkyLTEuNDMiLz48cGF0aCBzdHJva2U9ImhzbCgyNzUsIDEwMCUsIDUwJSkiIGQ9Ik0xODguNDU2IDE3NC41NTZhNjYuNSA2Ni41IDAgMDAxLjAxOC0xLjQxMyIvPjxwYXRoIHN0cm9rZT0iaHNsKDI3NiwgMTAwJSwgNTAlKSIgZD0iTTE4Ny43NTggMTc1LjQ4M2E2Ni41IDY2LjUgMCAwMDEuMDQyLTEuMzk1Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjc3LCAxMDAlLCA1MCUpIiBkPSJNMTg3LjA0MyAxNzYuMzk3YTY2LjUgNjYuNSAwIDAwMS4wNjYtMS4zNzYiLz48cGF0aCBzdHJva2U9ImhzbCgyNzgsIDEwMCUsIDUwJSkiIGQ9Ik0xODYuMzEzIDE3Ny4zYTY2LjUgNjYuNSAwIDAwMS4wOS0xLjM1OSIvPjxwYXRoIHN0cm9rZT0iaHNsKDI3OSwgMTAwJSwgNTAlKSIgZD0iTTE4NS41NjcgMTc4LjE4OGE2Ni41IDY2LjUgMCAwMDEuMTEzLTEuMzM4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjgwLCAxMDAlLCA1MCUpIiBkPSJNMTg0LjgwNiAxNzkuMDY0YTY2LjUgNjYuNSAwIDAwMS4xMzYtMS4zMTkiLz48cGF0aCBzdHJva2U9ImhzbCgyODEsIDEwMCUsIDUwJSkiIGQ9Ik0xODQuMDI5IDE3OS45MjdhNjYuNSA2Ni41IDAgMDAxLjE2LTEuMyIvPjxwYXRoIHN0cm9rZT0iaHNsKDI4MiwgMTAwJSwgNTAlKSIgZD0iTTE4My4yMzcgMTgwLjc3NmE2Ni41IDY2LjUgMCAwMDEuMTgyLTEuMjc5Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjgzLCAxMDAlLCA1MCUpIiBkPSJNMTgyLjQzMSAxODEuNjFhNjYuNSA2Ni41IDAgMDAxLjIwNC0xLjI1NyIvPjxwYXRoIHN0cm9rZT0iaHNsKDI4NCwgMTAwJSwgNTAlKSIgZD0iTTE4MS42MSAxODIuNDMxYTY2LjUgNjYuNSAwIDAwMS4yMjYtMS4yMzYiLz48cGF0aCBzdHJva2U9ImhzbCgyODUsIDEwMCUsIDUwJSkiIGQ9Ik0xODAuNzc2IDE4My4yMzdhNjYuNSA2Ni41IDAgMDAxLjI0Ny0xLjIxNCIvPjxwYXRoIHN0cm9rZT0iaHNsKDI4NiwgMTAwJSwgNTAlKSIgZD0iTTE3OS45MjcgMTg0LjAyOWE2Ni41IDY2LjUgMCAwMDEuMjY4LTEuMTkzIi8+PHBhdGggc3Ryb2tlPSJoc2woMjg3LCAxMDAlLCA1MCUpIiBkPSJNMTc5LjA2NCAxODQuODA2YTY2LjUgNjYuNSAwIDAwMS4yODktMS4xNzEiLz48cGF0aCBzdHJva2U9ImhzbCgyODgsIDEwMCUsIDUwJSkiIGQ9Ik0xNzguMTg4IDE4NS41NjdhNjYuNSA2Ni41IDAgMDAxLjMxLTEuMTQ4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjg5LCAxMDAlLCA1MCUpIiBkPSJNMTc3LjMgMTg2LjMxM2E2Ni41IDY2LjUgMCAwMDEuMzI4LTEuMTI1Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjkwLCAxMDAlLCA1MCUpIiBkPSJNMTc2LjM5NyAxODcuMDQzYTY2LjUgNjYuNSAwIDAwMS4zNDgtMS4xMDEiLz48cGF0aCBzdHJva2U9ImhzbCgyOTEsIDEwMCUsIDUwJSkiIGQ9Ik0xNzUuNDgzIDE4Ny43NThhNjYuNSA2Ni41IDAgMDAxLjM2Ny0xLjA3OCIvPjxwYXRoIHN0cm9rZT0iaHNsKDI5MiwgMTAwJSwgNTAlKSIgZD0iTTE3NC41NTYgMTg4LjQ1NmE2Ni41IDY2LjUgMCAwMDEuMzg1LTEuMDUzIi8+PHBhdGggc3Ryb2tlPSJoc2woMjkzLCAxMDAlLCA1MCUpIiBkPSJNMTczLjYxNyAxODkuMTM5YTY2LjUgNjYuNSAwIDAwMS40MDQtMS4wMyIvPjxwYXRoIHN0cm9rZT0iaHNsKDI5NCwgMTAwJSwgNTAlKSIgZD0iTTE3Mi42NjYgMTg5LjgwNGE2Ni41IDY2LjUgMCAwMDEuNDIyLTEuMDA0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjk1LCAxMDAlLCA1MCUpIiBkPSJNMTcxLjcwNCAxOTAuNDUzYTY2LjUgNjYuNSAwIDAwMS40MzktLjk4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjk2LCAxMDAlLCA1MCUpIiBkPSJNMTcwLjczIDE5MS4wODZhNjYuNSA2Ni41IDAgMDAxLjQ1Ni0uOTU1Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjk3LCAxMDAlLCA1MCUpIiBkPSJNMTY5Ljc0NiAxOTEuN2E2Ni41IDY2LjUgMCAwMDEuNDcyLS45MjgiLz48cGF0aCBzdHJva2U9ImhzbCgyOTgsIDEwMCUsIDUwJSkiIGQ9Ik0xNjguNzUxIDE5Mi4yOThhNjYuNSA2Ni41IDAgMDAxLjQ4OS0uOTAzIi8+PHBhdGggc3Ryb2tlPSJoc2woMjk5LCAxMDAlLCA1MCUpIiBkPSJNMTY3Ljc0NiAxOTIuODc5YTY2LjUgNjYuNSAwIDAwMS41MDQtLjg3NyIvPjxwYXRoIHN0cm9rZT0iaHNsKDMwMCwgMTAwJSwgNTAlKSIgZD0iTTE2Ni43MzEgMTkzLjQ0MWE2Ni41IDY2LjUgMCAwMDEuNTE5LS44NSIvPjxwYXRoIHN0cm9rZT0iaHNsKDMwMSwgMTAwJSwgNTAlKSIgZD0iTTE2NS43MDYgMTkzLjk4NmE2Ni41IDY2LjUgMCAwMDEuNTM0LS44MjQiLz48cGF0aCBzdHJva2U9ImhzbCgzMDIsIDEwMCUsIDUwJSkiIGQ9Ik0xNjQuNjcyIDE5NC41MTNhNjYuNSA2Ni41IDAgMDAxLjU0OC0uNzk3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzAzLCAxMDAlLCA1MCUpIiBkPSJNMTYzLjYyOSAxOTUuMDIyYTY2LjUgNjYuNSAwIDAwMS41NjEtLjc3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzA0LCAxMDAlLCA1MCUpIiBkPSJNMTYyLjU3NyAxOTUuNTEyYTY2LjUgNjYuNSAwIDAwMS41NzUtLjc0MiIvPjxwYXRoIHN0cm9rZT0iaHNsKDMwNSwgMTAwJSwgNTAlKSIgZD0iTTE2MS41MTcgMTk1Ljk4NGE2Ni41IDY2LjUgMCAwMDEuNTg3LS43MTUiLz48cGF0aCBzdHJva2U9ImhzbCgzMDYsIDEwMCUsIDUwJSkiIGQ9Ik0xNjAuNDQ4IDE5Ni40MzhhNjYuNSA2Ni41IDAgMDAxLjYtLjY4NyIvPjxwYXRoIHN0cm9rZT0iaHNsKDMwNywgMTAwJSwgNTAlKSIgZD0iTTE1OS4zNzIgMTk2Ljg3M2E2Ni41IDY2LjUgMCAwMDEuNjEyLS42NiIvPjxwYXRoIHN0cm9rZT0iaHNsKDMwOCwgMTAwJSwgNTAlKSIgZD0iTTE1OC4yODkgMTk3LjI4OWE2Ni41IDY2LjUgMCAwMDEuNjIyLS42MzEiLz48cGF0aCBzdHJva2U9ImhzbCgzMDksIDEwMCUsIDUwJSkiIGQ9Ik0xNTcuMTk4IDE5Ny42ODZhNjYuNSA2Ni41IDAgMDAxLjYzMy0uNjAzIi8+PHBhdGggc3Ryb2tlPSJoc2woMzEwLCAxMDAlLCA1MCUpIiBkPSJNMTU2LjEgMTk4LjA2NGE2Ni41IDY2LjUgMCAwMDEuNjQ0LS41NzQiLz48cGF0aCBzdHJva2U9ImhzbCgzMTEsIDEwMCUsIDUwJSkiIGQ9Ik0xNTQuOTk3IDE5OC40MjJhNjYuNSA2Ni41IDAgMDAxLjY1My0uNTQ1Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzEyLCAxMDAlLCA1MCUpIiBkPSJNMTUzLjg4NyAxOTguNzYyYTY2LjUgNjYuNSAwIDAwMS42NjMtLjUxNyIvPjxwYXRoIHN0cm9rZT0iaHNsKDMxMywgMTAwJSwgNTAlKSIgZD0iTTE1Mi43NzEgMTk5LjA4MWE2Ni41IDY2LjUgMCAwMDEuNjcyLS40ODciLz48cGF0aCBzdHJva2U9ImhzbCgzMTQsIDEwMCUsIDUwJSkiIGQ9Ik0xNTEuNjUgMTk5LjM4MmE2Ni41IDY2LjUgMCAwMDEuNjgtLjQ1OCIvPjxwYXRoIHN0cm9rZT0iaHNsKDMxNSwgMTAwJSwgNTAlKSIgZD0iTTE1MC41MjQgMTk5LjY2M2E2Ni41IDY2LjUgMCAwMDEuNjg3LS40MjkiLz48cGF0aCBzdHJva2U9ImhzbCgzMTYsIDEwMCUsIDUwJSkiIGQ9Ik0xNDkuMzkzIDE5OS45MjRhNjYuNSA2Ni41IDAgMDAxLjY5NS0uNCIvPjxwYXRoIHN0cm9rZT0iaHNsKDMxNywgMTAwJSwgNTAlKSIgZD0iTTE0OC4yNTggMjAwLjE2NWE2Ni41IDY2LjUgMCAwMDEuNzAxLS4zNyIvPjxwYXRoIHN0cm9rZT0iaHNsKDMxOCwgMTAwJSwgNTAlKSIgZD0iTTE0Ny4xMTkgMjAwLjM4NmE2Ni41IDY2LjUgMCAwMDEuNzA3LS4zNCIvPjxwYXRoIHN0cm9rZT0iaHNsKDMxOSwgMTAwJSwgNTAlKSIgZD0iTTE0NS45NzYgMjAwLjU4OGE2Ni41IDY2LjUgMCAwMDEuNzEzLS4zMSIvPjxwYXRoIHN0cm9rZT0iaHNsKDMyMCwgMTAwJSwgNTAlKSIgZD0iTTE0NC44MyAyMDAuNzdhNjYuNSA2Ni41IDAgMDAxLjcxOC0uMjgiLz48cGF0aCBzdHJva2U9ImhzbCgzMjEsIDEwMCUsIDUwJSkiIGQ9Ik0xNDMuNjggMjAwLjkzMWE2Ni41IDY2LjUgMCAwMDEuNzIzLS4yNSIvPjxwYXRoIHN0cm9rZT0iaHNsKDMyMiwgMTAwJSwgNTAlKSIgZD0iTTE0Mi41MjggMjAxLjA3M2E2Ni41IDY2LjUgMCAwMDEuNzI3LS4yMiIvPjxwYXRoIHN0cm9rZT0iaHNsKDMyMywgMTAwJSwgNTAlKSIgZD0iTTE0MS4zNzQgMjAxLjE5NGE2Ni41IDY2LjUgMCAwMDEuNzMtLjE5Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzI0LCAxMDAlLCA1MCUpIiBkPSJNMTQwLjIxOCAyMDEuMjk1YTY2LjUgNjYuNSAwIDAwMS43MzMtLjE2Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzI1LCAxMDAlLCA1MCUpIiBkPSJNMTM5LjA2IDIwMS4zNzZhNjYuNSA2Ni41IDAgMDAxLjczNi0uMTMiLz48cGF0aCBzdHJva2U9ImhzbCgzMjYsIDEwMCUsIDUwJSkiIGQ9Ik0xMzcuOSAyMDEuNDM3YTY2LjUgNjYuNSAwIDAwMS43MzktLjA5OSIvPjxwYXRoIHN0cm9rZT0iaHNsKDMyNywgMTAwJSwgNTAlKSIgZD0iTTEzNi43NCAyMDEuNDc3YTY2LjUgNjYuNSAwIDAwMS43NC0uMDY4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzI4LCAxMDAlLCA1MCUpIiBkPSJNMTM1LjU4IDIwMS40OTdhNjYuNSA2Ni41IDAgMDAxLjc0LS4wMzgiLz48cGF0aCBzdHJva2U9ImhzbCgzMjksIDEwMCUsIDUwJSkiIGQ9Ik0xMzQuNDIgMjAxLjQ5N2E2Ni41IDY2LjUgMCAwMDEuNzQtLjAwNyIvPjxwYXRoIHN0cm9rZT0iaHNsKDMzMCwgMTAwJSwgNTAlKSIgZD0iTTEzMy4yNiAyMDEuNDc3YTY2LjUgNjYuNSAwIDAwMS43NC4wMjMiLz48cGF0aCBzdHJva2U9ImhzbCgzMzEsIDEwMCUsIDUwJSkiIGQ9Ik0xMzIuMSAyMDEuNDM3YTY2LjUgNjYuNSAwIDAwMS43NC4wNTMiLz48cGF0aCBzdHJva2U9ImhzbCgzMzIsIDEwMCUsIDUwJSkiIGQ9Ik0xMzAuOTQgMjAxLjM3NmE2Ni41IDY2LjUgMCAwMDEuNzQuMDgzIi8+PHBhdGggc3Ryb2tlPSJoc2woMzMzLCAxMDAlLCA1MCUpIiBkPSJNMTI5Ljc4MiAyMDEuMjk1YTY2LjUgNjYuNSAwIDAwMS43MzguMTE0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzM0LCAxMDAlLCA1MCUpIiBkPSJNMTI4LjYyNiAyMDEuMTk0YTY2LjUgNjYuNSAwIDAwMS43MzUuMTQ0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzM1LCAxMDAlLCA1MCUpIiBkPSJNMTI3LjQ3MiAyMDEuMDczYTY2LjUgNjYuNSAwIDAwMS43MzIuMTc0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzM2LCAxMDAlLCA1MCUpIiBkPSJNMTI2LjMyIDIwMC45MzFhNjYuNSA2Ni41IDAgMDAxLjcyOS4yMDUiLz48cGF0aCBzdHJva2U9ImhzbCgzMzcsIDEwMCUsIDUwJSkiIGQ9Ik0xMjUuMTcgMjAwLjc3YTY2LjUgNjYuNSAwIDAwMS43MjYuMjM0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzM4LCAxMDAlLCA1MCUpIiBkPSJNMTI0LjAyNCAyMDAuNTg4YTY2LjUgNjYuNSAwIDAwMS43MjEuMjY1Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzM5LCAxMDAlLCA1MCUpIiBkPSJNMTIyLjg4MSAyMDAuMzg2YTY2LjUgNjYuNSAwIDAwMS43MTYuMjk1Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzQwLCAxMDAlLCA1MCUpIiBkPSJNMTIxLjc0MiAyMDAuMTY1YTY2LjUgNjYuNSAwIDAwMS43MS4zMjUiLz48cGF0aCBzdHJva2U9ImhzbCgzNDEsIDEwMCUsIDUwJSkiIGQ9Ik0xMjAuNjA3IDE5OS45MjRhNjYuNSA2Ni41IDAgMDAxLjcwNC4zNTQiLz48cGF0aCBzdHJva2U9ImhzbCgzNDIsIDEwMCUsIDUwJSkiIGQ9Ik0xMTkuNDc2IDE5OS42NjNhNjYuNSA2Ni41IDAgMDAxLjY5OC4zODQiLz48cGF0aCBzdHJva2U9ImhzbCgzNDMsIDEwMCUsIDUwJSkiIGQ9Ik0xMTguMzUgMTk5LjM4MmE2Ni41IDY2LjUgMCAwMDEuNjkuNDE0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzQ0LCAxMDAlLCA1MCUpIiBkPSJNMTE3LjIyOSAxOTkuMDgxYTY2LjUgNjYuNSAwIDAwMS42ODMuNDQ0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzQ1LCAxMDAlLCA1MCUpIiBkPSJNMTE2LjExMyAxOTguNzYyYTY2LjUgNjYuNSAwIDAwMS42NzYuNDcyIi8+PHBhdGggc3Ryb2tlPSJoc2woMzQ2LCAxMDAlLCA1MCUpIiBkPSJNMTE1LjAwMyAxOTguNDIyYTY2LjUgNjYuNSAwIDAwMS42NjcuNTAyIi8+PHBhdGggc3Ryb2tlPSJoc2woMzQ3LCAxMDAlLCA1MCUpIiBkPSJNMTEzLjkgMTk4LjA2NGE2Ni41IDY2LjUgMCAwMDEuNjU3LjUzIi8+PHBhdGggc3Ryb2tlPSJoc2woMzQ4LCAxMDAlLCA1MCUpIiBkPSJNMTEyLjgwMiAxOTcuNjg2YTY2LjUgNjYuNSAwIDAwMS42NDguNTYiLz48cGF0aCBzdHJva2U9ImhzbCgzNDksIDEwMCUsIDUwJSkiIGQ9Ik0xMTEuNzExIDE5Ny4yODlhNjYuNSA2Ni41IDAgMDAxLjYzOS41ODgiLz48cGF0aCBzdHJva2U9ImhzbCgzNTAsIDEwMCUsIDUwJSkiIGQ9Ik0xMTAuNjI4IDE5Ni44NzNhNjYuNSA2Ni41IDAgMDAxLjYyOC42MTciLz48cGF0aCBzdHJva2U9ImhzbCgzNTEsIDEwMCUsIDUwJSkiIGQ9Ik0xMDkuNTUyIDE5Ni40MzhhNjYuNSA2Ni41IDAgMDAxLjYxNy42NDUiLz48cGF0aCBzdHJva2U9ImhzbCgzNTIsIDEwMCUsIDUwJSkiIGQ9Ik0xMDguNDgzIDE5NS45ODRhNjYuNSA2Ni41IDAgMDAxLjYwNi42NzQiLz48cGF0aCBzdHJva2U9ImhzbCgzNTMsIDEwMCUsIDUwJSkiIGQ9Ik0xMDcuNDIzIDE5NS41MTJhNjYuNSA2Ni41IDAgMDAxLjU5My43MDIiLz48cGF0aCBzdHJva2U9ImhzbCgzNTQsIDEwMCUsIDUwJSkiIGQ9Ik0xMDYuMzcxIDE5NS4wMjJhNjYuNSA2Ni41IDAgMDAxLjU4MS43MjkiLz48cGF0aCBzdHJva2U9ImhzbCgzNTUsIDEwMCUsIDUwJSkiIGQ9Ik0xMDUuMzI4IDE5NC41MTNhNjYuNSA2Ni41IDAgMDAxLjU2OC43NTYiLz48cGF0aCBzdHJva2U9ImhzbCgzNTYsIDEwMCUsIDUwJSkiIGQ9Ik0xMDQuMjk0IDE5My45ODZhNjYuNSA2Ni41IDAgMDAxLjU1NC43ODQiLz48cGF0aCBzdHJva2U9ImhzbCgzNTcsIDEwMCUsIDUwJSkiIGQ9Ik0xMDMuMjY5IDE5My40NDFhNjYuNSA2Ni41IDAgMDAxLjU0LjgxIi8+PHBhdGggc3Ryb2tlPSJoc2woMzU4LCAxMDAlLCA1MCUpIiBkPSJNMTAyLjI1NCAxOTIuODc5YTY2LjUgNjYuNSAwIDAwMS41MjYuODM3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzU5LCAxMDAlLCA1MCUpIiBkPSJNMTAxLjI0OSAxOTIuMjk4YTY2LjUgNjYuNSAwIDAwMS41MTEuODY0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMCwgMTAwJSwgNTAlKSIgZD0iTTEwMC4yNTQgMTkxLjdhNjYuNSA2Ni41IDAgMDAxLjQ5Ni44OSIvPjxwYXRoIHN0cm9rZT0iaHNsKDEsIDEwMCUsIDUwJSkiIGQ9Ik05OS4yNyAxOTEuMDg2YTY2LjUgNjYuNSAwIDAwMS40OC45MTYiLz48cGF0aCBzdHJva2U9ImhzbCgyLCAxMDAlLCA1MCUpIiBkPSJNOTguMjk2IDE5MC40NTNhNjYuNSA2Ni41IDAgMDAxLjQ2NC45NDIiLz48cGF0aCBzdHJva2U9ImhzbCgzLCAxMDAlLCA1MCUpIiBkPSJNOTcuMzM0IDE4OS44MDRhNjYuNSA2Ni41IDAgMDAxLjQ0OC45NjgiLz48cGF0aCBzdHJva2U9ImhzbCg0LCAxMDAlLCA1MCUpIiBkPSJNOTYuMzgzIDE4OS4xMzlhNjYuNSA2Ni41IDAgMDAxLjQzLjk5MiIvPjxwYXRoIHN0cm9rZT0iaHNsKDUsIDEwMCUsIDUwJSkiIGQ9Ik05NS40NDQgMTg4LjQ1NmE2Ni41IDY2LjUgMCAwMDEuNDEzIDEuMDE4Ii8+PHBhdGggc3Ryb2tlPSJoc2woNiwgMTAwJSwgNTAlKSIgZD0iTTk0LjUxNyAxODcuNzU4YTY2LjUgNjYuNSAwIDAwMS4zOTUgMS4wNDIiLz48cGF0aCBzdHJva2U9ImhzbCg3LCAxMDAlLCA1MCUpIiBkPSJNOTMuNjAzIDE4Ny4wNDNhNjYuNSA2Ni41IDAgMDAxLjM3NiAxLjA2NiIvPjxwYXRoIHN0cm9rZT0iaHNsKDgsIDEwMCUsIDUwJSkiIGQ9Ik05Mi43IDE4Ni4zMTNhNjYuNSA2Ni41IDAgMDAxLjM1OSAxLjA5Ii8+PHBhdGggc3Ryb2tlPSJoc2woOSwgMTAwJSwgNTAlKSIgZD0iTTkxLjgxMiAxODUuNTY3YTY2LjUgNjYuNSAwIDAwMS4zMzggMS4xMTMiLz48cGF0aCBzdHJva2U9ImhzbCgxMCwgMTAwJSwgNTAlKSIgZD0iTTkwLjkzNiAxODQuODA2YTY2LjUgNjYuNSAwIDAwMS4zMTkgMS4xMzYiLz48cGF0aCBzdHJva2U9ImhzbCgxMSwgMTAwJSwgNTAlKSIgZD0iTTkwLjA3MyAxODQuMDI5YTY2LjUgNjYuNSAwIDAwMS4zIDEuMTYiLz48cGF0aCBzdHJva2U9ImhzbCgxMiwgMTAwJSwgNTAlKSIgZD0iTTg5LjIyNCAxODMuMjM3YTY2LjUgNjYuNSAwIDAwMS4yNzkgMS4xODIiLz48cGF0aCBzdHJva2U9ImhzbCgxMywgMTAwJSwgNTAlKSIgZD0iTTg4LjM5IDE4Mi40MzFhNjYuNSA2Ni41IDAgMDAxLjI1NyAxLjIwNCIvPjxwYXRoIHN0cm9rZT0iaHNsKDE0LCAxMDAlLCA1MCUpIiBkPSJNODcuNTY5IDE4MS42MWE2Ni41IDY2LjUgMCAwMDEuMjM2IDEuMjI2Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTUsIDEwMCUsIDUwJSkiIGQ9Ik04Ni43NjMgMTgwLjc3NmE2Ni41IDY2LjUgMCAwMDEuMjE0IDEuMjQ3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTYsIDEwMCUsIDUwJSkiIGQ9Ik04NS45NzEgMTc5LjkyN2E2Ni41IDY2LjUgMCAwMDEuMTkzIDEuMjY4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTcsIDEwMCUsIDUwJSkiIGQ9Ik04NS4xOTQgMTc5LjA2NGE2Ni41IDY2LjUgMCAwMDEuMTcxIDEuMjg5Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTgsIDEwMCUsIDUwJSkiIGQ9Ik04NC40MzMgMTc4LjE4OGE2Ni41IDY2LjUgMCAwMDEuMTQ4IDEuMzEiLz48cGF0aCBzdHJva2U9ImhzbCgxOSwgMTAwJSwgNTAlKSIgZD0iTTgzLjY4NyAxNzcuM2E2Ni41IDY2LjUgMCAwMDEuMTI1IDEuMzI4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjAsIDEwMCUsIDUwJSkiIGQ9Ik04Mi45NTcgMTc2LjM5N2E2Ni41IDY2LjUgMCAwMDEuMTAxIDEuMzQ4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjEsIDEwMCUsIDUwJSkiIGQ9Ik04Mi4yNDIgMTc1LjQ4M2E2Ni41IDY2LjUgMCAwMDEuMDc4IDEuMzY3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjIsIDEwMCUsIDUwJSkiIGQ9Ik04MS41NDQgMTc0LjU1NmE2Ni41IDY2LjUgMCAwMDEuMDUzIDEuMzg1Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjMsIDEwMCUsIDUwJSkiIGQ9Ik04MC44NjEgMTczLjYxN2E2Ni41IDY2LjUgMCAwMDEuMDMgMS40MDQiLz48cGF0aCBzdHJva2U9ImhzbCgyNCwgMTAwJSwgNTAlKSIgZD0iTTgwLjE5NiAxNzIuNjY2YTY2LjUgNjYuNSAwIDAwMS4wMDQgMS40MjIiLz48cGF0aCBzdHJva2U9ImhzbCgyNSwgMTAwJSwgNTAlKSIgZD0iTTc5LjU0NyAxNzEuNzA0YTY2LjUgNjYuNSAwIDAwLjk4IDEuNDM5Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjYsIDEwMCUsIDUwJSkiIGQ9Ik03OC45MTQgMTcwLjczYTY2LjUgNjYuNSAwIDAwLjk1NSAxLjQ1NiIvPjxwYXRoIHN0cm9rZT0iaHNsKDI3LCAxMDAlLCA1MCUpIiBkPSJNNzguMyAxNjkuNzQ2YTY2LjUgNjYuNSAwIDAwLjkyOCAxLjQ3MiIvPjxwYXRoIHN0cm9rZT0iaHNsKDI4LCAxMDAlLCA1MCUpIiBkPSJNNzcuNzAyIDE2OC43NTFhNjYuNSA2Ni41IDAgMDAuOTAzIDEuNDg5Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjksIDEwMCUsIDUwJSkiIGQ9Ik03Ny4xMjEgMTY3Ljc0NmE2Ni41IDY2LjUgMCAwMC44NzcgMS41MDQiLz48cGF0aCBzdHJva2U9ImhzbCgzMCwgMTAwJSwgNTAlKSIgZD0iTTc2LjU1OSAxNjYuNzMxYTY2LjUgNjYuNSAwIDAwLjg1IDEuNTE5Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzEsIDEwMCUsIDUwJSkiIGQ9Ik03Ni4wMTQgMTY1LjcwNmE2Ni41IDY2LjUgMCAwMC44MjQgMS41MzQiLz48cGF0aCBzdHJva2U9ImhzbCgzMiwgMTAwJSwgNTAlKSIgZD0iTTc1LjQ4NyAxNjQuNjcyYTY2LjUgNjYuNSAwIDAwLjc5NyAxLjU0OCIvPjxwYXRoIHN0cm9rZT0iaHNsKDMzLCAxMDAlLCA1MCUpIiBkPSJNNzQuOTc4IDE2My42MjlhNjYuNSA2Ni41IDAgMDAuNzcgMS41NjEiLz48cGF0aCBzdHJva2U9ImhzbCgzNCwgMTAwJSwgNTAlKSIgZD0iTTc0LjQ4OCAxNjIuNTc3YTY2LjUgNjYuNSAwIDAwLjc0MiAxLjU3NSIvPjxwYXRoIHN0cm9rZT0iaHNsKDM1LCAxMDAlLCA1MCUpIiBkPSJNNzQuMDE2IDE2MS41MTdhNjYuNSA2Ni41IDAgMDAuNzE1IDEuNTg3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzYsIDEwMCUsIDUwJSkiIGQ9Ik03My41NjIgMTYwLjQ0OGE2Ni41IDY2LjUgMCAwMC42ODcgMS42Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzcsIDEwMCUsIDUwJSkiIGQ9Ik03My4xMjcgMTU5LjM3MmE2Ni41IDY2LjUgMCAwMC42NiAxLjYxMiIvPjxwYXRoIHN0cm9rZT0iaHNsKDM4LCAxMDAlLCA1MCUpIiBkPSJNNzIuNzExIDE1OC4yODlhNjYuNSA2Ni41IDAgMDAuNjMxIDEuNjIyIi8+PHBhdGggc3Ryb2tlPSJoc2woMzksIDEwMCUsIDUwJSkiIGQ9Ik03Mi4zMTQgMTU3LjE5OGE2Ni41IDY2LjUgMCAwMC42MDMgMS42MzMiLz48cGF0aCBzdHJva2U9ImhzbCg0MCwgMTAwJSwgNTAlKSIgZD0iTTcxLjkzNiAxNTYuMWE2Ni41IDY2LjUgMCAwMC41NzQgMS42NDQiLz48cGF0aCBzdHJva2U9ImhzbCg0MSwgMTAwJSwgNTAlKSIgZD0iTTcxLjU3OCAxNTQuOTk3YTY2LjUgNjYuNSAwIDAwLjU0NSAxLjY1MyIvPjxwYXRoIHN0cm9rZT0iaHNsKDQyLCAxMDAlLCA1MCUpIiBkPSJNNzEuMjM4IDE1My44ODdhNjYuNSA2Ni41IDAgMDAuNTE3IDEuNjYzIi8+PHBhdGggc3Ryb2tlPSJoc2woNDMsIDEwMCUsIDUwJSkiIGQ9Ik03MC45MTkgMTUyLjc3MWE2Ni41IDY2LjUgMCAwMC40ODcgMS42NzIiLz48cGF0aCBzdHJva2U9ImhzbCg0NCwgMTAwJSwgNTAlKSIgZD0iTTcwLjYxOCAxNTEuNjVhNjYuNSA2Ni41IDAgMDAuNDU4IDEuNjgiLz48cGF0aCBzdHJva2U9ImhzbCg0NSwgMTAwJSwgNTAlKSIgZD0iTTcwLjMzNyAxNTAuNTI0YTY2LjUgNjYuNSAwIDAwLjQyOSAxLjY4NyIvPjxwYXRoIHN0cm9rZT0iaHNsKDQ2LCAxMDAlLCA1MCUpIiBkPSJNNzAuMDc2IDE0OS4zOTNhNjYuNSA2Ni41IDAgMDAuNCAxLjY5NSIvPjxwYXRoIHN0cm9rZT0iaHNsKDQ3LCAxMDAlLCA1MCUpIiBkPSJNNjkuODM1IDE0OC4yNThhNjYuNSA2Ni41IDAgMDAuMzcgMS43MDEiLz48cGF0aCBzdHJva2U9ImhzbCg0OCwgMTAwJSwgNTAlKSIgZD0iTTY5LjYxNCAxNDcuMTE5YTY2LjUgNjYuNSAwIDAwLjM0IDEuNzA3Ii8+PHBhdGggc3Ryb2tlPSJoc2woNDksIDEwMCUsIDUwJSkiIGQ9Ik02OS40MTIgMTQ1Ljk3NmE2Ni41IDY2LjUgMCAwMC4zMSAxLjcxMyIvPjxwYXRoIHN0cm9rZT0iaHNsKDUwLCAxMDAlLCA1MCUpIiBkPSJNNjkuMjMgMTQ0LjgzYTY2LjUgNjYuNSAwIDAwLjI4IDEuNzE4Ii8+PHBhdGggc3Ryb2tlPSJoc2woNTEsIDEwMCUsIDUwJSkiIGQ9Ik02OS4wNjkgMTQzLjY4YTY2LjUgNjYuNSAwIDAwLjI1IDEuNzIzIi8+PHBhdGggc3Ryb2tlPSJoc2woNTIsIDEwMCUsIDUwJSkiIGQ9Ik02OC45MjcgMTQyLjUyOGE2Ni41IDY2LjUgMCAwMC4yMiAxLjcyNyIvPjxwYXRoIHN0cm9rZT0iaHNsKDUzLCAxMDAlLCA1MCUpIiBkPSJNNjguODA2IDE0MS4zNzRhNjYuNSA2Ni41IDAgMDAuMTkgMS43MyIvPjxwYXRoIHN0cm9rZT0iaHNsKDU0LCAxMDAlLCA1MCUpIiBkPSJNNjguNzA1IDE0MC4yMThhNjYuNSA2Ni41IDAgMDAuMTYgMS43MzMiLz48cGF0aCBzdHJva2U9ImhzbCg1NSwgMTAwJSwgNTAlKSIgZD0iTTY4LjYyNCAxMzkuMDZhNjYuNSA2Ni41IDAgMDAuMTMgMS43MzYiLz48cGF0aCBzdHJva2U9ImhzbCg1NiwgMTAwJSwgNTAlKSIgZD0iTTY4LjU2MyAxMzcuOWE2Ni41IDY2LjUgMCAwMC4wOTkgMS43MzkiLz48cGF0aCBzdHJva2U9ImhzbCg1NywgMTAwJSwgNTAlKSIgZD0iTTY4LjUyMyAxMzYuNzRhNjYuNSA2Ni41IDAgMDAuMDY4IDEuNzQiLz48cGF0aCBzdHJva2U9ImhzbCg1OCwgMTAwJSwgNTAlKSIgZD0iTTY4LjUwMyAxMzUuNThhNjYuNSA2Ni41IDAgMDAuMDM4IDEuNzQiLz48cGF0aCBzdHJva2U9ImhzbCg1OSwgMTAwJSwgNTAlKSIgZD0iTTY4LjUwMyAxMzQuNDJhNjYuNSA2Ni41IDAgMDAuMDA3IDEuNzQiLz48cGF0aCBzdHJva2U9ImhzbCg2MCwgMTAwJSwgNTAlKSIgZD0iTTY4LjUyMyAxMzMuMjZBNjYuNSA2Ni41IDAgMDA2OC41IDEzNSIvPjxwYXRoIHN0cm9rZT0iaHNsKDYxLCAxMDAlLCA1MCUpIiBkPSJNNjguNTYzIDEzMi4xYTY2LjUgNjYuNSAwIDAwLS4wNTMgMS43NCIvPjxwYXRoIHN0cm9rZT0iaHNsKDYyLCAxMDAlLCA1MCUpIiBkPSJNNjguNjI0IDEzMC45NGE2Ni41IDY2LjUgMCAwMC0uMDgzIDEuNzQiLz48cGF0aCBzdHJva2U9ImhzbCg2MywgMTAwJSwgNTAlKSIgZD0iTTY4LjcwNSAxMjkuNzgyYTY2LjUgNjYuNSAwIDAwLS4xMTQgMS43MzgiLz48cGF0aCBzdHJva2U9ImhzbCg2NCwgMTAwJSwgNTAlKSIgZD0iTTY4LjgwNiAxMjguNjI2YTY2LjUgNjYuNSAwIDAwLS4xNDQgMS43MzUiLz48cGF0aCBzdHJva2U9ImhzbCg2NSwgMTAwJSwgNTAlKSIgZD0iTTY4LjkyNyAxMjcuNDcyYTY2LjUgNjYuNSAwIDAwLS4xNzQgMS43MzIiLz48cGF0aCBzdHJva2U9ImhzbCg2NiwgMTAwJSwgNTAlKSIgZD0iTTY5LjA2OSAxMjYuMzJhNjYuNSA2Ni41IDAgMDAtLjIwNSAxLjcyOSIvPjxwYXRoIHN0cm9rZT0iaHNsKDY3LCAxMDAlLCA1MCUpIiBkPSJNNjkuMjMgMTI1LjE3YTY2LjUgNjYuNSAwIDAwLS4yMzQgMS43MjYiLz48cGF0aCBzdHJva2U9ImhzbCg2OCwgMTAwJSwgNTAlKSIgZD0iTTY5LjQxMiAxMjQuMDI0YTY2LjUgNjYuNSAwIDAwLS4yNjUgMS43MjEiLz48cGF0aCBzdHJva2U9ImhzbCg2OSwgMTAwJSwgNTAlKSIgZD0iTTY5LjYxNCAxMjIuODgxYTY2LjUgNjYuNSAwIDAwLS4yOTUgMS43MTYiLz48cGF0aCBzdHJva2U9ImhzbCg3MCwgMTAwJSwgNTAlKSIgZD0iTTY5LjgzNSAxMjEuNzQyYTY2LjUgNjYuNSAwIDAwLS4zMjUgMS43MSIvPjxwYXRoIHN0cm9rZT0iaHNsKDcxLCAxMDAlLCA1MCUpIiBkPSJNNzAuMDc2IDEyMC42MDdhNjYuNSA2Ni41IDAgMDAtLjM1NCAxLjcwNCIvPjxwYXRoIHN0cm9rZT0iaHNsKDcyLCAxMDAlLCA1MCUpIiBkPSJNNzAuMzM3IDExOS40NzZhNjYuNSA2Ni41IDAgMDAtLjM4NCAxLjY5OCIvPjxwYXRoIHN0cm9rZT0iaHNsKDczLCAxMDAlLCA1MCUpIiBkPSJNNzAuNjE4IDExOC4zNWE2Ni41IDY2LjUgMCAwMC0uNDE0IDEuNjkiLz48cGF0aCBzdHJva2U9ImhzbCg3NCwgMTAwJSwgNTAlKSIgZD0iTTcwLjkxOSAxMTcuMjI5YTY2LjUgNjYuNSAwIDAwLS40NDQgMS42ODMiLz48cGF0aCBzdHJva2U9ImhzbCg3NSwgMTAwJSwgNTAlKSIgZD0iTTcxLjIzOCAxMTYuMTEzYTY2LjUgNjYuNSAwIDAwLS40NzIgMS42NzYiLz48cGF0aCBzdHJva2U9ImhzbCg3NiwgMTAwJSwgNTAlKSIgZD0iTTcxLjU3OCAxMTUuMDAzYTY2LjUgNjYuNSAwIDAwLS41MDIgMS42NjciLz48cGF0aCBzdHJva2U9ImhzbCg3NywgMTAwJSwgNTAlKSIgZD0iTTcxLjkzNiAxMTMuOWE2Ni41IDY2LjUgMCAwMC0uNTMgMS42NTciLz48cGF0aCBzdHJva2U9ImhzbCg3OCwgMTAwJSwgNTAlKSIgZD0iTTcyLjMxNCAxMTIuODAyYTY2LjUgNjYuNSAwIDAwLS41NiAxLjY0OCIvPjxwYXRoIHN0cm9rZT0iaHNsKDc5LCAxMDAlLCA1MCUpIiBkPSJNNzIuNzExIDExMS43MTFhNjYuNSA2Ni41IDAgMDAtLjU4OCAxLjYzOSIvPjxwYXRoIHN0cm9rZT0iaHNsKDgwLCAxMDAlLCA1MCUpIiBkPSJNNzMuMTI3IDExMC42MjhhNjYuNSA2Ni41IDAgMDAtLjYxNyAxLjYyOCIvPjxwYXRoIHN0cm9rZT0iaHNsKDgxLCAxMDAlLCA1MCUpIiBkPSJNNzMuNTYyIDEwOS41NTJhNjYuNSA2Ni41IDAgMDAtLjY0NSAxLjYxNyIvPjxwYXRoIHN0cm9rZT0iaHNsKDgyLCAxMDAlLCA1MCUpIiBkPSJNNzQuMDE2IDEwOC40ODNhNjYuNSA2Ni41IDAgMDAtLjY3NCAxLjYwNiIvPjxwYXRoIHN0cm9rZT0iaHNsKDgzLCAxMDAlLCA1MCUpIiBkPSJNNzQuNDg4IDEwNy40MjNhNjYuNSA2Ni41IDAgMDAtLjcwMiAxLjU5MyIvPjxwYXRoIHN0cm9rZT0iaHNsKDg0LCAxMDAlLCA1MCUpIiBkPSJNNzQuOTc4IDEwNi4zNzFhNjYuNSA2Ni41IDAgMDAtLjcyOSAxLjU4MSIvPjxwYXRoIHN0cm9rZT0iaHNsKDg1LCAxMDAlLCA1MCUpIiBkPSJNNzUuNDg3IDEwNS4zMjhhNjYuNSA2Ni41IDAgMDAtLjc1NiAxLjU2OCIvPjxwYXRoIHN0cm9rZT0iaHNsKDg2LCAxMDAlLCA1MCUpIiBkPSJNNzYuMDE0IDEwNC4yOTRhNjYuNSA2Ni41IDAgMDAtLjc4NCAxLjU1NCIvPjxwYXRoIHN0cm9rZT0iaHNsKDg3LCAxMDAlLCA1MCUpIiBkPSJNNzYuNTU5IDEwMy4yNjlhNjYuNSA2Ni41IDAgMDAtLjgxIDEuNTQiLz48cGF0aCBzdHJva2U9ImhzbCg4OCwgMTAwJSwgNTAlKSIgZD0iTTc3LjEyMSAxMDIuMjU0YTY2LjUgNjYuNSAwIDAwLS44MzcgMS41MjYiLz48cGF0aCBzdHJva2U9ImhzbCg4OSwgMTAwJSwgNTAlKSIgZD0iTTc3LjcwMiAxMDEuMjQ5YTY2LjUgNjYuNSAwIDAwLS44NjQgMS41MTEiLz48cGF0aCBzdHJva2U9ImhzbCg5MCwgMTAwJSwgNTAlKSIgZD0iTTc4LjMgMTAwLjI1NGE2Ni41IDY2LjUgMCAwMC0uODkgMS40OTYiLz48cGF0aCBzdHJva2U9ImhzbCg5MSwgMTAwJSwgNTAlKSIgZD0iTTc4LjkxNCA5OS4yN2E2Ni41IDY2LjUgMCAwMC0uOTE2IDEuNDgiLz48cGF0aCBzdHJva2U9ImhzbCg5MiwgMTAwJSwgNTAlKSIgZD0iTTc5LjU0NyA5OC4yOTZhNjYuNSA2Ni41IDAgMDAtLjk0MiAxLjQ2NCIvPjxwYXRoIHN0cm9rZT0iaHNsKDkzLCAxMDAlLCA1MCUpIiBkPSJNODAuMTk2IDk3LjMzNGE2Ni41IDY2LjUgMCAwMC0uOTY4IDEuNDQ4Ii8+PHBhdGggc3Ryb2tlPSJoc2woOTQsIDEwMCUsIDUwJSkiIGQ9Ik04MC44NjEgOTYuMzgzYTY2LjUgNjYuNSAwIDAwLS45OTIgMS40MyIvPjxwYXRoIHN0cm9rZT0iaHNsKDk1LCAxMDAlLCA1MCUpIiBkPSJNODEuNTQ0IDk1LjQ0NGE2Ni41IDY2LjUgMCAwMC0xLjAxOCAxLjQxMyIvPjxwYXRoIHN0cm9rZT0iaHNsKDk2LCAxMDAlLCA1MCUpIiBkPSJNODIuMjQyIDk0LjUxN2E2Ni41IDY2LjUgMCAwMC0xLjA0MiAxLjM5NSIvPjxwYXRoIHN0cm9rZT0iaHNsKDk3LCAxMDAlLCA1MCUpIiBkPSJNODIuOTU3IDkzLjYwM2E2Ni41IDY2LjUgMCAwMC0xLjA2NiAxLjM3NiIvPjxwYXRoIHN0cm9rZT0iaHNsKDk4LCAxMDAlLCA1MCUpIiBkPSJNODMuNjg3IDkyLjdhNjYuNSA2Ni41IDAgMDAtMS4wOSAxLjM1OSIvPjxwYXRoIHN0cm9rZT0iaHNsKDk5LCAxMDAlLCA1MCUpIiBkPSJNODQuNDMzIDkxLjgxMmE2Ni41IDY2LjUgMCAwMC0xLjExMyAxLjMzOCIvPjxwYXRoIHN0cm9rZT0iaHNsKDEwMCwgMTAwJSwgNTAlKSIgZD0iTTg1LjE5NCA5MC45MzZhNjYuNSA2Ni41IDAgMDAtMS4xMzYgMS4zMTkiLz48cGF0aCBzdHJva2U9ImhzbCgxMDEsIDEwMCUsIDUwJSkiIGQ9Ik04NS45NzEgOTAuMDczYTY2LjUgNjYuNSAwIDAwLTEuMTYgMS4zIi8+PHBhdGggc3Ryb2tlPSJoc2woMTAyLCAxMDAlLCA1MCUpIiBkPSJNODYuNzYzIDg5LjIyNGE2Ni41IDY2LjUgMCAwMC0xLjE4MiAxLjI3OSIvPjxwYXRoIHN0cm9rZT0iaHNsKDEwMywgMTAwJSwgNTAlKSIgZD0iTTg3LjU2OSA4OC4zOWE2Ni41IDY2LjUgMCAwMC0xLjIwNCAxLjI1NyIvPjxwYXRoIHN0cm9rZT0iaHNsKDEwNCwgMTAwJSwgNTAlKSIgZD0iTTg4LjM5IDg3LjU2OWE2Ni41IDY2LjUgMCAwMC0xLjIyNiAxLjIzNiIvPjxwYXRoIHN0cm9rZT0iaHNsKDEwNSwgMTAwJSwgNTAlKSIgZD0iTTg5LjIyNCA4Ni43NjNhNjYuNSA2Ni41IDAgMDAtMS4yNDcgMS4yMTQiLz48cGF0aCBzdHJva2U9ImhzbCgxMDYsIDEwMCUsIDUwJSkiIGQ9Ik05MC4wNzMgODUuOTcxYTY2LjUgNjYuNSAwIDAwLTEuMjY4IDEuMTkzIi8+PHBhdGggc3Ryb2tlPSJoc2woMTA3LCAxMDAlLCA1MCUpIiBkPSJNOTAuOTM2IDg1LjE5NGE2Ni41IDY2LjUgMCAwMC0xLjI4OSAxLjE3MSIvPjxwYXRoIHN0cm9rZT0iaHNsKDEwOCwgMTAwJSwgNTAlKSIgZD0iTTkxLjgxMiA4NC40MzNhNjYuNSA2Ni41IDAgMDAtMS4zMSAxLjE0OCIvPjxwYXRoIHN0cm9rZT0iaHNsKDEwOSwgMTAwJSwgNTAlKSIgZD0iTTkyLjcgODMuNjg3YTY2LjUgNjYuNSAwIDAwLTEuMzI4IDEuMTI1Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTEwLCAxMDAlLCA1MCUpIiBkPSJNOTMuNjAzIDgyLjk1N2E2Ni41IDY2LjUgMCAwMC0xLjM0OCAxLjEwMSIvPjxwYXRoIHN0cm9rZT0iaHNsKDExMSwgMTAwJSwgNTAlKSIgZD0iTTk0LjUxNyA4Mi4yNDJhNjYuNSA2Ni41IDAgMDAtMS4zNjcgMS4wNzgiLz48cGF0aCBzdHJva2U9ImhzbCgxMTIsIDEwMCUsIDUwJSkiIGQ9Ik05NS40NDQgODEuNTQ0YTY2LjUgNjYuNSAwIDAwLTEuMzg1IDEuMDUzIi8+PHBhdGggc3Ryb2tlPSJoc2woMTEzLCAxMDAlLCA1MCUpIiBkPSJNOTYuMzgzIDgwLjg2MWE2Ni41IDY2LjUgMCAwMC0xLjQwNCAxLjAzIi8+PHBhdGggc3Ryb2tlPSJoc2woMTE0LCAxMDAlLCA1MCUpIiBkPSJNOTcuMzM0IDgwLjE5NmE2Ni41IDY2LjUgMCAwMC0xLjQyMiAxLjAwNCIvPjxwYXRoIHN0cm9rZT0iaHNsKDExNSwgMTAwJSwgNTAlKSIgZD0iTTk4LjI5NiA3OS41NDdhNjYuNSA2Ni41IDAgMDAtMS40MzkuOTgiLz48cGF0aCBzdHJva2U9ImhzbCgxMTYsIDEwMCUsIDUwJSkiIGQ9Ik05OS4yNyA3OC45MTRhNjYuNSA2Ni41IDAgMDAtMS40NTYuOTU1Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTE3LCAxMDAlLCA1MCUpIiBkPSJNMTAwLjI1NCA3OC4zYTY2LjUgNjYuNSAwIDAwLTEuNDcyLjkyOCIvPjxwYXRoIHN0cm9rZT0iaHNsKDExOCwgMTAwJSwgNTAlKSIgZD0iTTEwMS4yNDkgNzcuNzAyYTY2LjUgNjYuNSAwIDAwLTEuNDg5LjkwMyIvPjxwYXRoIHN0cm9rZT0iaHNsKDExOSwgMTAwJSwgNTAlKSIgZD0iTTEwMi4yNTQgNzcuMTIxYTY2LjUgNjYuNSAwIDAwLTEuNTA0Ljg3NyIvPjxwYXRoIHN0cm9rZT0iaHNsKDEyMCwgMTAwJSwgNTAlKSIgZD0iTTEwMy4yNjkgNzYuNTU5YTY2LjUgNjYuNSAwIDAwLTEuNTE5Ljg1Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTIxLCAxMDAlLCA1MCUpIiBkPSJNMTA0LjI5NCA3Ni4wMTRhNjYuNSA2Ni41IDAgMDAtMS41MzQuODI0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTIyLCAxMDAlLCA1MCUpIiBkPSJNMTA1LjMyOCA3NS40ODdhNjYuNSA2Ni41IDAgMDAtMS41NDguNzk3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTIzLCAxMDAlLCA1MCUpIiBkPSJNMTA2LjM3MSA3NC45NzhhNjYuNSA2Ni41IDAgMDAtMS41NjEuNzciLz48cGF0aCBzdHJva2U9ImhzbCgxMjQsIDEwMCUsIDUwJSkiIGQ9Ik0xMDcuNDIzIDc0LjQ4OGE2Ni41IDY2LjUgMCAwMC0xLjU3NS43NDIiLz48cGF0aCBzdHJva2U9ImhzbCgxMjUsIDEwMCUsIDUwJSkiIGQ9Ik0xMDguNDgzIDc0LjAxNmE2Ni41IDY2LjUgMCAwMC0xLjU4Ny43MTUiLz48cGF0aCBzdHJva2U9ImhzbCgxMjYsIDEwMCUsIDUwJSkiIGQ9Ik0xMDkuNTUyIDczLjU2MmE2Ni41IDY2LjUgMCAwMC0xLjYuNjg3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTI3LCAxMDAlLCA1MCUpIiBkPSJNMTEwLjYyOCA3My4xMjdhNjYuNSA2Ni41IDAgMDAtMS42MTIuNjYiLz48cGF0aCBzdHJva2U9ImhzbCgxMjgsIDEwMCUsIDUwJSkiIGQ9Ik0xMTEuNzExIDcyLjcxMWE2Ni41IDY2LjUgMCAwMC0xLjYyMi42MzEiLz48cGF0aCBzdHJva2U9ImhzbCgxMjksIDEwMCUsIDUwJSkiIGQ9Ik0xMTIuODAyIDcyLjMxNGE2Ni41IDY2LjUgMCAwMC0xLjYzMy42MDMiLz48cGF0aCBzdHJva2U9ImhzbCgxMzAsIDEwMCUsIDUwJSkiIGQ9Ik0xMTMuOSA3MS45MzZhNjYuNSA2Ni41IDAgMDAtMS42NDQuNTc0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTMxLCAxMDAlLCA1MCUpIiBkPSJNMTE1LjAwMyA3MS41NzhhNjYuNSA2Ni41IDAgMDAtMS42NTMuNTQ1Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTMyLCAxMDAlLCA1MCUpIiBkPSJNMTE2LjExMyA3MS4yMzhhNjYuNSA2Ni41IDAgMDAtMS42NjMuNTE3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTMzLCAxMDAlLCA1MCUpIiBkPSJNMTE3LjIyOSA3MC45MTlhNjYuNSA2Ni41IDAgMDAtMS42NzIuNDg3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTM0LCAxMDAlLCA1MCUpIiBkPSJNMTE4LjM1IDcwLjYxOGE2Ni41IDY2LjUgMCAwMC0xLjY4LjQ1OCIvPjxwYXRoIHN0cm9rZT0iaHNsKDEzNSwgMTAwJSwgNTAlKSIgZD0iTTExOS40NzYgNzAuMzM3YTY2LjUgNjYuNSAwIDAwLTEuNjg3LjQyOSIvPjxwYXRoIHN0cm9rZT0iaHNsKDEzNiwgMTAwJSwgNTAlKSIgZD0iTTEyMC42MDcgNzAuMDc2YTY2LjUgNjYuNSAwIDAwLTEuNjk1LjQiLz48cGF0aCBzdHJva2U9ImhzbCgxMzcsIDEwMCUsIDUwJSkiIGQ9Ik0xMjEuNzQyIDY5LjgzNWE2Ni41IDY2LjUgMCAwMC0xLjcwMS4zNyIvPjxwYXRoIHN0cm9rZT0iaHNsKDEzOCwgMTAwJSwgNTAlKSIgZD0iTTEyMi44ODEgNjkuNjE0YTY2LjUgNjYuNSAwIDAwLTEuNzA3LjM0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTM5LCAxMDAlLCA1MCUpIiBkPSJNMTI0LjAyNCA2OS40MTJhNjYuNSA2Ni41IDAgMDAtMS43MTMuMzEiLz48cGF0aCBzdHJva2U9ImhzbCgxNDAsIDEwMCUsIDUwJSkiIGQ9Ik0xMjUuMTcgNjkuMjNhNjYuNSA2Ni41IDAgMDAtMS43MTguMjgiLz48cGF0aCBzdHJva2U9ImhzbCgxNDEsIDEwMCUsIDUwJSkiIGQ9Ik0xMjYuMzIgNjkuMDY5YTY2LjUgNjYuNSAwIDAwLTEuNzIzLjI1Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTQyLCAxMDAlLCA1MCUpIiBkPSJNMTI3LjQ3MiA2OC45MjdhNjYuNSA2Ni41IDAgMDAtMS43MjcuMjIiLz48cGF0aCBzdHJva2U9ImhzbCgxNDMsIDEwMCUsIDUwJSkiIGQ9Ik0xMjguNjI2IDY4LjgwNmE2Ni41IDY2LjUgMCAwMC0xLjczLjE5Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTQ0LCAxMDAlLCA1MCUpIiBkPSJNMTI5Ljc4MiA2OC43MDVhNjYuNSA2Ni41IDAgMDAtMS43MzMuMTYiLz48cGF0aCBzdHJva2U9ImhzbCgxNDUsIDEwMCUsIDUwJSkiIGQ9Ik0xMzAuOTQgNjguNjI0YTY2LjUgNjYuNSAwIDAwLTEuNzM2LjEzIi8+PHBhdGggc3Ryb2tlPSJoc2woMTQ2LCAxMDAlLCA1MCUpIiBkPSJNMTMyLjEgNjguNTYzYTY2LjUgNjYuNSAwIDAwLTEuNzM5LjA5OSIvPjxwYXRoIHN0cm9rZT0iaHNsKDE0NywgMTAwJSwgNTAlKSIgZD0iTTEzMy4yNiA2OC41MjNhNjYuNSA2Ni41IDAgMDAtMS43NC4wNjgiLz48cGF0aCBzdHJva2U9ImhzbCgxNDgsIDEwMCUsIDUwJSkiIGQ9Ik0xMzQuNDIgNjguNTAzYTY2LjUgNjYuNSAwIDAwLTEuNzQuMDM4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTQ5LCAxMDAlLCA1MCUpIiBkPSJNMTM1LjU4IDY4LjUwM2E2Ni41IDY2LjUgMCAwMC0xLjc0LjAwNyIvPjxwYXRoIHN0cm9rZT0iaHNsKDE1MCwgMTAwJSwgNTAlKSIgZD0iTTEzNi43NCA2OC41MjNBNjYuNSA2Ni41IDAgMDAxMzUgNjguNSIvPjxwYXRoIHN0cm9rZT0iaHNsKDE1MSwgMTAwJSwgNTAlKSIgZD0iTTEzNy45IDY4LjU2M2E2Ni41IDY2LjUgMCAwMC0xLjc0LS4wNTMiLz48cGF0aCBzdHJva2U9ImhzbCgxNTIsIDEwMCUsIDUwJSkiIGQ9Ik0xMzkuMDYgNjguNjI0YTY2LjUgNjYuNSAwIDAwLTEuNzQtLjA4MyIvPjxwYXRoIHN0cm9rZT0iaHNsKDE1MywgMTAwJSwgNTAlKSIgZD0iTTE0MC4yMTggNjguNzA1YTY2LjUgNjYuNSAwIDAwLTEuNzM4LS4xMTQiLz48cGF0aCBzdHJva2U9ImhzbCgxNTQsIDEwMCUsIDUwJSkiIGQ9Ik0xNDEuMzc0IDY4LjgwNmE2Ni41IDY2LjUgMCAwMC0xLjczNS0uMTQ0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTU1LCAxMDAlLCA1MCUpIiBkPSJNMTQyLjUyOCA2OC45MjdhNjYuNSA2Ni41IDAgMDAtMS43MzItLjE3NCIvPjxwYXRoIHN0cm9rZT0iaHNsKDE1NiwgMTAwJSwgNTAlKSIgZD0iTTE0My42OCA2OS4wNjlhNjYuNSA2Ni41IDAgMDAtMS43MjktLjIwNSIvPjxwYXRoIHN0cm9rZT0iaHNsKDE1NywgMTAwJSwgNTAlKSIgZD0iTTE0NC44MyA2OS4yM2E2Ni41IDY2LjUgMCAwMC0xLjcyNi0uMjM0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTU4LCAxMDAlLCA1MCUpIiBkPSJNMTQ1Ljk3NiA2OS40MTJhNjYuNSA2Ni41IDAgMDAtMS43MjEtLjI2NSIvPjxwYXRoIHN0cm9rZT0iaHNsKDE1OSwgMTAwJSwgNTAlKSIgZD0iTTE0Ny4xMTkgNjkuNjE0YTY2LjUgNjYuNSAwIDAwLTEuNzE2LS4yOTUiLz48cGF0aCBzdHJva2U9ImhzbCgxNjAsIDEwMCUsIDUwJSkiIGQ9Ik0xNDguMjU4IDY5LjgzNWE2Ni41IDY2LjUgMCAwMC0xLjcxLS4zMjUiLz48cGF0aCBzdHJva2U9ImhzbCgxNjEsIDEwMCUsIDUwJSkiIGQ9Ik0xNDkuMzkzIDcwLjA3NmE2Ni41IDY2LjUgMCAwMC0xLjcwNC0uMzU0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTYyLCAxMDAlLCA1MCUpIiBkPSJNMTUwLjUyNCA3MC4zMzdhNjYuNSA2Ni41IDAgMDAtMS42OTgtLjM4NCIvPjxwYXRoIHN0cm9rZT0iaHNsKDE2MywgMTAwJSwgNTAlKSIgZD0iTTE1MS42NSA3MC42MThhNjYuNSA2Ni41IDAgMDAtMS42OS0uNDE0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTY0LCAxMDAlLCA1MCUpIiBkPSJNMTUyLjc3MSA3MC45MTlhNjYuNSA2Ni41IDAgMDAtMS42ODMtLjQ0NCIvPjxwYXRoIHN0cm9rZT0iaHNsKDE2NSwgMTAwJSwgNTAlKSIgZD0iTTE1My44ODcgNzEuMjM4YTY2LjUgNjYuNSAwIDAwLTEuNjc2LS40NzIiLz48cGF0aCBzdHJva2U9ImhzbCgxNjYsIDEwMCUsIDUwJSkiIGQ9Ik0xNTQuOTk3IDcxLjU3OGE2Ni41IDY2LjUgMCAwMC0xLjY2Ny0uNTAyIi8+PHBhdGggc3Ryb2tlPSJoc2woMTY3LCAxMDAlLCA1MCUpIiBkPSJNMTU2LjEgNzEuOTM2YTY2LjUgNjYuNSAwIDAwLTEuNjU3LS41MyIvPjxwYXRoIHN0cm9rZT0iaHNsKDE2OCwgMTAwJSwgNTAlKSIgZD0iTTE1Ny4xOTggNzIuMzE0YTY2LjUgNjYuNSAwIDAwLTEuNjQ4LS41NiIvPjxwYXRoIHN0cm9rZT0iaHNsKDE2OSwgMTAwJSwgNTAlKSIgZD0iTTE1OC4yODkgNzIuNzExYTY2LjUgNjYuNSAwIDAwLTEuNjM5LS41ODgiLz48cGF0aCBzdHJva2U9ImhzbCgxNzAsIDEwMCUsIDUwJSkiIGQ9Ik0xNTkuMzcyIDczLjEyN2E2Ni41IDY2LjUgMCAwMC0xLjYyOC0uNjE3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTcxLCAxMDAlLCA1MCUpIiBkPSJNMTYwLjQ0OCA3My41NjJhNjYuNSA2Ni41IDAgMDAtMS42MTctLjY0NSIvPjxwYXRoIHN0cm9rZT0iaHNsKDE3MiwgMTAwJSwgNTAlKSIgZD0iTTE2MS41MTcgNzQuMDE2YTY2LjUgNjYuNSAwIDAwLTEuNjA2LS42NzQiLz48cGF0aCBzdHJva2U9ImhzbCgxNzMsIDEwMCUsIDUwJSkiIGQ9Ik0xNjIuNTc3IDc0LjQ4OGE2Ni41IDY2LjUgMCAwMC0xLjU5My0uNzAyIi8+PHBhdGggc3Ryb2tlPSJoc2woMTc0LCAxMDAlLCA1MCUpIiBkPSJNMTYzLjYyOSA3NC45NzhhNjYuNSA2Ni41IDAgMDAtMS41ODEtLjcyOSIvPjxwYXRoIHN0cm9rZT0iaHNsKDE3NSwgMTAwJSwgNTAlKSIgZD0iTTE2NC42NzIgNzUuNDg3YTY2LjUgNjYuNSAwIDAwLTEuNTY4LS43NTYiLz48cGF0aCBzdHJva2U9ImhzbCgxNzYsIDEwMCUsIDUwJSkiIGQ9Ik0xNjUuNzA2IDc2LjAxNGE2Ni41IDY2LjUgMCAwMC0xLjU1NC0uNzg0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTc3LCAxMDAlLCA1MCUpIiBkPSJNMTY2LjczMSA3Ni41NTlhNjYuNSA2Ni41IDAgMDAtMS41NC0uODEiLz48cGF0aCBzdHJva2U9ImhzbCgxNzgsIDEwMCUsIDUwJSkiIGQ9Ik0xNjcuNzQ2IDc3LjEyMWE2Ni41IDY2LjUgMCAwMC0xLjUyNi0uODM3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTc5LCAxMDAlLCA1MCUpIiBkPSJNMTY4Ljc1MSA3Ny43MDJhNjYuNSA2Ni41IDAgMDAtMS41MTEtLjg2NCIvPjxwYXRoIHN0cm9rZT0iaHNsKDE4MCwgMTAwJSwgNTAlKSIgZD0iTTE2OS43NDYgNzguM2E2Ni41IDY2LjUgMCAwMC0xLjQ5Ni0uODkiLz48cGF0aCBzdHJva2U9ImhzbCgxODEsIDEwMCUsIDUwJSkiIGQ9Ik0xNzAuNzMgNzguOTE0YTY2LjUgNjYuNSAwIDAwLTEuNDgtLjkxNiIvPjxwYXRoIHN0cm9rZT0iaHNsKDE4MiwgMTAwJSwgNTAlKSIgZD0iTTE3MS43MDQgNzkuNTQ3YTY2LjUgNjYuNSAwIDAwLTEuNDY0LS45NDIiLz48cGF0aCBzdHJva2U9ImhzbCgxODMsIDEwMCUsIDUwJSkiIGQ9Ik0xNzIuNjY2IDgwLjE5NmE2Ni41IDY2LjUgMCAwMC0xLjQ0OC0uOTY4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTg0LCAxMDAlLCA1MCUpIiBkPSJNMTczLjYxNyA4MC44NjFhNjYuNSA2Ni41IDAgMDAtMS40My0uOTkyIi8+PHBhdGggc3Ryb2tlPSJoc2woMTg1LCAxMDAlLCA1MCUpIiBkPSJNMTc0LjU1NiA4MS41NDRhNjYuNSA2Ni41IDAgMDAtMS40MTMtMS4wMTgiLz48cGF0aCBzdHJva2U9ImhzbCgxODYsIDEwMCUsIDUwJSkiIGQ9Ik0xNzUuNDgzIDgyLjI0MmE2Ni41IDY2LjUgMCAwMC0xLjM5NS0xLjA0MiIvPjxwYXRoIHN0cm9rZT0iaHNsKDE4NywgMTAwJSwgNTAlKSIgZD0iTTE3Ni4zOTcgODIuOTU3YTY2LjUgNjYuNSAwIDAwLTEuMzc2LTEuMDY2Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTg4LCAxMDAlLCA1MCUpIiBkPSJNMTc3LjMgODMuNjg3YTY2LjUgNjYuNSAwIDAwLTEuMzU5LTEuMDkiLz48cGF0aCBzdHJva2U9ImhzbCgxODksIDEwMCUsIDUwJSkiIGQ9Ik0xNzguMTg4IDg0LjQzM2E2Ni41IDY2LjUgMCAwMC0xLjMzOC0xLjExMyIvPjxwYXRoIHN0cm9rZT0iaHNsKDE5MCwgMTAwJSwgNTAlKSIgZD0iTTE3OS4wNjQgODUuMTk0YTY2LjUgNjYuNSAwIDAwLTEuMzE5LTEuMTM2Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTkxLCAxMDAlLCA1MCUpIiBkPSJNMTc5LjkyNyA4NS45NzFhNjYuNSA2Ni41IDAgMDAtMS4zLTEuMTYiLz48cGF0aCBzdHJva2U9ImhzbCgxOTIsIDEwMCUsIDUwJSkiIGQ9Ik0xODAuNzc2IDg2Ljc2M2E2Ni41IDY2LjUgMCAwMC0xLjI3OS0xLjE4MiIvPjxwYXRoIHN0cm9rZT0iaHNsKDE5MywgMTAwJSwgNTAlKSIgZD0iTTE4MS42MSA4Ny41NjlhNjYuNSA2Ni41IDAgMDAtMS4yNTctMS4yMDQiLz48cGF0aCBzdHJva2U9ImhzbCgxOTQsIDEwMCUsIDUwJSkiIGQ9Ik0xODIuNDMxIDg4LjM5YTY2LjUgNjYuNSAwIDAwLTEuMjM2LTEuMjI2Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTk1LCAxMDAlLCA1MCUpIiBkPSJNMTgzLjIzNyA4OS4yMjRhNjYuNSA2Ni41IDAgMDAtMS4yMTQtMS4yNDciLz48cGF0aCBzdHJva2U9ImhzbCgxOTYsIDEwMCUsIDUwJSkiIGQ9Ik0xODQuMDI5IDkwLjA3M2E2Ni41IDY2LjUgMCAwMC0xLjE5My0xLjI2OCIvPjxwYXRoIHN0cm9rZT0iaHNsKDE5NywgMTAwJSwgNTAlKSIgZD0iTTE4NC44MDYgOTAuOTM2YTY2LjUgNjYuNSAwIDAwLTEuMTcxLTEuMjg5Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTk4LCAxMDAlLCA1MCUpIiBkPSJNMTg1LjU2NyA5MS44MTJhNjYuNSA2Ni41IDAgMDAtMS4xNDgtMS4zMSIvPjxwYXRoIHN0cm9rZT0iaHNsKDE5OSwgMTAwJSwgNTAlKSIgZD0iTTE4Ni4zMTMgOTIuN2E2Ni41IDY2LjUgMCAwMC0xLjEyNS0xLjMyOCIvPjxwYXRoIHN0cm9rZT0iaHNsKDIwMCwgMTAwJSwgNTAlKSIgZD0iTTE4Ny4wNDMgOTMuNjAzYTY2LjUgNjYuNSAwIDAwLTEuMTAxLTEuMzQ4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjAxLCAxMDAlLCA1MCUpIiBkPSJNMTg3Ljc1OCA5NC41MTdhNjYuNSA2Ni41IDAgMDAtMS4wNzgtMS4zNjciLz48cGF0aCBzdHJva2U9ImhzbCgyMDIsIDEwMCUsIDUwJSkiIGQ9Ik0xODguNDU2IDk1LjQ0NGE2Ni41IDY2LjUgMCAwMC0xLjA1My0xLjM4NSIvPjxwYXRoIHN0cm9rZT0iaHNsKDIwMywgMTAwJSwgNTAlKSIgZD0iTTE4OS4xMzkgOTYuMzgzYTY2LjUgNjYuNSAwIDAwLTEuMDMtMS40MDQiLz48cGF0aCBzdHJva2U9ImhzbCgyMDQsIDEwMCUsIDUwJSkiIGQ9Ik0xODkuODA0IDk3LjMzNGE2Ni41IDY2LjUgMCAwMC0xLjAwNC0xLjQyMiIvPjxwYXRoIHN0cm9rZT0iaHNsKDIwNSwgMTAwJSwgNTAlKSIgZD0iTTE5MC40NTMgOTguMjk2YTY2LjUgNjYuNSAwIDAwLS45OC0xLjQzOSIvPjxwYXRoIHN0cm9rZT0iaHNsKDIwNiwgMTAwJSwgNTAlKSIgZD0iTTE5MS4wODYgOTkuMjdhNjYuNSA2Ni41IDAgMDAtLjk1NS0xLjQ1NiIvPjxwYXRoIHN0cm9rZT0iaHNsKDIwNywgMTAwJSwgNTAlKSIgZD0iTTE5MS43IDEwMC4yNTRhNjYuNSA2Ni41IDAgMDAtLjkyOC0xLjQ3MiIvPjxwYXRoIHN0cm9rZT0iaHNsKDIwOCwgMTAwJSwgNTAlKSIgZD0iTTE5Mi4yOTggMTAxLjI0OWE2Ni41IDY2LjUgMCAwMC0uOTAzLTEuNDg5Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjA5LCAxMDAlLCA1MCUpIiBkPSJNMTkyLjg3OSAxMDIuMjU0YTY2LjUgNjYuNSAwIDAwLS44NzctMS41MDQiLz48cGF0aCBzdHJva2U9ImhzbCgyMTAsIDEwMCUsIDUwJSkiIGQ9Ik0xOTMuNDQxIDEwMy4yNjlhNjYuNSA2Ni41IDAgMDAtLjg1LTEuNTE5Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjExLCAxMDAlLCA1MCUpIiBkPSJNMTkzLjk4NiAxMDQuMjk0YTY2LjUgNjYuNSAwIDAwLS44MjQtMS41MzQiLz48cGF0aCBzdHJva2U9ImhzbCgyMTIsIDEwMCUsIDUwJSkiIGQ9Ik0xOTQuNTEzIDEwNS4zMjhhNjYuNSA2Ni41IDAgMDAtLjc5Ny0xLjU0OCIvPjxwYXRoIHN0cm9rZT0iaHNsKDIxMywgMTAwJSwgNTAlKSIgZD0iTTE5NS4wMjIgMTA2LjM3MWE2Ni41IDY2LjUgMCAwMC0uNzctMS41NjEiLz48cGF0aCBzdHJva2U9ImhzbCgyMTQsIDEwMCUsIDUwJSkiIGQ9Ik0xOTUuNTEyIDEwNy40MjNhNjYuNSA2Ni41IDAgMDAtLjc0Mi0xLjU3NSIvPjxwYXRoIHN0cm9rZT0iaHNsKDIxNSwgMTAwJSwgNTAlKSIgZD0iTTE5NS45ODQgMTA4LjQ4M2E2Ni41IDY2LjUgMCAwMC0uNzE1LTEuNTg3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjE2LCAxMDAlLCA1MCUpIiBkPSJNMTk2LjQzOCAxMDkuNTUyYTY2LjUgNjYuNSAwIDAwLS42ODctMS42Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjE3LCAxMDAlLCA1MCUpIiBkPSJNMTk2Ljg3MyAxMTAuNjI4YTY2LjUgNjYuNSAwIDAwLS42Ni0xLjYxMiIvPjxwYXRoIHN0cm9rZT0iaHNsKDIxOCwgMTAwJSwgNTAlKSIgZD0iTTE5Ny4yODkgMTExLjcxMWE2Ni41IDY2LjUgMCAwMC0uNjMxLTEuNjIyIi8+PHBhdGggc3Ryb2tlPSJoc2woMjE5LCAxMDAlLCA1MCUpIiBkPSJNMTk3LjY4NiAxMTIuODAyYTY2LjUgNjYuNSAwIDAwLS42MDMtMS42MzMiLz48cGF0aCBzdHJva2U9ImhzbCgyMjAsIDEwMCUsIDUwJSkiIGQ9Ik0xOTguMDY0IDExMy45YTY2LjUgNjYuNSAwIDAwLS41NzQtMS42NDQiLz48cGF0aCBzdHJva2U9ImhzbCgyMjEsIDEwMCUsIDUwJSkiIGQ9Ik0xOTguNDIyIDExNS4wMDNhNjYuNSA2Ni41IDAgMDAtLjU0NS0xLjY1MyIvPjxwYXRoIHN0cm9rZT0iaHNsKDIyMiwgMTAwJSwgNTAlKSIgZD0iTTE5OC43NjIgMTE2LjExM2E2Ni41IDY2LjUgMCAwMC0uNTE3LTEuNjYzIi8+PHBhdGggc3Ryb2tlPSJoc2woMjIzLCAxMDAlLCA1MCUpIiBkPSJNMTk5LjA4MSAxMTcuMjI5YTY2LjUgNjYuNSAwIDAwLS40ODctMS42NzIiLz48cGF0aCBzdHJva2U9ImhzbCgyMjQsIDEwMCUsIDUwJSkiIGQ9Ik0xOTkuMzgyIDExOC4zNWE2Ni41IDY2LjUgMCAwMC0uNDU4LTEuNjgiLz48cGF0aCBzdHJva2U9ImhzbCgyMjUsIDEwMCUsIDUwJSkiIGQ9Ik0xOTkuNjYzIDExOS40NzZhNjYuNSA2Ni41IDAgMDAtLjQyOS0xLjY4NyIvPjxwYXRoIHN0cm9rZT0iaHNsKDIyNiwgMTAwJSwgNTAlKSIgZD0iTTE5OS45MjQgMTIwLjYwN2E2Ni41IDY2LjUgMCAwMC0uNC0xLjY5NSIvPjxwYXRoIHN0cm9rZT0iaHNsKDIyNywgMTAwJSwgNTAlKSIgZD0iTTIwMC4xNjUgMTIxLjc0MmE2Ni41IDY2LjUgMCAwMC0uMzctMS43MDEiLz48cGF0aCBzdHJva2U9ImhzbCgyMjgsIDEwMCUsIDUwJSkiIGQ9Ik0yMDAuMzg2IDEyMi44ODFhNjYuNSA2Ni41IDAgMDAtLjM0LTEuNzA3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjI5LCAxMDAlLCA1MCUpIiBkPSJNMjAwLjU4OCAxMjQuMDI0YTY2LjUgNjYuNSAwIDAwLS4zMS0xLjcxMyIvPjxwYXRoIHN0cm9rZT0iaHNsKDIzMCwgMTAwJSwgNTAlKSIgZD0iTTIwMC43NyAxMjUuMTdhNjYuNSA2Ni41IDAgMDAtLjI4LTEuNzE4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjMxLCAxMDAlLCA1MCUpIiBkPSJNMjAwLjkzMSAxMjYuMzJhNjYuNSA2Ni41IDAgMDAtLjI1LTEuNzIzIi8+PHBhdGggc3Ryb2tlPSJoc2woMjMyLCAxMDAlLCA1MCUpIiBkPSJNMjAxLjA3MyAxMjcuNDcyYTY2LjUgNjYuNSAwIDAwLS4yMi0xLjcyNyIvPjxwYXRoIHN0cm9rZT0iaHNsKDIzMywgMTAwJSwgNTAlKSIgZD0iTTIwMS4xOTQgMTI4LjYyNmE2Ni41IDY2LjUgMCAwMC0uMTktMS43MyIvPjxwYXRoIHN0cm9rZT0iaHNsKDIzNCwgMTAwJSwgNTAlKSIgZD0iTTIwMS4yOTUgMTI5Ljc4MmE2Ni41IDY2LjUgMCAwMC0uMTYtMS43MzMiLz48cGF0aCBzdHJva2U9ImhzbCgyMzUsIDEwMCUsIDUwJSkiIGQ9Ik0yMDEuMzc2IDEzMC45NGE2Ni41IDY2LjUgMCAwMC0uMTMtMS43MzYiLz48cGF0aCBzdHJva2U9ImhzbCgyMzYsIDEwMCUsIDUwJSkiIGQ9Ik0yMDEuNDM3IDEzMi4xYTY2LjUgNjYuNSAwIDAwLS4wOTktMS43MzkiLz48cGF0aCBzdHJva2U9ImhzbCgyMzcsIDEwMCUsIDUwJSkiIGQ9Ik0yMDEuNDc3IDEzMy4yNmE2Ni41IDY2LjUgMCAwMC0uMDY4LTEuNzQiLz48cGF0aCBzdHJva2U9ImhzbCgyMzgsIDEwMCUsIDUwJSkiIGQ9Ik0yMDEuNDk3IDEzNC40MmE2Ni41IDY2LjUgMCAwMC0uMDM4LTEuNzQiLz48cGF0aCBzdHJva2U9ImhzbCgyMzksIDEwMCUsIDUwJSkiIGQ9Ik0yMDEuNDk3IDEzNS41OGE2Ni41IDY2LjUgMCAwMC0uMDA3LTEuNzQiLz48L2c+PGNpcmNsZSBjeD0iMTM1IiBjeT0iMTM1IiByPSIxMzMiIGZpbGw9InVybCgjYSkiIGNsYXNzPSJJcm9XaGVlbFNhdHVyYXRpb24iLz48Y2lyY2xlIGN4PSIxMzUiIGN5PSIxMzUiIHI9IjEzMyIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjZmZmIiBzdHJva2Utd2lkdGg9IjIiIGNsYXNzPSJJcm9XaGVlbEJvcmRlciIvPjwvc3ZnPg==",this.width=this.offsetWidth,this.height=this.offsetHeight},mousedown:function(M){var I=this,A=this.getContext("2d");function N(M,N){I.nextSibling.style.left=M+I.offsetLeft+"px",I.nextSibling.style.top=N+I.offsetTop+"px"}function D(M){N(M.layerX,M.layerY)}this.addEventListener("mousemove",D),this.addEventListener("mouseup",function M(N){N=A.getImageData(N.layerX,N.layerY,1,1).data;I.parentNode.color="rgb("+N[0]+","+N[1]+","+N[2]+")",this.removeEventListener("mousemove",D),this.removeEventListener("mouseup",M)}),N(M.layerX,M.layerY),I.nextSibling.hidden=!1}}},cursor:{component:"div",class:"satus-color-picker__cursor",attr:{hidden:!0}},slider:{component:"slider",class:"satus-color-picker__slider",step:.01},actions:{component:"section",class:"satus-color-picker__actions",cancel:{component:"button",text:"cancel",on:{click:function(){this.parentNode.parentNode.parentNode.close()}}},ok:{component:"button",text:"OK",on:{click:function(){var M=this.parentNode.parentNode.color;this.parentNode.parentNode.parentNode.parentComponent.valueElement.style.backgroundColor=M,satus.storage.set(this.parentNode.parentNode.parentNode.parentComponent.storage,M),this.parentNode.parentNode.parentNode.close()}}}}})}),N.appendChild(I),N},satus.components.list=function(M){for(var N=document.createElement("ul"),I=0,A=M.items.length;IAlt")),!0===C.ctrlKey&&(N.push("Ctrl"),I.push("Ctrl
")),!0===C.shiftKey&&(N.push("Shift"),I.push("Shift
"))," "===C.key?(N.push("Space bar"),I.push("Space bar
")):"string"==typeof C.key&&-1===["Shift","Control","Alt"].indexOf(C.key)&&("ArrowUp"===C.key?(N.push("↑"),I.push("↑
")):"ArrowRight"===C.key?(N.push("→"),I.push("→
")):"ArrowDown"===C.key?(N.push("↓"),I.push("↓
")):"ArrowLeft"===C.key?(N.push("←"),I.push("←
")):(A=C.key.toUpperCase(),N.push(A),I.push(""+A+"
"))),C.wheel&&I.push(''),c.innerText=N.join("+"),M&&0"))}return t.className="satus-shortcut__label",c.className="satus-shortcut__value",a(),c.dataset.value=c.innerText,N.addEventListener("click",function(){let N=document.createElement("div"),M=document.createElement("span"),I=document.createElement("div"),A=document.createElement("div"),D=document.createElement("div"),i=document.createElement("section"),g=document.createElement("div"),w=document.createElement("div"),j=document.createElement("div");function T(M){return M.preventDefault(),M.stopPropagation(),e=!1,clearTimeout(u),C={key:M.key,keyCode:M.keyCode,shiftKey:M.shiftKey,ctrlKey:M.ctrlKey,altKey:M.altKey},a(D),!1}function S(M){return M.stopPropagation(),!0===e&&(delete C.shiftKey,delete C.altKey,delete C.ctrlKey,delete C.keyCode,delete C.key),clearTimeout(u),u=setTimeout(function(){e=!0},300),C.wheel=M.deltaY,a(D),!1}function L(M){window.removeEventListener("keydown",T),window.removeEventListener("mousewheel",S),!0===M&&(c.innerText=c.dataset.value),N.classList.remove("satus-modal_open"),setTimeout(function(){N.remove()},Number(1e3*document.defaultView.getComputedStyle(N,"").getPropertyValue("animation-duration").replace(/[^0-9.]/g,"")))}N.className="satus-modal satus-modal_open",M.className="satus-shortcut-modal-label",I.className="satus-modal__scrim",A.className="satus-modal__surface satus-modal__surface_shortcut",D.className="satus-shortcut__canvas",i.className="satus-section satus-section--align-end satus-section_shortcut",g.className="satus-button satus-button_shortcut",w.className="satus-button satus-button_shortcut",j.className="satus-button satus-button_shortcut",M.innerText=t.innerText,a(D),window.addEventListener("keydown",T),window.addEventListener("mousewheel",S),I.addEventListener("click",L),g.addEventListener("click",function(){L(),a()}),w.addEventListener("click",L),j.addEventListener("click",function(){L(!1)}),i.appendChild(g),i.appendChild(w),i.appendChild(j),A.appendChild(M),A.appendChild(D),A.appendChild(i),N.appendChild(I),N.appendChild(A),document.body.appendChild(N)}),N.appendChild(t),N.appendChild(c),N},satus.components.shortcut=function(M){var N=document.createElement("button"),I=document.createElement("div");return N.className="satus-button",I.className="satus-shortcut__value",N.update=function(){var M=satus.storage.get(this.storage)||this.skeleton.value||{},N=[];if(M.shift&&N.push("Shift"),M.ctrl&&N.push("Ctrl"),M.alt&&N.push("Alt"),"object"==typeof M.keys)for(var I in M.keys){var A=M.keys[I].key||M.keys[I].code;32===I&&(A="space"),N.push(A)}this.valueElement.textContent=N.join(" + ")},N.render=function(){var M,N,I,A=this,D=this.primary.children;function i(M){var N=document.createElement("div");return N.className="satus-shortcut__"+M,A.primary.appendChild(N),N}for(M in satus.empty(this.primary),this.data.alt&&(i("key").textContent="Alt"),this.data.ctrl&&(D.length&&-1!==D[D.length-1].className.indexOf("key")&&i("plus"),i("key").textContent="Ctrl"),this.data.shift&&(D.length&&-1!==D[D.length-1].className.indexOf("key")&&i("plus"),i("key").textContent="Shift"),this.data.keys)D.length&&-1!==D[D.length-1].className.indexOf("key")&&i("plus"),i("key").textContent=this.data.keys[M].key.toUpperCase();this.data.wheel&&(D.length&&-1!==D[D.length-1].className.indexOf("key")&&i("plus"),N=i("mouse"),I=document.createElement("div"),N.appendChild(I),N.className+=" "+(0 by ImprovedTube',
- onclick: function() {
- window.open('https://chrome.google.com/webstore/detail/improve-youtube-open-sour/bnomihfieiccainjcjblhegjgglakjdd');
- }
- }
- }
-};
-
-satus.storage.import(function(items) {
- satus.locale.import(function() {
- satus.modules.updateStorageKeys(skeleton, function() {
- chrome.tabs.query({active: true, currentWindow: true}, function(tabs) {
- chrome.tabs.sendMessage(tabs[0].id, {}, function(response) {
- skeleton.main.toolbar.enable.label = response || 'accessIsDenied';
-
- if (!response) {
- skeleton.main.toolbar.enable.style = {
- opacity: .25,
- pointerEvents: 'none'
- };
- } else {
- skeleton.main.toolbar.enable.storage_key = response;
- }
-
- satus.render(skeleton);
- });
- });
- });
- });
-});
\ No newline at end of file
diff --git a/popup/styles.css b/popup/styles.css
deleted file mode 100644
index e8c3b36..0000000
--- a/popup/styles.css
+++ /dev/null
@@ -1,230 +0,0 @@
-/*--------------------------------------------------------------
->>> TABLE OF CONTENTS:
-----------------------------------------------------------------
-#
---------------------------------------------------------------*/
-
-
-/*--------------------------------------------------------------
-#
---------------------------------------------------------------*/
-
-body {
- font-size: 14px;
- display: flex;
- overflow: hidden;
- flex-direction: column;
- width: 320px;
- height: 532px;
- margin: 0;
- --satus-theme-header: #4b4abf;
- --satus-theme-header-text: #fafafa;
- --satus-theme-primary: #4b4abf;
- --satus-theme-dialog: #191b1f;
- --satus-theme-dialog-text: #b5b5b5;
- --satus-theme-main: #121316;
- --satus-theme-main-text: #bfbfbf;
- --satus-theme-section: #191b1f;
- --satus-theme-button: transparent;
- --satus-theme-scrollbar: rgba(255, 255, 255, .2);
- --satus-theme-scrollbar-focus: rgba(255, 255, 255, .4);
- --satus-theme-tooltip: rgba(10, 10, 10, .7);
- --satus-theme-ripple: rgba(255, 255, 255, .04);
- --satus-theme-tabs-background: #17191c;
- --satus-theme-tabs-border: #22252a;
- --satus-theme-hover: rgba(255, 255, 255, .07);
- --satus-theme-dialog-shadow: inset 0 -1px 1px 1px rgb(113, 123, 142, .1), 0 2px 6px rgb(101, 119, 154, .1);
-}
-
-.satus-header {
- font-size: 16px;
- font-weight: 700;
- letter-spacing: .125px;
- align-items: center;
-}
-
-.satus-section {
- display: block;
- width: calc(100% - 16px);
- max-width: 900px;
- margin: 8px auto;
- padding: 8px 0;
- border: 1px solid rgba(0, 0, 0, .1);
- border-radius: 8px;
-}
-
-.satus-main .satus-section.satus-section--toolbar {
- padding: 0;
- border: none;
- background: none;
- box-shadow: none;
-}
-
-.satus-section--toolbar .satus-switch {
- height: 48px;
- border: 1px solid rgb(33, 37, 43, .5);
- border-radius: 8px;
- background: rgb(25, 27, 31, .2);
-}
-
-.made-with-love {
- font-size: 13px;
- position: absolute;
- bottom: 16px;
- left: 50%;
- width: 100%;
- height: auto;
- min-height: auto;
- padding: 0;
- cursor: pointer;
- transform: translateX(-50%);
- text-align: center;
- justify-content: center;
-}
-
-html[data-hide-made-with-love=true] .made-with-love {
- display: none;
-}
-
-.made-with-love svg {
- position: relative;
- top: 4px;
- width: 16px;
- height: 16px;
- fill: #d62121;
-}
-
-.satus.dark .made-with-love svg {
- fill: #704343;
-}
-
-.made-with-love span {
- margin: 0 0 0 4px;
-}
-
-.satus-main .satus-section--label {
- font-size: 17px;
- display: block;
- width: calc(100% - 16px);
- max-width: 900px;
- margin: 16px auto 8px;
-}
-
-@media (min-width: 321px) {
- html {
- display: flex;
- justify-content: center;
- }
- body {
- width: 100%;
- max-width: 768px;
- height: 100vh;
- background: #050505;
- }
-}
-
-.video {
- font: 700 18px monospace;
- position: absolute;
- top: calc(50% - 46px);
- left: calc(50% - 81px);
- display: flex;
- overflow: hidden;
- width: 160px;
- height: 90px;
- animation-name: hover;
- animation-duration: 2s;
- animation-iteration-count: infinite;
- letter-spacing: 1px;
- color: #404040;
- border: 1px solid #808080;
- border-radius: 8px;
- background: #1a1a1a;
- justify-content: center;
- align-items: center;
-}
-
-.cursor {
- position: absolute;
- bottom: calc(50% - 96px);
- left: calc(50% - 120px);
- width: 28px;
- animation-name: move;
- animation-duration: 2s;
- animation-iteration-count: infinite;
-}
-
-@keyframes move {
- 0% {
- transform: translate(0px, 0px);
- opacity: 0;
- }
- 10% {
- transform: translate(0px, 0px);
- opacity: 1;
- }
- 90% {
- transform: translate(160px, -56px);
- opacity: 1;
- }
- 100% {
- transform: translate(160px, -56px);
- opacity: 0;
- }
-}
-
-@keyframes hover {
- 0% {
- color: #404040;
- border: 1px solid #808080;
- background: #1a1a1a;
- }
- 25% {
- color: #404040;
- border: 1px solid #808080;
- background: #1a1a1a;
- }
- 100% {
- color: #fff;
- border: 1px solid #232323;
- background: #3d6ef8;
- }
-}
-
-.heart {
- position: absolute;
- right: 40px;
- bottom: 0;
- display: block;
- width: 24px;
- height: 24px;
- padding: 8px;
- cursor: pointer;
- transition: .2s;
- opacity: .75;
- fill: #ec033e;
-}
-
-.heart:hover {
- transform: scale(1.2);
- opacity: 1;
-}
-
-.github {
- position: absolute;
- right: 0;
- bottom: 0;
- display: block;
- width: 20px;
- height: 20px;
- padding: 10px;
- cursor: pointer;
- transition: .2s;
- opacity: .75;
- fill: #e2e7f3;
-}
-
-.github:hover {
- transform: scale(1.2);
- opacity: 1;
-}
\ No newline at end of file
diff --git a/py/locale.py b/py/locale.py
new file mode 100644
index 0000000..0f484d3
--- /dev/null
+++ b/py/locale.py
@@ -0,0 +1,128 @@
+#---------------------------------------------------------------
+# >>> TABLE OF CONTENTS:
+#---------------------------------------------------------------
+# 1.0 Import modules
+# 2.0 Lower camel case
+# 3.0 Get list of files
+# 4.0 Add item
+# 5.0 Remove item
+# 6.0 Decode
+# 7.0 Initialization
+#---------------------------------------------------------------
+
+#---------------------------------------------------------------
+# 1.0 IMPORT MODULES
+#---------------------------------------------------------------
+
+import json
+import os
+import pathlib
+import re
+
+
+#---------------------------------------------------------------
+# 2.0 LOWER CAMEL CASE
+#---------------------------------------------------------------
+
+def lowerCamelCase(string):
+ string = re.sub(r"(-|_)+", " ", string).title().replace(" ", "")
+
+ return string[0].lower() + string[1:]
+
+
+#---------------------------------------------------------------
+# 3.0 GET LIST OF FILES
+#---------------------------------------------------------------
+
+def getListOfFiles(dirName):
+ allFiles = list()
+
+ for entry in os.listdir(dirName):
+ fullPath = os.path.join(dirName, entry)
+
+ if not os.path.isdir(fullPath):
+ allFiles.append(fullPath)
+
+ for entry in os.listdir(dirName):
+ fullPath = os.path.join(dirName, entry)
+
+ if os.path.isdir(fullPath):
+ allFiles = allFiles + getListOfFiles(fullPath)
+
+ return allFiles
+
+
+#---------------------------------------------------------------
+# 4.0 ADD ITEM
+#---------------------------------------------------------------
+
+def addItem(allFiles):
+ message = input("Enter your message: ")
+
+ for keyFile in allFiles:
+ with open(keyFile, "r+") as json_file:
+ data = json.load(json_file)
+
+ data[lowerCamelCase(message)] = {
+ "message": message
+ }
+
+ json_file.seek(0)
+ json.dump(data, json_file, ensure_ascii=False, indent=4, sort_keys=True)
+ json_file.truncate()
+
+
+#---------------------------------------------------------------
+# 5.0 REMOVE ITEM
+#---------------------------------------------------------------
+
+def removeItem(allFiles):
+ key = input("Enter your key (lowerCamelCase): ")
+
+ for keyFile in allFiles:
+ with open(keyFile, "r+") as json_file:
+ data = json.load(json_file)
+
+ if data[key]:
+ del data[key]
+
+ json_file.seek(0)
+ json.dump(data, json_file, ensure_ascii=False, indent=4, sort_keys=True)
+ json_file.truncate()
+
+
+#---------------------------------------------------------------
+# 6.0 DECODE
+#---------------------------------------------------------------
+
+def decodeCharacters(allFiles):
+ for keyFile in allFiles:
+ with open(keyFile, "r+") as json_file:
+ data = json.load(json_file)
+
+ json_file.seek(0)
+ json.dump(data, json_file, ensure_ascii=False, indent=4, sort_keys=True)
+ json_file.truncate()
+
+
+#---------------------------------------------------------------
+# 7.0 INITIALIZATION
+#---------------------------------------------------------------
+
+allFiles = getListOfFiles("../_locales/")
+
+operation = input("""
+--------------------------------
+Add item: 1
+Remove item: 2
+Decode: 3
+--------------------------------
+
+Enter number: """)
+
+if operation == "1":
+ addItem(allFiles)
+elif operation == "2" :
+ removeItem(allFiles)
+elif operation == "3" :
+ decodeCharacters(allFiles)
\ No newline at end of file
diff --git a/satus.css b/satus.css
deleted file mode 100644
index c5a9d8d..0000000
--- a/satus.css
+++ /dev/null
@@ -1,1091 +0,0 @@
-/*--------------------------------------------------------------
->>> SATUS
-----------------------------------------------------------------
-# Body
-# Components
- # Button
- # Color picker
- # Dialog
- # Folder
- # Header
- # List
- # Main
- # Section
- # Select
- # Slider
- # Switch
- # Table
- # Text
- # Text field
---------------------------------------------------------------*/
-
-/*--------------------------------------------------------------
-# BODY
---------------------------------------------------------------*/
-
-body {
- --satus-theme-primary: #f6b465;
- --satus-theme-dialog: #f7f7f6;
- --satus-theme-dialog-text: #777;
- --satus-theme-header: #fff;
- --satus-theme-header-text: #777;
- --satus-theme-main: #f7f7f6;
- --satus-theme-main-text: #777;
- --satus-theme-section: #fff;
- --satus-theme-button: transparent;
- --satus-theme-scrollbar: rgba(0, 0, 0, .2);
- --satus-theme-scrollbar-focus: rgba(0, 0, 0, .4);
- --satus-theme-tooltip: rgba(0, 0, 0, .4);
- --satus-theme-ripple: rgba(0, 0, 0, .04);
-}
-
-
-/*--------------------------------------------------------------
-# COMPONENTS
---------------------------------------------------------------*/
-
-/*--------------------------------------------------------------
-# BUTTON
---------------------------------------------------------------*/
-
-.satus-button {
- font-size: inherit;
- position: relative;
- display: flex;
- margin: 0;
- cursor: pointer;
- color: inherit;
- border: none;
- outline: none;
- background-color: var(--satus-theme-button);
- -webkit-tap-highlight-color: transparent;
- align-items: center;
- -webkit-appearance: none;
-}
-
-.satus-button::before {
- position: absolute;
- top: 0;
- left: 0;
- width: 100%;
- height: 100%;
- content: '';
- opacity: 0;
- background-color: var(--satus-theme-ripple);
-}
-
-.satus-button:focus::before,
-.satus-button:hover::before {
- opacity: 1;
-}
-
-.satus-button__icon {
- width: 24px;
- height: 24px;
-}
-
-.satus-button svg {
- width: 100%;
- color: inherit;
- fill: var(--satus-theme-primary);
-}
-
-.satus-button__icon+.satus-button__label {
- margin-left: 8px;
-}
-
-
-/*--------------------------------------------------------------
-# COLOR PICKER
---------------------------------------------------------------*/
-
-.satus-color-picker {
- font-size: inherit;
- position: relative;
- display: flex;
- box-sizing: border-box;
- margin: 0;
- cursor: pointer;
- color: inherit;
- border: none;
- outline: none;
- background-color: var(--satus-theme-button);
- justify-content: space-between;
- -webkit-tap-highlight-color: transparent;
- align-items: center;
- -webkit-appearance: none;
-}
-
-.satus-color-picker__value {
- width: 24px;
- height: 24px;
- border-radius: 50%;
-}
-
-.satus-dialog--color-picker .satus-scrollbar__content {
- display: flex;
- flex-direction: column;
- align-items: center;
-}
-
-.satus-dialog--color-picker .satus-button {
- box-sizing: unset;
- width: 24px;
- height: 24px;
- margin: 0 0 8px;
- padding: 8px;
- border-radius: 50%;
-}
-
-.satus-dialog--color-picker .satus-button:hover {
- background-color: var(--satus-theme-ripple);
-}
-
-.satus-dialog--color-picker .satus-button::before {
- content: unset;
-}
-
-.satus-dialog--color-picker .satus-button svg {
- fill: transparent;
- stroke: var(--satus-theme-primary);
-}
-
-.satus-dialog--color-picker canvas {
- width: 200px;
- height: 200px;
- margin: 0 0 16px;
-}
-
-
-/*--------------------------------------------------------------
-# DIALOG
---------------------------------------------------------------*/
-
-.satus-dialog {
- position: absolute;
- z-index: 100;
- top: 0;
- left: 0;
- display: flex;
- width: 100%;
- height: 100vh;
- justify-content: center;
- align-items: center;
-}
-
-.satus-dialog__scrim {
- position: absolute;
- top: 0;
- left: 0;
- width: 100%;
- height: 100%;
- animation: fadeIn 150ms linear forwards;
- opacity: 0;
- background: rgba(25, 25, 25, .2);
- fill: var(--satus-theme-dialog-text);
- backdrop-filter: blur(8px);
-}
-
-.satus-dialog__surface {
- font-size: 14px;
- display: flex;
- flex-direction: column;
- width: 95%;
- min-width: 240px;
- max-width: 560px;
- max-height: 80%;
- padding: 8px 0;
- transform: scale(.8);
- animation: zoomIn 150ms linear forwards;
- animation-delay: 20ms;
- opacity: 0;
- color: var(--satus-theme-dialog-text);
- border-radius: 6px;
- background-color: var(--satus-theme-dialog);
- box-shadow: inset 0 -1px 1px 1px rgba(0, 0, 0, .1), 0 2px 6px rgba(0, 0, 0, .15);
-}
-
-.satus-dialog--closing .satus-dialog__scrim {
- animation: fadeOut 70ms linear forwards;
-}
-
-.satus-dialog--closing .satus-dialog__surface {
- animation: zoomOut 70ms linear forwards;
-}
-
-@keyframes fadeIn {
- from {
- opacity: 0;
- }
- to {
- opacity: 1;
- }
-}
-
-@keyframes fadeOut {
- from {
- opacity: 1;
- }
- to {
- opacity: 0;
- }
-}
-
-@keyframes zoomIn {
- from {
- transform: scale(.8);
- opacity: 0;
- }
- to {
- transform: scale(1);
- opacity: 1;
- }
-}
-
-@keyframes zoomOut {
- from {
- transform: scale(1);
- opacity: 1;
- }
- to {
- transform: scale(.8);
- opacity: 0;
- }
-}
-
-
-/*--------------------------------------------------------------
-# FOLDER
---------------------------------------------------------------*/
-
-.satus-folder {
- text-align: left;
-}
-
-
-/*--------------------------------------------------------------
-# HEADER
---------------------------------------------------------------*/
-
-.satus-header {
- position: relative;
- z-index: 1;
- display: flex;
- box-sizing: border-box;
- width: 100%;
- min-height: 58px;
- padding: 0 8px;
- color: var(--satus-theme-header-text);
- background-color: var(--satus-theme-header);
- box-shadow: 0 0 3px rgba(0, 0, 0, .1);
- fill: var(--satus-theme-header-text);
-}
-
-.satus-header .satus-text--title {
- font-size: 15px;
- font-weight: 400;
-}
-
-
-/*--------------------------------------------------------------
-# LIST
---------------------------------------------------------------*/
-
-.satus-list--compact,
-.satus-list--compact li {
- margin: 0;
- padding: 0;
- list-style: none;
-}
-
-
-/*--------------------------------------------------------------
-# MAIN
-----------------------------------------------------------------
-# General
-# Animations
- # Opening
- # Closing
---------------------------------------------------------------*/
-
-/*--------------------------------------------------------------
-# General
---------------------------------------------------------------*/
-
-.satus-main {
- position: relative;
- overflow: hidden;
- width: 100%;
- height: 100%;
- color: var(--satus-theme-main-text);
- background-color: var(--satus-theme-main);
- fill: var(--satus-theme-main-text);
-}
-
-.satus-main__container {
- position: absolute;
- top: 0;
- left: 0;
- overflow: auto;
- box-sizing: border-box;
- width: 100%;
- height: 100%;
- transition: 250ms;
- background-color: var(--satus-theme-main);
- will-change: transform;
-}
-
-
-/*--------------------------------------------------------------
-# Animations
---------------------------------------------------------------*/
-
-.satus-main__container--fade-in-left {
- animation: fadeInLeft 250ms;
-}
-
-.satus-main__container--fade-in-right {
- animation: fadeInRight 250ms;
-}
-
-.satus-main__container--fade-out-left {
- animation: fadeOutLeft 250ms;
-}
-
-.satus-main__container--fade-out-right {
- animation: fadeOutRight 250ms;
-}
-
-@keyframes fadeInLeft {
- from {
- transform: translateX(-10%);
- opacity: 0;
- }
- to {
- transform: translateX(0%);
- opacity: 1;
- }
-}
-
-@keyframes fadeInRight {
- from {
- transform: translateX(10%);
- opacity: 0;
- }
- to {
- transform: translateX(0%);
- opacity: 1;
- }
-}
-
-@keyframes fadeOutLeft {
- from {
- transform: translateX(0%);
- opacity: 1;
- }
- to {
- transform: translateX(-10%);
- opacity: 0;
- }
-}
-
-@keyframes fadeOutRight {
- from {
- transform: translateX(0%);
- opacity: 1;
- }
- to {
- transform: translateX(10%);
- opacity: 0;
- }
-}
-
-.satus-scrollbar {
- position: relative;
- overflow: hidden;
- width: 100%;
- height: 100%;
-}
-
-.satus-scrollbar__wrapper {
- overflow-y: scroll;
- width: 150%;
- height: 100%;
-}
-
-.satus-scrollbar__thumb {
- position: absolute;
- z-index: 999;
- top: 0;
- right: 0;
- min-height: 32px;
- padding: 0 2px;
- transition: background-color 200ms, opacity 300ms;
- opacity: 0;
-}
-
-.satus-scrollbar__thumb::after {
- display: block;
- width: 3px;
- height: 100%;
- content: '';
- background-color: var(--satus-theme-scrollbar);
-}
-
-.satus-scrollbar__thumb:hover::after {
- background-color: var(--satus-theme-scrollbar-focus);
-}
-
-.satus-scrollbar.active .satus-scrollbar__thumb,
-.satus-scrollbar__thumb:hover {
- transition: background-color 200ms, opacity 100ms;
- opacity: 1;
-}
-
-
-/*--------------------------------------------------------------
-# SECTION
---------------------------------------------------------------*/
-
-.satus-section {
- display: inline-flex;
- box-sizing: border-box;
- background-color: var(--satus-theme-section);
- align-items: center;
- flex: 1;
-}
-
-
-/*--------------------------------------------------------------
-# SELECT
---------------------------------------------------------------*/
-
-.satus-select {
- justify-content: space-between;
-}
-
-.satus-select__value {
- font-size: 12px;
- text-align: right;
- opacity: .7;
-}
-
-.satus-dialog--select-component .satus-dialog__surface {
- position: absolute;
- max-width: unset;
- transform: unset;
- animation: unset;
- opacity: 1;
-}
-
-.satus-dialog--select-component .satus-section {
- top: 48px;
- flex-direction: column;
- transform: translateY(-16px);
- animation: listIn 50ms linear forwards;
- animation-delay: 20ms;
- opacity: .5;
-}
-
-.satus-dialog--select-component .satus-button {
- width: 100%;
- height: 48px;
- padding: 0 16px;
-}
-
-@keyframes listIn {
- from {
- transform: translateY(-16px);
- opacity: .5;
- }
- to {
- transform: translateY(0);
- opacity: 1;
- }
-}
-
-.satus-shortcut {
- position: relative;
- display: flex;
- box-sizing: border-box;
- width: 100%;
- height: 48px;
- min-height: 48px;
- padding: 0 16px;
- cursor: pointer;
- justify-content: space-between;
- align-items: center;
-}
-
-.satus-shortcut:hover {
- background-color: var(--satus-theme-ripple);
-}
-
-.satus-shortcut>.label {
- margin: 0 0 4px 0;
-}
-
-.satus-shortcut>.value {
- font-size: 13px;
- opacity: .5;
-}
-
-.satus-shortcut-dialog-label {
- font-size: 16px;
- font-weight: 500;
- box-sizing: border-box;
- width: 100%;
- margin: 4px 0 10px;
- padding: 0 16px;
-}
-
-.satus-shortcut__canvas {
- display: flex;
- box-sizing: border-box;
- width: 100%;
- height: 68px;
- padding: 16px;
- background: #dedede;
- align-items: center;
-}
-
-.satus-shortcut__key {
- display: flex;
- box-sizing: border-box;
- min-width: 32px;
- height: 32px;
- padding: 4px 8px;
- border-radius: 4px;
- background: #fff;
- box-shadow: 0 1px 3px rgba(0, 0, 0, .15), inset 0 -3px 0 rgba(0, 0, 0, .1);
- align-items: center;
- justify-content: center;
-}
-
-.satus-shortcut__plus {
- position: relative;
- width: 12px;
- height: 12px;
- margin: 8px;
-}
-
-.satus-shortcut__plus::before {
- position: absolute;
- top: 0;
- left: 5px;
- width: 2px;
- height: 12px;
- content: '';
- background-color: #aaa;
-}
-
-.satus-shortcut__plus::after {
- position: absolute;
- top: 5px;
- left: 0;
- width: 12px;
- height: 2px;
- content: '';
- background-color: #aaa;
-}
-
-.satus-shortcut__mouse {
- position: relative;
- display: flex;
- width: 28px;
- height: 36px;
- border-radius: 50%;
- border-top-left-radius: 12px;
- border-top-right-radius: 12px;
- background: #fff;
- box-shadow: 0 1px 3px rgba(0, 0, 0, .15), inset 0 -3px 0 rgba(0, 0, 0, .1);
-}
-
-.satus-shortcut__mouse>div {
- position: absolute;
- top: 0;
- left: 13px;
- width: 2px;
- height: 11px;
- border-radius: 2px;
- background: #ccc;
-}
-
-.satus-shortcut__mouse::before {
- position: absolute;
- top: -4px;
- left: 21px;
- width: 2px;
- height: 18px;
- content: '';
- background: #f96754;
-}
-
-.satus-shortcut__mouse.false::after {
- position: absolute;
- top: -12px;
- left: 17px;
- width: 0;
- height: 0;
- content: '';
- border-right: 5px solid transparent;
- border-bottom: 8px solid #f96754;
- border-left: 5px solid transparent;
-}
-
-.satus-shortcut__mouse.true::after {
- position: absolute;
- top: 14px;
- left: 17px;
- width: 0;
- height: 0;
- content: '';
- border-top: 8px solid #f96754;
- border-right: 5px solid transparent;
- border-left: 5px solid transparent;
-}
-
-.satus-section_shortcut {
- width: 100%;
- margin: 8px 0 0;
- justify-content: flex-end;
-}
-
-.satus-button_shortcut {
- font-weight: 500;
- overflow: hidden;
- height: 28px;
- min-height: 28px;
- margin-right: 2px;
- padding: 4px 8px;
- text-transform: uppercase;
- color: #f96754;
- border-radius: 4px;
-}
-
-
-/*--------------------------------------------------------------
-# SLIDER
---------------------------------------------------------------*/
-
-.satus-slider {
- position: relative;
- display: flex;
- flex-direction: column;
- box-sizing: border-box;
- width: 100%;
- min-height: 64px;
- padding: 0 16px;
- -webkit-user-select: none;
- -moz-user-select: none;
- user-select: none;
- outline: none;
- align-items: flex-start;
- justify-content: center;
-}
-
-.satus-slider::before {
- position: absolute;
- top: 0;
- left: 0;
- width: 100%;
- height: 100%;
- content: '';
- opacity: 0;
- background-color: var(--satus-theme-button);
-}
-
-.satus-slider:hover::before {
- opacity: 1;
-}
-
-
-/* LABEL */
-
-.satus-slider__label {
- cursor: default;
-}
-
-.satus-slider__range {
- position: absolute;
- z-index: 1;
- top: 0;
- left: 0;
- box-sizing: border-box;
- width: 100%;
- height: 100%;
- margin: 0;
- padding: 0;
- opacity: 0;
-}
-
-
-/* TRACK */
-
-.satus-slider__container {
- position: relative;
- width: 100%;
- height: 12px;
- margin: 8px 0 0;
-}
-
-.satus-slider__track-container {
- position: absolute;
- top: calc(50% - 1px);
- width: 100%;
- height: 2px;
- pointer-events: none;
-}
-
-.satus-slider__track-container::before {
- position: absolute;
- top: 0;
- left: 0;
- width: 100%;
- height: 2px;
- content: '';
- opacity: .26;
- background-color: var(--satus-theme-primary);
-}
-
-.satus-slider__track {
- position: relative;
- width: 0;
- height: 100%;
- background-color: var(--satus-theme-primary);
- will-change: width;
-}
-
-.satus-slider:not(.satus-slider--dragging) .satus-slider__track {
- transition: width 100ms ease-out;
-}
-
-.satus-slider__thumb {
- position: absolute;
- top: -5px;
- right: -12px;
- width: 12px;
- height: 12px;
- border-radius: 50%;
- background-color: var(--satus-theme-primary);
- box-shadow: 0 1px 5px rgba(0, 0, 0, .15);
-}
-
-.satus-slider .satus-slider__thumb::before {
- font-size: 13px;
- position: absolute;
- top: -34px;
- left: 50%;
- visibility: hidden;
- box-sizing: border-box;
- min-width: 28px;
- padding: 4px 4px;
- content: attr(data-value);
- transform: translateX(-50%);
- text-align: center;
- pointer-events: none;
- color: #fff;
- border-radius: 4px;
- background: var(--satus-theme-tooltip);
-}
-
-.satus-slider:hover .satus-slider__thumb::before,
-.satus-slider__range:focus .satus-slider__container .satus-slider__thumb::before {
- visibility: visible;
-}
-
-.satus-slider__ring {
- position: absolute;
- top: -11px;
- right: -18px;
- width: 24px;
- height: 24px;
- transition: 100ms;
- transform: scale(0);
- opacity: 0;
- border-radius: 50%;
- background-color: var(--satus-theme-primary);
-}
-
-.satus-slider__range:focus+.satus-slider__container .satus-slider__ring {
- transform: scale(1);
- opacity: .25;
-}
-
-
-/*--------------------------------------------------------------
-# SWITCH
---------------------------------------------------------------*/
-
-.satus-switch {
- position: relative;
- display: flex;
- box-sizing: border-box;
- width: 100%;
- height: 48px;
- padding: 0 16px;
- cursor: pointer;
- -webkit-user-select: none;
- -moz-user-select: none;
- user-select: none;
- background-color: transparent;
- align-items: center;
- justify-content: space-between;
-}
-
-.satus-switch:hover {
- background-color: var(--satus-theme-ripple);
-}
-
-.satus-switch__input {
- position: absolute;
- z-index: 1;
- top: 0;
- left: 0;
- width: 100%;
- height: 100%;
- margin: 0;
- padding: 0;
- opacity: 0;
- outline: none;
- -webkit-appearance: none;
-}
-
-
-/* LABEL */
-
-.satus-switch__label {
- padding: 0 16px 0 0;
-}
-
-
-/* TRACK*/
-
-.satus-switch__track {
- position: relative;
- width: 32px;
- min-width: 32px;
- height: 18px;
- border-radius: 18px;
- background: #bdbdbd;
-}
-
-.satus-switch__track::before {
- position: absolute;
- top: -7px;
- left: -7px;
- width: 32px;
- height: 32px;
- content: '';
- transition: left .1s cubic-bezier(.4, 0, .2, 1), transform 200ms, background-color 200ms;
- transform: scale(0);
- opacity: 0;
- border-radius: 50%;
- background-color: #000;
- will-change: left, transform, background-color;
-}
-
-.satus-switch__input:checked+.satus-switch__track::before {
- left: 8px;
- background-color: var(--satus-theme-primary, #54d2a3);
-}
-
-.satus-switch__input:focus+.satus-switch__track::before {
- transform: scale(1);
- opacity: .08;
-}
-
-.satus-switch__input:checked:focus+.satus-switch__track::before {
- opacity: .25;
-}
-
-.satus-switch__track::after {
- position: absolute;
- width: 14px;
- height: 14px;
- content: '';
- transition: transform .1s cubic-bezier(.4, 0, .2, 1);
- transform: translate(2px, 2px);
- border-radius: 50%;
- background-color: #fff;
- will-change: transform;
-}
-
-.satus-switch__input:checked+.satus-switch__track {
- background: var(--satus-theme-primary, #54d2a3);
-}
-
-.satus-switch__input:checked+.satus-switch__track::after {
- transform: translate(16px, 2px);
-}
-
-
-/*--------------------------------------------------------------
-# TABLE
---------------------------------------------------------------*/
-
-.satus-table {
- font-size: .875rem;
- position: relative;
- display: flex;
- overflow: hidden;
- flex-direction: column;
- box-sizing: border-box;
- border: 1px solid #ececec;
- border-radius: 6px;
-}
-
-.satus-table__head {
- position: relative;
- z-index: 1;
- display: flex;
- box-sizing: border-box;
- width: 100%;
- height: 44px;
- padding: 0 8px;
- background: #fff;
- box-shadow: 0 2px 4px rgba(0, 0, 0, .1);
-}
-
-.satus-table__head>div {
- font-weight: 600;
- display: inline-flex;
- box-sizing: border-box;
- padding: 0 8px 0 0;
- opacity: .7;
- flex-shrink: 0;
- align-items: center;
-}
-
-.satus-table__head>div:last-child {
- padding: 0;
-}
-
-.satus-table__head>div:hover {
- cursor: pointer;
- opacity: 1;
-}
-
-.satus-table__head>div[data-sorting=false]:hover {
- cursor: default;
-}
-
-.satus-table__head>div>span {
- position: relative;
-}
-
-.satus-table__head>div[data-sorting=asc]>span::after {
- position: absolute;
- top: calc(50% - 2px);
- right: -14px;
- width: 0;
- height: 0;
- content: '';
- border-right: 4px solid transparent;
- border-bottom: 5px solid currentColor;
- border-left: 4px solid transparent;
-}
-
-.satus-table__head>div[data-sorting=desc]>span::after {
- position: absolute;
- top: calc(50% - 2px);
- right: -13px;
- width: 0;
- height: 0;
- content: '';
- border-top: 5px solid currentColor;
- border-right: 4px solid transparent;
- border-left: 4px solid transparent;
-}
-
-.satus-table__body {
- overflow: hidden;
- width: 100%;
- height: calc(100% - 48px);
- background: #fff;
- flex: 1;
-}
-
-.satus-table__row {
- display: flex;
- box-sizing: border-box;
- padding: 0 8px;
- border-bottom: 1px solid rgba(0, 0, 0, .1);
-}
-
-.satus-table__row:nth-child(2n) {
- background: rgba(0, 0, 0, .03);
-}
-
-.satus-table__cell {
- overflow: hidden;
- box-sizing: border-box;
- padding: 8px 8px 8px 0;
- white-space: nowrap;
- text-overflow: ellipsis;
- word-wrap: break-word;
- -webkit-hyphens: auto;
- -moz-hyphens: auto;
- hyphens: auto;
- overflow-wrap: break-word;
- flex-shrink: 0;
-}
-
-.satus-table__cell:last-child {
- padding-right: 0;
-}
-
-.satus-table__cell input {
- box-sizing: border-box;
- width: 100%;
- height: calc(100% - 10px);
- margin: 5px 0;
- padding: 1px 2px;
- border: 1px solid #d2d2d2;
- border-radius: 4px;
- outline: none;
-}
-
-.satus-table__paging>button {
- min-width: 32px;
- height: 32px;
- padding: 0 8px;
- cursor: pointer;
- color: var(--satus-theme-on-surface, #555);
- border: none;
- background: transparent;
-}
-
-.satus-table__paging>button.active {
- color: #2979ff;
-}
-
-
-/*--------------------------------------------------------------
-# TEXT
---------------------------------------------------------------*/
-
-.satus-text {
- margin: 0;
- color: inherit;
- border: none;
-}
-
-
-/*--------------------------------------------------------------
-# TEXT FIELD
---------------------------------------------------------------*/
-
-.satus-text-field {
- font: inherit;
- box-sizing: border-box;
- width: 100%;
- margin: 0;
- padding: 0;
- padding: 0 8px;
- /* it overwrites padding above; remove one of them */
- color: inherit;
- border: none;
- outline: none;
- background: unset;
-}
\ No newline at end of file
diff --git a/satus.js b/satus.js
deleted file mode 100644
index 458a589..0000000
--- a/satus.js
+++ /dev/null
@@ -1,2193 +0,0 @@
-
-/*--------------------------------------------------------------
->>> SATUS
-----------------------------------------------------------------
-# Core
- # Events
- # Render
- # Camelize
- # Animation duration
-# Modules
- # Browser storage
- # Localization
- # Render
- # Clone node styles
- # Search
- # Storage keys
- # User
-# Components
- # Button
- # Colop picker
- # Dialog
- # Folder
- # Header
- # List
- # Main
- # Scroll bar
- # Section
- # Select
- # Shortcut
- # Slider
- # Switch
- # Text
- # Text field
---------------------------------------------------------------*/
-
-var satus = {};
-
-
-/*--------------------------------------------------------------
-# EVENTS
---------------------------------------------------------------*/
-
-satus.events = {};
-
-satus.on = function(event, handler) {
- if (!this.isset(this.events[event])) {
- this.events[event] = [];
- }
-
- this.events[event].push(handler);
-};
-
-
-/*--------------------------------------------------------------
-# COMPONENTS
---------------------------------------------------------------*/
-
-satus.components = {};
-
-
-/*--------------------------------------------------------------
-# MODULES
---------------------------------------------------------------*/
-
-satus.modules = {};
-
-
-/*--------------------------------------------------------------
-# ISSET
---------------------------------------------------------------*/
-
-satus.isset = function(variable) {
- if (typeof variable === 'undefined' || variable === null) {
- return false;
- }
-
- return true;
-};
-
-
-/*--------------------------------------------------------------
-# CAMELIZE
---------------------------------------------------------------*/
-
-satus.camelize = function(string) {
- return string.replace(/-[a-z]/g, function(match) {
- return match[1].toUpperCase();
- });
-};
-
-
-/*--------------------------------------------------------------
-# ANIMATION DURATION
---------------------------------------------------------------*/
-
-satus.getAnimationDuration = function(element) {
- return Number(window.getComputedStyle(element).getPropertyValue('animation-duration').replace(/[^0-9.]/g, '')) * 1000;
-};
-
-
-/*--------------------------------------------------------------
-# MODULES
---------------------------------------------------------------*/
-
-/*--------------------------------------------------------------
-# BROWSER STORAGE
---------------------------------------------------------------*/
-
-satus.storage = {};
-
-satus.storage.get = function(name) {
- var target = satus.storage;
-
- name = name.split('/').filter(function(value) {
- return value != '';
- });
-
- for (var i = 0, l = name.length; i < l; i++) {
- if (satus.isset(target[name[i]])) {
- target = target[name[i]];
- } else {
- return undefined;
- }
- }
-
- return target;
-};
-
-satus.storage.set = function(name, value) {
- var items = {},
- target = satus.storage;
-
- if (!satus.isset(name)) {
- return false;
- }
-
- name = name.split('/').filter(function(value) {
- return value != '';
- });
-
- for (var i = 0, l = name.length; i < l; i++) {
- var item = name[i];
-
- if (i < l - 1) {
-
- if (target[item]) {
- target = target[item];
- } else {
- target[item] = {};
-
- target = target[item];
- }
- } else {
- target[item] = value;
- }
- }
-
- for (var key in satus.storage) {
- if (typeof satus.storage[key] !== 'function') {
- items[key] = satus.storage[key];
- }
- }
-
- chrome.storage.local.set(items);
-};
-
-satus.storage.import = function(callback) {
- chrome.storage.local.get(function(items) {
- for (var key in items) {
- satus.storage[key] = items[key];
- }
-
- if (callback) {
- callback(items);
- }
- });
-};
-
-satus.storage.clear = function() {
- chrome.storage.local.clear();
-
- for (var key in satus.storage) {
- if (typeof satus.storage[key] !== 'function') {
- delete satus.storage[key];
- }
- }
-};
-
-
-/*---------------------------------------------------------------
-# LOCALIZATION
----------------------------------------------------------------*/
-
-satus.locale = {
- messages: {}
-};
-
-satus.locale.getMessage = function(string) {
- return this.messages[string] || string;
-};
-
-satus.locale.get = satus.locale.getMessage;
-
-satus.locale.import = function(language, callback) {
- var xhr = new XMLHttpRequest();
-
- if (typeof language === 'function') {
- var callback = language;
- }
-
- if (typeof language !== 'string') {
- var language = chrome.i18n.getUILanguage();
- }
-
- xhr.onload = function() {
- try {
- var object = JSON.parse(this.responseText);
-
- for (var key in object) {
- satus.locale.messages[key] = object[key].message;
- }
-
- callback(language);
- } catch (err) {
- function listener(request) {
- if (request !== null && typeof request === 'object') {
- if (request.name === 'translation_response') {
- var object = JSON.parse(request.value);
-
- chrome.runtime.onMessage.removeListener(listener);
-
- for (var key in object) {
- satus.locale.messages[key] = object[key].message;
- }
-
- callback(language);
- }
- }
- }
-
- chrome.runtime.onMessage.addListener(listener);
-
- chrome.runtime.sendMessage({
- name: 'translation_request',
- path: '../_locales/' + language + '/messages.json'
- });
- }
- };
-
- xhr.onerror = function() {
- if (language === 'en') {
- callback();
- } else {
- satus.locale.import('en', callback);
- }
- };
-
- xhr.open('GET', '../_locales/' + language + '/messages.json', true);
- xhr.send();
-};
-
-
-/*--------------------------------------------------------------
-# RENDER
---------------------------------------------------------------*/
-
-satus.render = function(element, container, callback) {
- function convert(object) {
- if (object && object.type) {
- var type = satus.camelize(object.type),
- component = satus.components[type](object),
- excluded_properties = ['type', 'label', 'class', 'title', 'storage'];
-
- function applyProperties(object, target) {
- for (var key in object) {
- if (satus.isset(object[key]) && typeof object[key] === 'object' && !object[key].type) {
- if (typeof target[key] !== 'object') {
- target[key] = {};
- }
-
- applyProperties(object[key], target[key]);
- } else if (excluded_properties.indexOf(key) === -1) {
- target[key] = object[key];
- }
- }
- }
-
- applyProperties(object, component);
-
- component.classList.add('satus-' + object.type);
-
- if (object.class) {
- var class_list = object.class.split(' ');
-
- for (var i = 0, l = class_list.length; i < l; i++) {
- component.classList.add(class_list[i]);
- }
- }
-
- if (object.before) {
- var component_before = document.createElement('span');
-
- component_before.innerHTML = object.before;
-
- for (var i = component_before.children.length - 1; i > -1; i--) {
- component.insertBefore(component_before.children[i], component.firstChild);
- }
- }
-
- if (object.after) {
- var component_after = document.createElement('span');
-
- component_after.innerHTML = object.after;
-
- for (var i = component_after.children.length - 1; i > -1; i--) {
- component.appendChild(component_after.children[i]);
- }
- }
-
- (container || document.body).appendChild(component);
-
- if (typeof component.onClickRender === 'object') {
- component.addEventListener('click', function() {
- satus.render(component.onClickRender);
- });
- }
-
- if (satus.isset(satus.events.render)) {
- for (var i = 0, l = satus.events.render.length; i < l; i++) {
- satus.events.render[i](component, object);
- }
- }
-
- if (typeof component.onrender === 'function') {
- component.onrender(object);
- }
-
- if (callback) {
- callback();
- }
- }
- }
-
- if (element.type) {
- convert(element);
- } else {
- for (var key in element) {
- convert(element[key]);
- }
- }
-};
-
-
-/*--------------------------------------------------------------
-# CLONE NODE STYLES
---------------------------------------------------------------*/
-
-satus.cloneNodeStyles = function(origin, target) {
- target.style.cssText = window.getComputedStyle(origin, '').cssText;
-
- for (var i = 0, l = origin.children.length; i < l; i++) {
- satus.cloneNodeStyles(origin.children[i], target.children[i]);
- }
-};
-
-
-/*--------------------------------------------------------------
-# SEARCH
---------------------------------------------------------------*/
-
-satus.search = function(query, object, callback, categories) {
- var threads = 0,
- folder = '',
- results = {};
-
- function parse(items) {
- threads++;
-
- for (var key in items) {
- var item = items[key];
-
- if (categories === true && item.type === 'folder' && folder !== item.label) {
- folder = item.label;
- }
-
- if (['switch', 'select', 'slider'].indexOf(item.type) !== -1 && key.indexOf(query) !== -1) {
- if (categories === true) {
- if (!results[folder]) {
- results[folder] = {};
- }
-
- results[folder][key] = item;
- } else {
- results[key] = item;
- }
- }
-
- if (typeof item === 'object') {
- parse(item);
- }
- }
-
- threads--;
-
- if (threads === 0) {
- callback(results);
- }
- }
-
- parse(object);
-};
-
-
-/*--------------------------------------------------------------
-# STORAGE KEYS
---------------------------------------------------------------*/
-
-satus.modules.updateStorageKeys = function(object, callback) {
- var threads = 0;
-
- function parse(items) {
- threads++;
-
- for (var key in items) {
- var item = items[key];
-
-
- if (item.type) {
- item.storage_key = key;
- }
-
- if (typeof item === 'object') {
- parse(item);
- }
- }
-
- threads--;
-
- if (threads === 0) {
- callback();
- }
- }
-
- parse(object);
-};
-
-
-/*--------------------------------------------------------------
-# USER
---------------------------------------------------------------*/
-
-satus.modules.user = function() {
- /*--------------------------------------------------------------
- 1.0 VARIABLES
- --------------------------------------------------------------*/
-
- var user_agent = navigator.userAgent,
- random_cookie = 'ta{t`nX6cMXK,Wsc',
- video = document.createElement('video'),
- video_formats = {
- ogg: 'video/ogg; codecs="theora"',
- h264: 'video/mp4; codecs="avc1.42E01E"',
- webm: 'video/webm; codecs="vp8, vorbis"',
- vp9: 'video/webm; codecs="vp9"',
- hls: 'application/x-mpegURL; codecs="avc1.42E01E"'
- },
- audio = document.createElement('audio'),
- audio_formats = {
- mp3: 'audio/mpeg',
- mp4: 'audio/mp4',
- aif: 'audio/x-aiff'
- },
- cvs = document.createElement('canvas'),
- ctx = cvs.getContext('webgl'),
- data = {
- browser: {
- audio: null,
- cookies: null,
- flash: null,
- java: null,
- languages: null,
- name: null,
- platform: null,
- version: null,
- video: null,
- webgl: null
- },
- os: {
- name: null,
- type: null
- },
- device: {
- connection: {
- type: null,
- speed: null
- },
- cores: null,
- gpu: null,
- max_touch_points: null,
- ram: null,
- screen: null,
- touch: null
- }
- };
-
-
- /*--------------------------------------------------------------
- 2.0 SOFTWARE
- --------------------------------------------------------------*/
-
- /*--------------------------------------------------------------
- 2.1.0 OS
- --------------------------------------------------------------*/
-
- /*--------------------------------------------------------------
- 2.1.1 NAME
- --------------------------------------------------------------*/
-
- if (navigator.appVersion.indexOf('Win') !== -1) {
- if (navigator.appVersion.match(/(Windows 10.0|Windows NT 10.0)/)) {
- data.os.name = 'Windows 10';
- } else if (navigator.appVersion.match(/(Windows 8.1|Windows NT 6.3)/)) {
- data.os.name = 'Windows 8.1';
- } else if (navigator.appVersion.match(/(Windows 8|Windows NT 6.2)/)) {
- data.os.name = 'Windows 8';
- } else if (navigator.appVersion.match(/(Windows 7|Windows NT 6.1)/)) {
- data.os.name = 'Windows 7';
- } else if (navigator.appVersion.match(/(Windows NT 6.0)/)) {
- data.os.name = 'Windows Vista';
- } else if (navigator.appVersion.match(/(Windows NT 5.1|Windows XP)/)) {
- data.os.name = 'Windows XP';
- } else {
- data.os.name = 'Windows';
- }
- } else if (navigator.appVersion.indexOf('(iPhone|iPad|iPod)') !== -1) {
- data.os.name = 'iOS';
- } else if (navigator.appVersion.indexOf('Mac') !== -1) {
- data.os.name = 'macOS';
- } else if (navigator.appVersion.indexOf('Android') !== -1) {
- data.os.name = 'Android';
- } else if (navigator.appVersion.indexOf('OpenBSD') !== -1) {
- data.os.name = 'OpenBSD';
- } else if (navigator.appVersion.indexOf('SunOS') !== -1) {
- data.os.name = 'SunOS';
- } else if (navigator.appVersion.indexOf('Linux') !== -1) {
- data.os.name = 'Linux';
- } else if (navigator.appVersion.indexOf('X11') !== -1) {
- data.os.name = 'UNIX';
- }
-
- /*--------------------------------------------------------------
- 2.1.2 TYPE
- --------------------------------------------------------------*/
-
- if (navigator.appVersion.match(/(Win64|x64|x86_64|WOW64)/)) {
- data.os.type = '64-bit';
- } else {
- data.os.type = '32-bit';
- }
-
-
- /*--------------------------------------------------------------
- 2.2.0 BROWSER
- --------------------------------------------------------------*/
-
- /*--------------------------------------------------------------
- 2.2.1 NAME
- --------------------------------------------------------------*/
-
- if (user_agent.indexOf('Opera') !== -1) {
- data.browser.name = 'Opera';
- } else if (user_agent.indexOf('Vivaldi') !== -1) {
- data.browser.name = 'Vivaldi';
- } else if (user_agent.indexOf('Edge') !== -1) {
- data.browser.name = 'Edge';
- } else if (user_agent.indexOf('Chrome') !== -1) {
- data.browser.name = 'Chrome';
- } else if (user_agent.indexOf('Safari') !== -1) {
- data.browser.name = 'Safari';
- } else if (user_agent.indexOf('Firefox') !== -1) {
- data.browser.name = 'Firefox';
- } else if (user_agent.indexOf('MSIE') !== -1) {
- data.browser.name = 'IE';
- }
-
-
- /*--------------------------------------------------------------
- 2.2.2 VERSION
- --------------------------------------------------------------*/
-
- var browser_version = user_agent.match(new RegExp(data.browser.name + '/([0-9.]+)'));
-
- if (browser_version[1]) {
- data.browser.version = browser_version[1];
- }
-
-
- /*--------------------------------------------------------------
- 2.2.3 PLATFORM
- --------------------------------------------------------------*/
-
- data.browser.platform = navigator.platform || null;
-
-
- /*--------------------------------------------------------------
- 2.2.4 LANGUAGES
- --------------------------------------------------------------*/
-
- data.browser.languages = navigator.languages || null;
-
-
- /*--------------------------------------------------------------
- 2.2.5 COOKIES
- --------------------------------------------------------------*/
-
- if (document.cookie) {
- document.cookie = random_cookie;
-
- if (document.cookie.indexOf(random_cookie) !== -1) {
- data.browser.cookies = true;
- }
- }
-
-
- /*--------------------------------------------------------------
- 2.2.6 FLASH
- --------------------------------------------------------------*/
-
- try {
- if (new ActiveXObject('ShockwaveFlash.ShockwaveFlash')) {
- data.browser.flash = true;
- }
- } catch (e) {
- if (navigator.mimeTypes['application/x-shockwave-flash']) {
- data.browser.flash = true;
- }
- }
-
-
- /*--------------------------------------------------------------
- 2.2.7 JAVA
- --------------------------------------------------------------*/
-
- if (typeof navigator.javaEnabled === 'function' && navigator.javaEnabled()) {
- data.browser.java = true;
- }
-
-
- /*--------------------------------------------------------------
- 2.2.8 VIDEO FORMATS
- --------------------------------------------------------------*/
-
- if (typeof video.canPlayType === 'function') {
- data.browser.video = {};
-
- for (var i in video_formats) {
- var can_play_type = video.canPlayType(video_formats[i]);
-
- if (can_play_type === '') {
- data.browser.video[i] = false;
- } else {
- data.browser.video[i] = can_play_type;
- }
- }
- }
-
-
- /*--------------------------------------------------------------
- 2.2.9 AUDIO FORMATS
- --------------------------------------------------------------*/
-
- if (typeof audio.canPlayType === 'function') {
- data.browser.audio = {};
-
- for (var i in audio_formats) {
- var can_play_type = audio.canPlayType(audio_formats[i]);
-
- if (can_play_type == '') {
- data.browser.audio[i] = false;
- } else {
- data.browser.audio[i] = can_play_type;
- }
- }
- }
-
-
- /*--------------------------------------------------------------
- 2.2.10 WEBGL
- --------------------------------------------------------------*/
-
- if (ctx && ctx instanceof WebGLRenderingContext) {
- data.browser.webgl = true;
- }
-
-
- /*--------------------------------------------------------------
- 3.0 HARDWARE
- --------------------------------------------------------------*/
-
- /*--------------------------------------------------------------
- 3.1 SCREEN
- --------------------------------------------------------------*/
-
- if (screen) {
- data.device.screen = screen.width + 'x' + screen.height;
- }
-
-
- /*--------------------------------------------------------------
- 3.2 RAM
- --------------------------------------------------------------*/
-
- if ('deviceMemory' in navigator) {
- data.device.ram = navigator.deviceMemory + ' GB';
- }
-
-
- /*--------------------------------------------------------------
- 3.3 GPU
- --------------------------------------------------------------*/
-
- if (
- ctx &&
- ctx instanceof WebGLRenderingContext &&
- 'getParameter' in ctx &&
- 'getExtension' in ctx
- ) {
- var info = ctx.getExtension('WEBGL_debug_renderer_info');
-
- if (info) {
- data.device.gpu = ctx.getParameter(info.UNMASKED_RENDERER_WEBGL);
- }
- }
-
-
- /*--------------------------------------------------------------
- 3.4 CORES
- --------------------------------------------------------------*/
-
- if (navigator.hardwareConcurrency) {
- data.device.cores = navigator.hardwareConcurrency;
- }
-
-
- /*--------------------------------------------------------------
- 3.5 TOUCH
- --------------------------------------------------------------*/
-
- if (
- window.hasOwnProperty('ontouchstart') ||
- window.DocumentTouch && document instanceof window.DocumentTouch ||
- navigator.maxTouchPoints > 0 ||
- window.navigator.msMaxTouchPoints > 0
- ) {
- data.device.touch = true;
- data.device.max_touch_points = navigator.maxTouchPoints;
- }
-
-
- /*--------------------------------------------------------------
- 3.6 CONNECTION
- --------------------------------------------------------------*/
-
- if (typeof navigator.connection === 'object') {
- data.device.connection.type = navigator.connection.effectiveType || null;
-
- if (navigator.connection.downlink) {
- data.device.connection.speed = navigator.connection.downlink + ' Mbps';
- }
- }
-
-
- /*--------------------------------------------------------------
- 4.0 CLEARING
- --------------------------------------------------------------*/
-
- video.remove();
- audio.remove();
- cvs.remove();
-
-
- return data;
-};
-satus.on('render', function(component, data) {
- if (data.perspective === true) {
- component.style.willChange = 'transform';
- component.style.transformStyle = 'preserve-3d';
- component.style.transition = '.4s';
-
- component.addEventListener('mousemove', function(event) {
- var bounding = component.getBoundingClientRect(),
- dx = event.clientX - bounding.left - bounding.width / 2,
- dy = event.clientY - bounding.top - bounding.height / 2;
-
- this.style.transform = 'perspective(440px) rotateX(' + dy * -1 + 'deg) rotateY(' + dx + 'deg) translateZ(0)';
- });
-
- component.addEventListener('mouseout', function(event) {
- this.style.transform = 'perspective(440px) rotateX(0deg) rotateY(0deg) translateZ(0)';
- });
- }
-});
-
-
-/*--------------------------------------------------------------
-# COMPONENTS
---------------------------------------------------------------*/
-
-/*--------------------------------------------------------------
-# BUTTON
---------------------------------------------------------------*/
-
-satus.components.button = function(element) {
- var component = document.createElement('button');
-
- if (satus.isset(element.icon)) {
- var component_icon = document.createElement('span');
-
- component_icon.className = 'satus-button__icon';
- component_icon.innerHTML = element.icon;
-
- component.appendChild(component_icon);
- }
-
- if (satus.isset(element.label)) {
- var component_label = document.createElement('span');
-
- component_label.className = 'satus-button__label';
- component_label.innerText = satus.locale.getMessage(element.label);
-
- component.appendChild(component_label);
- }
-
- return component;
-};
-
-
-/*--------------------------------------------------------------
-# COLOR PICKER
---------------------------------------------------------------*/
-
-satus.components.colorPicker = function(element) {
- var component = document.createElement('div'),
- component_value = document.createElement('div');
-
- element.class = 'satus-button';
- component_value.className = 'satus-color-picker__value';
- component_value.style.backgroundColor = satus.storage.get(element.storage_key) || element.value || '';
-
- if (satus.isset(element.label)) {
- var component_label = document.createElement('span');
-
- component_label.className = 'satus-button__label';
- component_label.innerText = satus.locale.getMessage(element.label);
-
- component.appendChild(component_label);
- }
-
- component.addEventListener('click', function() {
- var component = document.createElement('div'),
- component_canvas = document.createElement('canvas'),
- close = document.createElement('button'),
- ctx = component_canvas.getContext('2d'),
- image = new Image(),
- dialog = satus.components.dialog({});
-
- close.className = 'satus-button';
- close.innerHTML = '';
- close.onclick = function() {
- dialog.querySelector('.satus-dialog__scrim').click();
- };
-
- dialog.className = 'satus-dialog satus-dialog--color-picker';
-
- component_canvas.width = 200;
- component_canvas.height = 200;
-
- function select(event) {
- var coordinates = component_canvas.getBoundingClientRect(),
- x = event.clientX - coordinates.left,
- y = event.clientY - coordinates.top,
- color = ctx.getImageData(x, y, 1, 1).data;
-
- component_value.style.backgroundColor = 'rgb(' + color[0] + ',' + color[1] + ',' + color[2] + ')';
-
- satus.storage.set(element.storage_key, component_value.style.backgroundColor);
- }
-
- function mouseup(event) {
- component_canvas.removeEventListener('mousemove', select);
- window.removeEventListener('mouseup', mouseup);
- }
-
- component_canvas.addEventListener('mousedown', function() {
- select(event);
- this.addEventListener('mousemove', select);
- window.addEventListener('mouseup', mouseup);
- });
-
- image.onload = function() {
- ctx.drawImage(image, 0, 0);
-
- image.remove();
- };
-
- image.src = 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNzAgMjcwIj48ZGVmcz48cmFkaWFsR3JhZGllbnQgaWQ9ImEiPjxzdG9wIG9mZnNldD0iMCUiIHN0b3AtY29sb3I9IiNmZmYiLz48c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNmZmYiIHN0b3Atb3BhY2l0eT0iMCIvPjwvcmFkaWFsR3JhZGllbnQ+PC9kZWZzPjxnIGZpbGw9Im5vbmUiIHN0cm9rZS13aWR0aD0iMTMzIiBjbGFzcz0iSXJvV2hlZWxIdWUiPjxwYXRoIHN0cm9rZT0iaHNsKDI0MCwgMTAwJSwgNTAlKSIgZD0iTTIwMS40NzcgMTM2Ljc0YTY2LjUgNjYuNSAwIDAwLjAyMy0xLjc0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjQxLCAxMDAlLCA1MCUpIiBkPSJNMjAxLjQzNyAxMzcuOWE2Ni41IDY2LjUgMCAwMC4wNTMtMS43NCIvPjxwYXRoIHN0cm9rZT0iaHNsKDI0MiwgMTAwJSwgNTAlKSIgZD0iTTIwMS4zNzYgMTM5LjA2YTY2LjUgNjYuNSAwIDAwLjA4My0xLjc0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjQzLCAxMDAlLCA1MCUpIiBkPSJNMjAxLjI5NSAxNDAuMjE4YTY2LjUgNjYuNSAwIDAwLjExNC0xLjczOCIvPjxwYXRoIHN0cm9rZT0iaHNsKDI0NCwgMTAwJSwgNTAlKSIgZD0iTTIwMS4xOTQgMTQxLjM3NGE2Ni41IDY2LjUgMCAwMC4xNDQtMS43MzUiLz48cGF0aCBzdHJva2U9ImhzbCgyNDUsIDEwMCUsIDUwJSkiIGQ9Ik0yMDEuMDczIDE0Mi41MjhhNjYuNSA2Ni41IDAgMDAuMTc0LTEuNzMyIi8+PHBhdGggc3Ryb2tlPSJoc2woMjQ2LCAxMDAlLCA1MCUpIiBkPSJNMjAwLjkzMSAxNDMuNjhhNjYuNSA2Ni41IDAgMDAuMjA1LTEuNzI5Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjQ3LCAxMDAlLCA1MCUpIiBkPSJNMjAwLjc3IDE0NC44M2E2Ni41IDY2LjUgMCAwMC4yMzQtMS43MjYiLz48cGF0aCBzdHJva2U9ImhzbCgyNDgsIDEwMCUsIDUwJSkiIGQ9Ik0yMDAuNTg4IDE0NS45NzZhNjYuNSA2Ni41IDAgMDAuMjY1LTEuNzIxIi8+PHBhdGggc3Ryb2tlPSJoc2woMjQ5LCAxMDAlLCA1MCUpIiBkPSJNMjAwLjM4NiAxNDcuMTE5YTY2LjUgNjYuNSAwIDAwLjI5NS0xLjcxNiIvPjxwYXRoIHN0cm9rZT0iaHNsKDI1MCwgMTAwJSwgNTAlKSIgZD0iTTIwMC4xNjUgMTQ4LjI1OGE2Ni41IDY2LjUgMCAwMC4zMjUtMS43MSIvPjxwYXRoIHN0cm9rZT0iaHNsKDI1MSwgMTAwJSwgNTAlKSIgZD0iTTE5OS45MjQgMTQ5LjM5M2E2Ni41IDY2LjUgMCAwMC4zNTQtMS43MDQiLz48cGF0aCBzdHJva2U9ImhzbCgyNTIsIDEwMCUsIDUwJSkiIGQ9Ik0xOTkuNjYzIDE1MC41MjRhNjYuNSA2Ni41IDAgMDAuMzg0LTEuNjk4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjUzLCAxMDAlLCA1MCUpIiBkPSJNMTk5LjM4MiAxNTEuNjVhNjYuNSA2Ni41IDAgMDAuNDE0LTEuNjkiLz48cGF0aCBzdHJva2U9ImhzbCgyNTQsIDEwMCUsIDUwJSkiIGQ9Ik0xOTkuMDgxIDE1Mi43NzFhNjYuNSA2Ni41IDAgMDAuNDQ0LTEuNjgzIi8+PHBhdGggc3Ryb2tlPSJoc2woMjU1LCAxMDAlLCA1MCUpIiBkPSJNMTk4Ljc2MiAxNTMuODg3YTY2LjUgNjYuNSAwIDAwLjQ3Mi0xLjY3NiIvPjxwYXRoIHN0cm9rZT0iaHNsKDI1NiwgMTAwJSwgNTAlKSIgZD0iTTE5OC40MjIgMTU0Ljk5N2E2Ni41IDY2LjUgMCAwMC41MDItMS42NjciLz48cGF0aCBzdHJva2U9ImhzbCgyNTcsIDEwMCUsIDUwJSkiIGQ9Ik0xOTguMDY0IDE1Ni4xYTY2LjUgNjYuNSAwIDAwLjUzLTEuNjU3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjU4LCAxMDAlLCA1MCUpIiBkPSJNMTk3LjY4NiAxNTcuMTk4YTY2LjUgNjYuNSAwIDAwLjU2LTEuNjQ4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjU5LCAxMDAlLCA1MCUpIiBkPSJNMTk3LjI4OSAxNTguMjg5YTY2LjUgNjYuNSAwIDAwLjU4OC0xLjYzOSIvPjxwYXRoIHN0cm9rZT0iaHNsKDI2MCwgMTAwJSwgNTAlKSIgZD0iTTE5Ni44NzMgMTU5LjM3MmE2Ni41IDY2LjUgMCAwMC42MTctMS42MjgiLz48cGF0aCBzdHJva2U9ImhzbCgyNjEsIDEwMCUsIDUwJSkiIGQ9Ik0xOTYuNDM4IDE2MC40NDhhNjYuNSA2Ni41IDAgMDAuNjQ1LTEuNjE3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjYyLCAxMDAlLCA1MCUpIiBkPSJNMTk1Ljk4NCAxNjEuNTE3YTY2LjUgNjYuNSAwIDAwLjY3NC0xLjYwNiIvPjxwYXRoIHN0cm9rZT0iaHNsKDI2MywgMTAwJSwgNTAlKSIgZD0iTTE5NS41MTIgMTYyLjU3N2E2Ni41IDY2LjUgMCAwMC43MDItMS41OTMiLz48cGF0aCBzdHJva2U9ImhzbCgyNjQsIDEwMCUsIDUwJSkiIGQ9Ik0xOTUuMDIyIDE2My42MjlhNjYuNSA2Ni41IDAgMDAuNzI5LTEuNTgxIi8+PHBhdGggc3Ryb2tlPSJoc2woMjY1LCAxMDAlLCA1MCUpIiBkPSJNMTk0LjUxMyAxNjQuNjcyYTY2LjUgNjYuNSAwIDAwLjc1Ni0xLjU2OCIvPjxwYXRoIHN0cm9rZT0iaHNsKDI2NiwgMTAwJSwgNTAlKSIgZD0iTTE5My45ODYgMTY1LjcwNmE2Ni41IDY2LjUgMCAwMC43ODQtMS41NTQiLz48cGF0aCBzdHJva2U9ImhzbCgyNjcsIDEwMCUsIDUwJSkiIGQ9Ik0xOTMuNDQxIDE2Ni43MzFhNjYuNSA2Ni41IDAgMDAuODEtMS41NCIvPjxwYXRoIHN0cm9rZT0iaHNsKDI2OCwgMTAwJSwgNTAlKSIgZD0iTTE5Mi44NzkgMTY3Ljc0NmE2Ni41IDY2LjUgMCAwMC44MzctMS41MjYiLz48cGF0aCBzdHJva2U9ImhzbCgyNjksIDEwMCUsIDUwJSkiIGQ9Ik0xOTIuMjk4IDE2OC43NTFhNjYuNSA2Ni41IDAgMDAuODY0LTEuNTExIi8+PHBhdGggc3Ryb2tlPSJoc2woMjcwLCAxMDAlLCA1MCUpIiBkPSJNMTkxLjcgMTY5Ljc0NmE2Ni41IDY2LjUgMCAwMC44OS0xLjQ5NiIvPjxwYXRoIHN0cm9rZT0iaHNsKDI3MSwgMTAwJSwgNTAlKSIgZD0iTTE5MS4wODYgMTcwLjczYTY2LjUgNjYuNSAwIDAwLjkxNi0xLjQ4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjcyLCAxMDAlLCA1MCUpIiBkPSJNMTkwLjQ1MyAxNzEuNzA0YTY2LjUgNjYuNSAwIDAwLjk0Mi0xLjQ2NCIvPjxwYXRoIHN0cm9rZT0iaHNsKDI3MywgMTAwJSwgNTAlKSIgZD0iTTE4OS44MDQgMTcyLjY2NmE2Ni41IDY2LjUgMCAwMC45NjgtMS40NDgiLz48cGF0aCBzdHJva2U9ImhzbCgyNzQsIDEwMCUsIDUwJSkiIGQ9Ik0xODkuMTM5IDE3My42MTdhNjYuNSA2Ni41IDAgMDAuOTkyLTEuNDMiLz48cGF0aCBzdHJva2U9ImhzbCgyNzUsIDEwMCUsIDUwJSkiIGQ9Ik0xODguNDU2IDE3NC41NTZhNjYuNSA2Ni41IDAgMDAxLjAxOC0xLjQxMyIvPjxwYXRoIHN0cm9rZT0iaHNsKDI3NiwgMTAwJSwgNTAlKSIgZD0iTTE4Ny43NTggMTc1LjQ4M2E2Ni41IDY2LjUgMCAwMDEuMDQyLTEuMzk1Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjc3LCAxMDAlLCA1MCUpIiBkPSJNMTg3LjA0MyAxNzYuMzk3YTY2LjUgNjYuNSAwIDAwMS4wNjYtMS4zNzYiLz48cGF0aCBzdHJva2U9ImhzbCgyNzgsIDEwMCUsIDUwJSkiIGQ9Ik0xODYuMzEzIDE3Ny4zYTY2LjUgNjYuNSAwIDAwMS4wOS0xLjM1OSIvPjxwYXRoIHN0cm9rZT0iaHNsKDI3OSwgMTAwJSwgNTAlKSIgZD0iTTE4NS41NjcgMTc4LjE4OGE2Ni41IDY2LjUgMCAwMDEuMTEzLTEuMzM4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjgwLCAxMDAlLCA1MCUpIiBkPSJNMTg0LjgwNiAxNzkuMDY0YTY2LjUgNjYuNSAwIDAwMS4xMzYtMS4zMTkiLz48cGF0aCBzdHJva2U9ImhzbCgyODEsIDEwMCUsIDUwJSkiIGQ9Ik0xODQuMDI5IDE3OS45MjdhNjYuNSA2Ni41IDAgMDAxLjE2LTEuMyIvPjxwYXRoIHN0cm9rZT0iaHNsKDI4MiwgMTAwJSwgNTAlKSIgZD0iTTE4My4yMzcgMTgwLjc3NmE2Ni41IDY2LjUgMCAwMDEuMTgyLTEuMjc5Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjgzLCAxMDAlLCA1MCUpIiBkPSJNMTgyLjQzMSAxODEuNjFhNjYuNSA2Ni41IDAgMDAxLjIwNC0xLjI1NyIvPjxwYXRoIHN0cm9rZT0iaHNsKDI4NCwgMTAwJSwgNTAlKSIgZD0iTTE4MS42MSAxODIuNDMxYTY2LjUgNjYuNSAwIDAwMS4yMjYtMS4yMzYiLz48cGF0aCBzdHJva2U9ImhzbCgyODUsIDEwMCUsIDUwJSkiIGQ9Ik0xODAuNzc2IDE4My4yMzdhNjYuNSA2Ni41IDAgMDAxLjI0Ny0xLjIxNCIvPjxwYXRoIHN0cm9rZT0iaHNsKDI4NiwgMTAwJSwgNTAlKSIgZD0iTTE3OS45MjcgMTg0LjAyOWE2Ni41IDY2LjUgMCAwMDEuMjY4LTEuMTkzIi8+PHBhdGggc3Ryb2tlPSJoc2woMjg3LCAxMDAlLCA1MCUpIiBkPSJNMTc5LjA2NCAxODQuODA2YTY2LjUgNjYuNSAwIDAwMS4yODktMS4xNzEiLz48cGF0aCBzdHJva2U9ImhzbCgyODgsIDEwMCUsIDUwJSkiIGQ9Ik0xNzguMTg4IDE4NS41NjdhNjYuNSA2Ni41IDAgMDAxLjMxLTEuMTQ4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjg5LCAxMDAlLCA1MCUpIiBkPSJNMTc3LjMgMTg2LjMxM2E2Ni41IDY2LjUgMCAwMDEuMzI4LTEuMTI1Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjkwLCAxMDAlLCA1MCUpIiBkPSJNMTc2LjM5NyAxODcuMDQzYTY2LjUgNjYuNSAwIDAwMS4zNDgtMS4xMDEiLz48cGF0aCBzdHJva2U9ImhzbCgyOTEsIDEwMCUsIDUwJSkiIGQ9Ik0xNzUuNDgzIDE4Ny43NThhNjYuNSA2Ni41IDAgMDAxLjM2Ny0xLjA3OCIvPjxwYXRoIHN0cm9rZT0iaHNsKDI5MiwgMTAwJSwgNTAlKSIgZD0iTTE3NC41NTYgMTg4LjQ1NmE2Ni41IDY2LjUgMCAwMDEuMzg1LTEuMDUzIi8+PHBhdGggc3Ryb2tlPSJoc2woMjkzLCAxMDAlLCA1MCUpIiBkPSJNMTczLjYxNyAxODkuMTM5YTY2LjUgNjYuNSAwIDAwMS40MDQtMS4wMyIvPjxwYXRoIHN0cm9rZT0iaHNsKDI5NCwgMTAwJSwgNTAlKSIgZD0iTTE3Mi42NjYgMTg5LjgwNGE2Ni41IDY2LjUgMCAwMDEuNDIyLTEuMDA0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjk1LCAxMDAlLCA1MCUpIiBkPSJNMTcxLjcwNCAxOTAuNDUzYTY2LjUgNjYuNSAwIDAwMS40MzktLjk4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjk2LCAxMDAlLCA1MCUpIiBkPSJNMTcwLjczIDE5MS4wODZhNjYuNSA2Ni41IDAgMDAxLjQ1Ni0uOTU1Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjk3LCAxMDAlLCA1MCUpIiBkPSJNMTY5Ljc0NiAxOTEuN2E2Ni41IDY2LjUgMCAwMDEuNDcyLS45MjgiLz48cGF0aCBzdHJva2U9ImhzbCgyOTgsIDEwMCUsIDUwJSkiIGQ9Ik0xNjguNzUxIDE5Mi4yOThhNjYuNSA2Ni41IDAgMDAxLjQ4OS0uOTAzIi8+PHBhdGggc3Ryb2tlPSJoc2woMjk5LCAxMDAlLCA1MCUpIiBkPSJNMTY3Ljc0NiAxOTIuODc5YTY2LjUgNjYuNSAwIDAwMS41MDQtLjg3NyIvPjxwYXRoIHN0cm9rZT0iaHNsKDMwMCwgMTAwJSwgNTAlKSIgZD0iTTE2Ni43MzEgMTkzLjQ0MWE2Ni41IDY2LjUgMCAwMDEuNTE5LS44NSIvPjxwYXRoIHN0cm9rZT0iaHNsKDMwMSwgMTAwJSwgNTAlKSIgZD0iTTE2NS43MDYgMTkzLjk4NmE2Ni41IDY2LjUgMCAwMDEuNTM0LS44MjQiLz48cGF0aCBzdHJva2U9ImhzbCgzMDIsIDEwMCUsIDUwJSkiIGQ9Ik0xNjQuNjcyIDE5NC41MTNhNjYuNSA2Ni41IDAgMDAxLjU0OC0uNzk3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzAzLCAxMDAlLCA1MCUpIiBkPSJNMTYzLjYyOSAxOTUuMDIyYTY2LjUgNjYuNSAwIDAwMS41NjEtLjc3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzA0LCAxMDAlLCA1MCUpIiBkPSJNMTYyLjU3NyAxOTUuNTEyYTY2LjUgNjYuNSAwIDAwMS41NzUtLjc0MiIvPjxwYXRoIHN0cm9rZT0iaHNsKDMwNSwgMTAwJSwgNTAlKSIgZD0iTTE2MS41MTcgMTk1Ljk4NGE2Ni41IDY2LjUgMCAwMDEuNTg3LS43MTUiLz48cGF0aCBzdHJva2U9ImhzbCgzMDYsIDEwMCUsIDUwJSkiIGQ9Ik0xNjAuNDQ4IDE5Ni40MzhhNjYuNSA2Ni41IDAgMDAxLjYtLjY4NyIvPjxwYXRoIHN0cm9rZT0iaHNsKDMwNywgMTAwJSwgNTAlKSIgZD0iTTE1OS4zNzIgMTk2Ljg3M2E2Ni41IDY2LjUgMCAwMDEuNjEyLS42NiIvPjxwYXRoIHN0cm9rZT0iaHNsKDMwOCwgMTAwJSwgNTAlKSIgZD0iTTE1OC4yODkgMTk3LjI4OWE2Ni41IDY2LjUgMCAwMDEuNjIyLS42MzEiLz48cGF0aCBzdHJva2U9ImhzbCgzMDksIDEwMCUsIDUwJSkiIGQ9Ik0xNTcuMTk4IDE5Ny42ODZhNjYuNSA2Ni41IDAgMDAxLjYzMy0uNjAzIi8+PHBhdGggc3Ryb2tlPSJoc2woMzEwLCAxMDAlLCA1MCUpIiBkPSJNMTU2LjEgMTk4LjA2NGE2Ni41IDY2LjUgMCAwMDEuNjQ0LS41NzQiLz48cGF0aCBzdHJva2U9ImhzbCgzMTEsIDEwMCUsIDUwJSkiIGQ9Ik0xNTQuOTk3IDE5OC40MjJhNjYuNSA2Ni41IDAgMDAxLjY1My0uNTQ1Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzEyLCAxMDAlLCA1MCUpIiBkPSJNMTUzLjg4NyAxOTguNzYyYTY2LjUgNjYuNSAwIDAwMS42NjMtLjUxNyIvPjxwYXRoIHN0cm9rZT0iaHNsKDMxMywgMTAwJSwgNTAlKSIgZD0iTTE1Mi43NzEgMTk5LjA4MWE2Ni41IDY2LjUgMCAwMDEuNjcyLS40ODciLz48cGF0aCBzdHJva2U9ImhzbCgzMTQsIDEwMCUsIDUwJSkiIGQ9Ik0xNTEuNjUgMTk5LjM4MmE2Ni41IDY2LjUgMCAwMDEuNjgtLjQ1OCIvPjxwYXRoIHN0cm9rZT0iaHNsKDMxNSwgMTAwJSwgNTAlKSIgZD0iTTE1MC41MjQgMTk5LjY2M2E2Ni41IDY2LjUgMCAwMDEuNjg3LS40MjkiLz48cGF0aCBzdHJva2U9ImhzbCgzMTYsIDEwMCUsIDUwJSkiIGQ9Ik0xNDkuMzkzIDE5OS45MjRhNjYuNSA2Ni41IDAgMDAxLjY5NS0uNCIvPjxwYXRoIHN0cm9rZT0iaHNsKDMxNywgMTAwJSwgNTAlKSIgZD0iTTE0OC4yNTggMjAwLjE2NWE2Ni41IDY2LjUgMCAwMDEuNzAxLS4zNyIvPjxwYXRoIHN0cm9rZT0iaHNsKDMxOCwgMTAwJSwgNTAlKSIgZD0iTTE0Ny4xMTkgMjAwLjM4NmE2Ni41IDY2LjUgMCAwMDEuNzA3LS4zNCIvPjxwYXRoIHN0cm9rZT0iaHNsKDMxOSwgMTAwJSwgNTAlKSIgZD0iTTE0NS45NzYgMjAwLjU4OGE2Ni41IDY2LjUgMCAwMDEuNzEzLS4zMSIvPjxwYXRoIHN0cm9rZT0iaHNsKDMyMCwgMTAwJSwgNTAlKSIgZD0iTTE0NC44MyAyMDAuNzdhNjYuNSA2Ni41IDAgMDAxLjcxOC0uMjgiLz48cGF0aCBzdHJva2U9ImhzbCgzMjEsIDEwMCUsIDUwJSkiIGQ9Ik0xNDMuNjggMjAwLjkzMWE2Ni41IDY2LjUgMCAwMDEuNzIzLS4yNSIvPjxwYXRoIHN0cm9rZT0iaHNsKDMyMiwgMTAwJSwgNTAlKSIgZD0iTTE0Mi41MjggMjAxLjA3M2E2Ni41IDY2LjUgMCAwMDEuNzI3LS4yMiIvPjxwYXRoIHN0cm9rZT0iaHNsKDMyMywgMTAwJSwgNTAlKSIgZD0iTTE0MS4zNzQgMjAxLjE5NGE2Ni41IDY2LjUgMCAwMDEuNzMtLjE5Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzI0LCAxMDAlLCA1MCUpIiBkPSJNMTQwLjIxOCAyMDEuMjk1YTY2LjUgNjYuNSAwIDAwMS43MzMtLjE2Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzI1LCAxMDAlLCA1MCUpIiBkPSJNMTM5LjA2IDIwMS4zNzZhNjYuNSA2Ni41IDAgMDAxLjczNi0uMTMiLz48cGF0aCBzdHJva2U9ImhzbCgzMjYsIDEwMCUsIDUwJSkiIGQ9Ik0xMzcuOSAyMDEuNDM3YTY2LjUgNjYuNSAwIDAwMS43MzktLjA5OSIvPjxwYXRoIHN0cm9rZT0iaHNsKDMyNywgMTAwJSwgNTAlKSIgZD0iTTEzNi43NCAyMDEuNDc3YTY2LjUgNjYuNSAwIDAwMS43NC0uMDY4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzI4LCAxMDAlLCA1MCUpIiBkPSJNMTM1LjU4IDIwMS40OTdhNjYuNSA2Ni41IDAgMDAxLjc0LS4wMzgiLz48cGF0aCBzdHJva2U9ImhzbCgzMjksIDEwMCUsIDUwJSkiIGQ9Ik0xMzQuNDIgMjAxLjQ5N2E2Ni41IDY2LjUgMCAwMDEuNzQtLjAwNyIvPjxwYXRoIHN0cm9rZT0iaHNsKDMzMCwgMTAwJSwgNTAlKSIgZD0iTTEzMy4yNiAyMDEuNDc3YTY2LjUgNjYuNSAwIDAwMS43NC4wMjMiLz48cGF0aCBzdHJva2U9ImhzbCgzMzEsIDEwMCUsIDUwJSkiIGQ9Ik0xMzIuMSAyMDEuNDM3YTY2LjUgNjYuNSAwIDAwMS43NC4wNTMiLz48cGF0aCBzdHJva2U9ImhzbCgzMzIsIDEwMCUsIDUwJSkiIGQ9Ik0xMzAuOTQgMjAxLjM3NmE2Ni41IDY2LjUgMCAwMDEuNzQuMDgzIi8+PHBhdGggc3Ryb2tlPSJoc2woMzMzLCAxMDAlLCA1MCUpIiBkPSJNMTI5Ljc4MiAyMDEuMjk1YTY2LjUgNjYuNSAwIDAwMS43MzguMTE0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzM0LCAxMDAlLCA1MCUpIiBkPSJNMTI4LjYyNiAyMDEuMTk0YTY2LjUgNjYuNSAwIDAwMS43MzUuMTQ0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzM1LCAxMDAlLCA1MCUpIiBkPSJNMTI3LjQ3MiAyMDEuMDczYTY2LjUgNjYuNSAwIDAwMS43MzIuMTc0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzM2LCAxMDAlLCA1MCUpIiBkPSJNMTI2LjMyIDIwMC45MzFhNjYuNSA2Ni41IDAgMDAxLjcyOS4yMDUiLz48cGF0aCBzdHJva2U9ImhzbCgzMzcsIDEwMCUsIDUwJSkiIGQ9Ik0xMjUuMTcgMjAwLjc3YTY2LjUgNjYuNSAwIDAwMS43MjYuMjM0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzM4LCAxMDAlLCA1MCUpIiBkPSJNMTI0LjAyNCAyMDAuNTg4YTY2LjUgNjYuNSAwIDAwMS43MjEuMjY1Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzM5LCAxMDAlLCA1MCUpIiBkPSJNMTIyLjg4MSAyMDAuMzg2YTY2LjUgNjYuNSAwIDAwMS43MTYuMjk1Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzQwLCAxMDAlLCA1MCUpIiBkPSJNMTIxLjc0MiAyMDAuMTY1YTY2LjUgNjYuNSAwIDAwMS43MS4zMjUiLz48cGF0aCBzdHJva2U9ImhzbCgzNDEsIDEwMCUsIDUwJSkiIGQ9Ik0xMjAuNjA3IDE5OS45MjRhNjYuNSA2Ni41IDAgMDAxLjcwNC4zNTQiLz48cGF0aCBzdHJva2U9ImhzbCgzNDIsIDEwMCUsIDUwJSkiIGQ9Ik0xMTkuNDc2IDE5OS42NjNhNjYuNSA2Ni41IDAgMDAxLjY5OC4zODQiLz48cGF0aCBzdHJva2U9ImhzbCgzNDMsIDEwMCUsIDUwJSkiIGQ9Ik0xMTguMzUgMTk5LjM4MmE2Ni41IDY2LjUgMCAwMDEuNjkuNDE0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzQ0LCAxMDAlLCA1MCUpIiBkPSJNMTE3LjIyOSAxOTkuMDgxYTY2LjUgNjYuNSAwIDAwMS42ODMuNDQ0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzQ1LCAxMDAlLCA1MCUpIiBkPSJNMTE2LjExMyAxOTguNzYyYTY2LjUgNjYuNSAwIDAwMS42NzYuNDcyIi8+PHBhdGggc3Ryb2tlPSJoc2woMzQ2LCAxMDAlLCA1MCUpIiBkPSJNMTE1LjAwMyAxOTguNDIyYTY2LjUgNjYuNSAwIDAwMS42NjcuNTAyIi8+PHBhdGggc3Ryb2tlPSJoc2woMzQ3LCAxMDAlLCA1MCUpIiBkPSJNMTEzLjkgMTk4LjA2NGE2Ni41IDY2LjUgMCAwMDEuNjU3LjUzIi8+PHBhdGggc3Ryb2tlPSJoc2woMzQ4LCAxMDAlLCA1MCUpIiBkPSJNMTEyLjgwMiAxOTcuNjg2YTY2LjUgNjYuNSAwIDAwMS42NDguNTYiLz48cGF0aCBzdHJva2U9ImhzbCgzNDksIDEwMCUsIDUwJSkiIGQ9Ik0xMTEuNzExIDE5Ny4yODlhNjYuNSA2Ni41IDAgMDAxLjYzOS41ODgiLz48cGF0aCBzdHJva2U9ImhzbCgzNTAsIDEwMCUsIDUwJSkiIGQ9Ik0xMTAuNjI4IDE5Ni44NzNhNjYuNSA2Ni41IDAgMDAxLjYyOC42MTciLz48cGF0aCBzdHJva2U9ImhzbCgzNTEsIDEwMCUsIDUwJSkiIGQ9Ik0xMDkuNTUyIDE5Ni40MzhhNjYuNSA2Ni41IDAgMDAxLjYxNy42NDUiLz48cGF0aCBzdHJva2U9ImhzbCgzNTIsIDEwMCUsIDUwJSkiIGQ9Ik0xMDguNDgzIDE5NS45ODRhNjYuNSA2Ni41IDAgMDAxLjYwNi42NzQiLz48cGF0aCBzdHJva2U9ImhzbCgzNTMsIDEwMCUsIDUwJSkiIGQ9Ik0xMDcuNDIzIDE5NS41MTJhNjYuNSA2Ni41IDAgMDAxLjU5My43MDIiLz48cGF0aCBzdHJva2U9ImhzbCgzNTQsIDEwMCUsIDUwJSkiIGQ9Ik0xMDYuMzcxIDE5NS4wMjJhNjYuNSA2Ni41IDAgMDAxLjU4MS43MjkiLz48cGF0aCBzdHJva2U9ImhzbCgzNTUsIDEwMCUsIDUwJSkiIGQ9Ik0xMDUuMzI4IDE5NC41MTNhNjYuNSA2Ni41IDAgMDAxLjU2OC43NTYiLz48cGF0aCBzdHJva2U9ImhzbCgzNTYsIDEwMCUsIDUwJSkiIGQ9Ik0xMDQuMjk0IDE5My45ODZhNjYuNSA2Ni41IDAgMDAxLjU1NC43ODQiLz48cGF0aCBzdHJva2U9ImhzbCgzNTcsIDEwMCUsIDUwJSkiIGQ9Ik0xMDMuMjY5IDE5My40NDFhNjYuNSA2Ni41IDAgMDAxLjU0LjgxIi8+PHBhdGggc3Ryb2tlPSJoc2woMzU4LCAxMDAlLCA1MCUpIiBkPSJNMTAyLjI1NCAxOTIuODc5YTY2LjUgNjYuNSAwIDAwMS41MjYuODM3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzU5LCAxMDAlLCA1MCUpIiBkPSJNMTAxLjI0OSAxOTIuMjk4YTY2LjUgNjYuNSAwIDAwMS41MTEuODY0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMCwgMTAwJSwgNTAlKSIgZD0iTTEwMC4yNTQgMTkxLjdhNjYuNSA2Ni41IDAgMDAxLjQ5Ni44OSIvPjxwYXRoIHN0cm9rZT0iaHNsKDEsIDEwMCUsIDUwJSkiIGQ9Ik05OS4yNyAxOTEuMDg2YTY2LjUgNjYuNSAwIDAwMS40OC45MTYiLz48cGF0aCBzdHJva2U9ImhzbCgyLCAxMDAlLCA1MCUpIiBkPSJNOTguMjk2IDE5MC40NTNhNjYuNSA2Ni41IDAgMDAxLjQ2NC45NDIiLz48cGF0aCBzdHJva2U9ImhzbCgzLCAxMDAlLCA1MCUpIiBkPSJNOTcuMzM0IDE4OS44MDRhNjYuNSA2Ni41IDAgMDAxLjQ0OC45NjgiLz48cGF0aCBzdHJva2U9ImhzbCg0LCAxMDAlLCA1MCUpIiBkPSJNOTYuMzgzIDE4OS4xMzlhNjYuNSA2Ni41IDAgMDAxLjQzLjk5MiIvPjxwYXRoIHN0cm9rZT0iaHNsKDUsIDEwMCUsIDUwJSkiIGQ9Ik05NS40NDQgMTg4LjQ1NmE2Ni41IDY2LjUgMCAwMDEuNDEzIDEuMDE4Ii8+PHBhdGggc3Ryb2tlPSJoc2woNiwgMTAwJSwgNTAlKSIgZD0iTTk0LjUxNyAxODcuNzU4YTY2LjUgNjYuNSAwIDAwMS4zOTUgMS4wNDIiLz48cGF0aCBzdHJva2U9ImhzbCg3LCAxMDAlLCA1MCUpIiBkPSJNOTMuNjAzIDE4Ny4wNDNhNjYuNSA2Ni41IDAgMDAxLjM3NiAxLjA2NiIvPjxwYXRoIHN0cm9rZT0iaHNsKDgsIDEwMCUsIDUwJSkiIGQ9Ik05Mi43IDE4Ni4zMTNhNjYuNSA2Ni41IDAgMDAxLjM1OSAxLjA5Ii8+PHBhdGggc3Ryb2tlPSJoc2woOSwgMTAwJSwgNTAlKSIgZD0iTTkxLjgxMiAxODUuNTY3YTY2LjUgNjYuNSAwIDAwMS4zMzggMS4xMTMiLz48cGF0aCBzdHJva2U9ImhzbCgxMCwgMTAwJSwgNTAlKSIgZD0iTTkwLjkzNiAxODQuODA2YTY2LjUgNjYuNSAwIDAwMS4zMTkgMS4xMzYiLz48cGF0aCBzdHJva2U9ImhzbCgxMSwgMTAwJSwgNTAlKSIgZD0iTTkwLjA3MyAxODQuMDI5YTY2LjUgNjYuNSAwIDAwMS4zIDEuMTYiLz48cGF0aCBzdHJva2U9ImhzbCgxMiwgMTAwJSwgNTAlKSIgZD0iTTg5LjIyNCAxODMuMjM3YTY2LjUgNjYuNSAwIDAwMS4yNzkgMS4xODIiLz48cGF0aCBzdHJva2U9ImhzbCgxMywgMTAwJSwgNTAlKSIgZD0iTTg4LjM5IDE4Mi40MzFhNjYuNSA2Ni41IDAgMDAxLjI1NyAxLjIwNCIvPjxwYXRoIHN0cm9rZT0iaHNsKDE0LCAxMDAlLCA1MCUpIiBkPSJNODcuNTY5IDE4MS42MWE2Ni41IDY2LjUgMCAwMDEuMjM2IDEuMjI2Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTUsIDEwMCUsIDUwJSkiIGQ9Ik04Ni43NjMgMTgwLjc3NmE2Ni41IDY2LjUgMCAwMDEuMjE0IDEuMjQ3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTYsIDEwMCUsIDUwJSkiIGQ9Ik04NS45NzEgMTc5LjkyN2E2Ni41IDY2LjUgMCAwMDEuMTkzIDEuMjY4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTcsIDEwMCUsIDUwJSkiIGQ9Ik04NS4xOTQgMTc5LjA2NGE2Ni41IDY2LjUgMCAwMDEuMTcxIDEuMjg5Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTgsIDEwMCUsIDUwJSkiIGQ9Ik04NC40MzMgMTc4LjE4OGE2Ni41IDY2LjUgMCAwMDEuMTQ4IDEuMzEiLz48cGF0aCBzdHJva2U9ImhzbCgxOSwgMTAwJSwgNTAlKSIgZD0iTTgzLjY4NyAxNzcuM2E2Ni41IDY2LjUgMCAwMDEuMTI1IDEuMzI4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjAsIDEwMCUsIDUwJSkiIGQ9Ik04Mi45NTcgMTc2LjM5N2E2Ni41IDY2LjUgMCAwMDEuMTAxIDEuMzQ4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjEsIDEwMCUsIDUwJSkiIGQ9Ik04Mi4yNDIgMTc1LjQ4M2E2Ni41IDY2LjUgMCAwMDEuMDc4IDEuMzY3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjIsIDEwMCUsIDUwJSkiIGQ9Ik04MS41NDQgMTc0LjU1NmE2Ni41IDY2LjUgMCAwMDEuMDUzIDEuMzg1Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjMsIDEwMCUsIDUwJSkiIGQ9Ik04MC44NjEgMTczLjYxN2E2Ni41IDY2LjUgMCAwMDEuMDMgMS40MDQiLz48cGF0aCBzdHJva2U9ImhzbCgyNCwgMTAwJSwgNTAlKSIgZD0iTTgwLjE5NiAxNzIuNjY2YTY2LjUgNjYuNSAwIDAwMS4wMDQgMS40MjIiLz48cGF0aCBzdHJva2U9ImhzbCgyNSwgMTAwJSwgNTAlKSIgZD0iTTc5LjU0NyAxNzEuNzA0YTY2LjUgNjYuNSAwIDAwLjk4IDEuNDM5Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjYsIDEwMCUsIDUwJSkiIGQ9Ik03OC45MTQgMTcwLjczYTY2LjUgNjYuNSAwIDAwLjk1NSAxLjQ1NiIvPjxwYXRoIHN0cm9rZT0iaHNsKDI3LCAxMDAlLCA1MCUpIiBkPSJNNzguMyAxNjkuNzQ2YTY2LjUgNjYuNSAwIDAwLjkyOCAxLjQ3MiIvPjxwYXRoIHN0cm9rZT0iaHNsKDI4LCAxMDAlLCA1MCUpIiBkPSJNNzcuNzAyIDE2OC43NTFhNjYuNSA2Ni41IDAgMDAuOTAzIDEuNDg5Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjksIDEwMCUsIDUwJSkiIGQ9Ik03Ny4xMjEgMTY3Ljc0NmE2Ni41IDY2LjUgMCAwMC44NzcgMS41MDQiLz48cGF0aCBzdHJva2U9ImhzbCgzMCwgMTAwJSwgNTAlKSIgZD0iTTc2LjU1OSAxNjYuNzMxYTY2LjUgNjYuNSAwIDAwLjg1IDEuNTE5Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzEsIDEwMCUsIDUwJSkiIGQ9Ik03Ni4wMTQgMTY1LjcwNmE2Ni41IDY2LjUgMCAwMC44MjQgMS41MzQiLz48cGF0aCBzdHJva2U9ImhzbCgzMiwgMTAwJSwgNTAlKSIgZD0iTTc1LjQ4NyAxNjQuNjcyYTY2LjUgNjYuNSAwIDAwLjc5NyAxLjU0OCIvPjxwYXRoIHN0cm9rZT0iaHNsKDMzLCAxMDAlLCA1MCUpIiBkPSJNNzQuOTc4IDE2My42MjlhNjYuNSA2Ni41IDAgMDAuNzcgMS41NjEiLz48cGF0aCBzdHJva2U9ImhzbCgzNCwgMTAwJSwgNTAlKSIgZD0iTTc0LjQ4OCAxNjIuNTc3YTY2LjUgNjYuNSAwIDAwLjc0MiAxLjU3NSIvPjxwYXRoIHN0cm9rZT0iaHNsKDM1LCAxMDAlLCA1MCUpIiBkPSJNNzQuMDE2IDE2MS41MTdhNjYuNSA2Ni41IDAgMDAuNzE1IDEuNTg3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzYsIDEwMCUsIDUwJSkiIGQ9Ik03My41NjIgMTYwLjQ0OGE2Ni41IDY2LjUgMCAwMC42ODcgMS42Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzcsIDEwMCUsIDUwJSkiIGQ9Ik03My4xMjcgMTU5LjM3MmE2Ni41IDY2LjUgMCAwMC42NiAxLjYxMiIvPjxwYXRoIHN0cm9rZT0iaHNsKDM4LCAxMDAlLCA1MCUpIiBkPSJNNzIuNzExIDE1OC4yODlhNjYuNSA2Ni41IDAgMDAuNjMxIDEuNjIyIi8+PHBhdGggc3Ryb2tlPSJoc2woMzksIDEwMCUsIDUwJSkiIGQ9Ik03Mi4zMTQgMTU3LjE5OGE2Ni41IDY2LjUgMCAwMC42MDMgMS42MzMiLz48cGF0aCBzdHJva2U9ImhzbCg0MCwgMTAwJSwgNTAlKSIgZD0iTTcxLjkzNiAxNTYuMWE2Ni41IDY2LjUgMCAwMC41NzQgMS42NDQiLz48cGF0aCBzdHJva2U9ImhzbCg0MSwgMTAwJSwgNTAlKSIgZD0iTTcxLjU3OCAxNTQuOTk3YTY2LjUgNjYuNSAwIDAwLjU0NSAxLjY1MyIvPjxwYXRoIHN0cm9rZT0iaHNsKDQyLCAxMDAlLCA1MCUpIiBkPSJNNzEuMjM4IDE1My44ODdhNjYuNSA2Ni41IDAgMDAuNTE3IDEuNjYzIi8+PHBhdGggc3Ryb2tlPSJoc2woNDMsIDEwMCUsIDUwJSkiIGQ9Ik03MC45MTkgMTUyLjc3MWE2Ni41IDY2LjUgMCAwMC40ODcgMS42NzIiLz48cGF0aCBzdHJva2U9ImhzbCg0NCwgMTAwJSwgNTAlKSIgZD0iTTcwLjYxOCAxNTEuNjVhNjYuNSA2Ni41IDAgMDAuNDU4IDEuNjgiLz48cGF0aCBzdHJva2U9ImhzbCg0NSwgMTAwJSwgNTAlKSIgZD0iTTcwLjMzNyAxNTAuNTI0YTY2LjUgNjYuNSAwIDAwLjQyOSAxLjY4NyIvPjxwYXRoIHN0cm9rZT0iaHNsKDQ2LCAxMDAlLCA1MCUpIiBkPSJNNzAuMDc2IDE0OS4zOTNhNjYuNSA2Ni41IDAgMDAuNCAxLjY5NSIvPjxwYXRoIHN0cm9rZT0iaHNsKDQ3LCAxMDAlLCA1MCUpIiBkPSJNNjkuODM1IDE0OC4yNThhNjYuNSA2Ni41IDAgMDAuMzcgMS43MDEiLz48cGF0aCBzdHJva2U9ImhzbCg0OCwgMTAwJSwgNTAlKSIgZD0iTTY5LjYxNCAxNDcuMTE5YTY2LjUgNjYuNSAwIDAwLjM0IDEuNzA3Ii8+PHBhdGggc3Ryb2tlPSJoc2woNDksIDEwMCUsIDUwJSkiIGQ9Ik02OS40MTIgMTQ1Ljk3NmE2Ni41IDY2LjUgMCAwMC4zMSAxLjcxMyIvPjxwYXRoIHN0cm9rZT0iaHNsKDUwLCAxMDAlLCA1MCUpIiBkPSJNNjkuMjMgMTQ0LjgzYTY2LjUgNjYuNSAwIDAwLjI4IDEuNzE4Ii8+PHBhdGggc3Ryb2tlPSJoc2woNTEsIDEwMCUsIDUwJSkiIGQ9Ik02OS4wNjkgMTQzLjY4YTY2LjUgNjYuNSAwIDAwLjI1IDEuNzIzIi8+PHBhdGggc3Ryb2tlPSJoc2woNTIsIDEwMCUsIDUwJSkiIGQ9Ik02OC45MjcgMTQyLjUyOGE2Ni41IDY2LjUgMCAwMC4yMiAxLjcyNyIvPjxwYXRoIHN0cm9rZT0iaHNsKDUzLCAxMDAlLCA1MCUpIiBkPSJNNjguODA2IDE0MS4zNzRhNjYuNSA2Ni41IDAgMDAuMTkgMS43MyIvPjxwYXRoIHN0cm9rZT0iaHNsKDU0LCAxMDAlLCA1MCUpIiBkPSJNNjguNzA1IDE0MC4yMThhNjYuNSA2Ni41IDAgMDAuMTYgMS43MzMiLz48cGF0aCBzdHJva2U9ImhzbCg1NSwgMTAwJSwgNTAlKSIgZD0iTTY4LjYyNCAxMzkuMDZhNjYuNSA2Ni41IDAgMDAuMTMgMS43MzYiLz48cGF0aCBzdHJva2U9ImhzbCg1NiwgMTAwJSwgNTAlKSIgZD0iTTY4LjU2MyAxMzcuOWE2Ni41IDY2LjUgMCAwMC4wOTkgMS43MzkiLz48cGF0aCBzdHJva2U9ImhzbCg1NywgMTAwJSwgNTAlKSIgZD0iTTY4LjUyMyAxMzYuNzRhNjYuNSA2Ni41IDAgMDAuMDY4IDEuNzQiLz48cGF0aCBzdHJva2U9ImhzbCg1OCwgMTAwJSwgNTAlKSIgZD0iTTY4LjUwMyAxMzUuNThhNjYuNSA2Ni41IDAgMDAuMDM4IDEuNzQiLz48cGF0aCBzdHJva2U9ImhzbCg1OSwgMTAwJSwgNTAlKSIgZD0iTTY4LjUwMyAxMzQuNDJhNjYuNSA2Ni41IDAgMDAuMDA3IDEuNzQiLz48cGF0aCBzdHJva2U9ImhzbCg2MCwgMTAwJSwgNTAlKSIgZD0iTTY4LjUyMyAxMzMuMjZBNjYuNSA2Ni41IDAgMDA2OC41IDEzNSIvPjxwYXRoIHN0cm9rZT0iaHNsKDYxLCAxMDAlLCA1MCUpIiBkPSJNNjguNTYzIDEzMi4xYTY2LjUgNjYuNSAwIDAwLS4wNTMgMS43NCIvPjxwYXRoIHN0cm9rZT0iaHNsKDYyLCAxMDAlLCA1MCUpIiBkPSJNNjguNjI0IDEzMC45NGE2Ni41IDY2LjUgMCAwMC0uMDgzIDEuNzQiLz48cGF0aCBzdHJva2U9ImhzbCg2MywgMTAwJSwgNTAlKSIgZD0iTTY4LjcwNSAxMjkuNzgyYTY2LjUgNjYuNSAwIDAwLS4xMTQgMS43MzgiLz48cGF0aCBzdHJva2U9ImhzbCg2NCwgMTAwJSwgNTAlKSIgZD0iTTY4LjgwNiAxMjguNjI2YTY2LjUgNjYuNSAwIDAwLS4xNDQgMS43MzUiLz48cGF0aCBzdHJva2U9ImhzbCg2NSwgMTAwJSwgNTAlKSIgZD0iTTY4LjkyNyAxMjcuNDcyYTY2LjUgNjYuNSAwIDAwLS4xNzQgMS43MzIiLz48cGF0aCBzdHJva2U9ImhzbCg2NiwgMTAwJSwgNTAlKSIgZD0iTTY5LjA2OSAxMjYuMzJhNjYuNSA2Ni41IDAgMDAtLjIwNSAxLjcyOSIvPjxwYXRoIHN0cm9rZT0iaHNsKDY3LCAxMDAlLCA1MCUpIiBkPSJNNjkuMjMgMTI1LjE3YTY2LjUgNjYuNSAwIDAwLS4yMzQgMS43MjYiLz48cGF0aCBzdHJva2U9ImhzbCg2OCwgMTAwJSwgNTAlKSIgZD0iTTY5LjQxMiAxMjQuMDI0YTY2LjUgNjYuNSAwIDAwLS4yNjUgMS43MjEiLz48cGF0aCBzdHJva2U9ImhzbCg2OSwgMTAwJSwgNTAlKSIgZD0iTTY5LjYxNCAxMjIuODgxYTY2LjUgNjYuNSAwIDAwLS4yOTUgMS43MTYiLz48cGF0aCBzdHJva2U9ImhzbCg3MCwgMTAwJSwgNTAlKSIgZD0iTTY5LjgzNSAxMjEuNzQyYTY2LjUgNjYuNSAwIDAwLS4zMjUgMS43MSIvPjxwYXRoIHN0cm9rZT0iaHNsKDcxLCAxMDAlLCA1MCUpIiBkPSJNNzAuMDc2IDEyMC42MDdhNjYuNSA2Ni41IDAgMDAtLjM1NCAxLjcwNCIvPjxwYXRoIHN0cm9rZT0iaHNsKDcyLCAxMDAlLCA1MCUpIiBkPSJNNzAuMzM3IDExOS40NzZhNjYuNSA2Ni41IDAgMDAtLjM4NCAxLjY5OCIvPjxwYXRoIHN0cm9rZT0iaHNsKDczLCAxMDAlLCA1MCUpIiBkPSJNNzAuNjE4IDExOC4zNWE2Ni41IDY2LjUgMCAwMC0uNDE0IDEuNjkiLz48cGF0aCBzdHJva2U9ImhzbCg3NCwgMTAwJSwgNTAlKSIgZD0iTTcwLjkxOSAxMTcuMjI5YTY2LjUgNjYuNSAwIDAwLS40NDQgMS42ODMiLz48cGF0aCBzdHJva2U9ImhzbCg3NSwgMTAwJSwgNTAlKSIgZD0iTTcxLjIzOCAxMTYuMTEzYTY2LjUgNjYuNSAwIDAwLS40NzIgMS42NzYiLz48cGF0aCBzdHJva2U9ImhzbCg3NiwgMTAwJSwgNTAlKSIgZD0iTTcxLjU3OCAxMTUuMDAzYTY2LjUgNjYuNSAwIDAwLS41MDIgMS42NjciLz48cGF0aCBzdHJva2U9ImhzbCg3NywgMTAwJSwgNTAlKSIgZD0iTTcxLjkzNiAxMTMuOWE2Ni41IDY2LjUgMCAwMC0uNTMgMS42NTciLz48cGF0aCBzdHJva2U9ImhzbCg3OCwgMTAwJSwgNTAlKSIgZD0iTTcyLjMxNCAxMTIuODAyYTY2LjUgNjYuNSAwIDAwLS41NiAxLjY0OCIvPjxwYXRoIHN0cm9rZT0iaHNsKDc5LCAxMDAlLCA1MCUpIiBkPSJNNzIuNzExIDExMS43MTFhNjYuNSA2Ni41IDAgMDAtLjU4OCAxLjYzOSIvPjxwYXRoIHN0cm9rZT0iaHNsKDgwLCAxMDAlLCA1MCUpIiBkPSJNNzMuMTI3IDExMC42MjhhNjYuNSA2Ni41IDAgMDAtLjYxNyAxLjYyOCIvPjxwYXRoIHN0cm9rZT0iaHNsKDgxLCAxMDAlLCA1MCUpIiBkPSJNNzMuNTYyIDEwOS41NTJhNjYuNSA2Ni41IDAgMDAtLjY0NSAxLjYxNyIvPjxwYXRoIHN0cm9rZT0iaHNsKDgyLCAxMDAlLCA1MCUpIiBkPSJNNzQuMDE2IDEwOC40ODNhNjYuNSA2Ni41IDAgMDAtLjY3NCAxLjYwNiIvPjxwYXRoIHN0cm9rZT0iaHNsKDgzLCAxMDAlLCA1MCUpIiBkPSJNNzQuNDg4IDEwNy40MjNhNjYuNSA2Ni41IDAgMDAtLjcwMiAxLjU5MyIvPjxwYXRoIHN0cm9rZT0iaHNsKDg0LCAxMDAlLCA1MCUpIiBkPSJNNzQuOTc4IDEwNi4zNzFhNjYuNSA2Ni41IDAgMDAtLjcyOSAxLjU4MSIvPjxwYXRoIHN0cm9rZT0iaHNsKDg1LCAxMDAlLCA1MCUpIiBkPSJNNzUuNDg3IDEwNS4zMjhhNjYuNSA2Ni41IDAgMDAtLjc1NiAxLjU2OCIvPjxwYXRoIHN0cm9rZT0iaHNsKDg2LCAxMDAlLCA1MCUpIiBkPSJNNzYuMDE0IDEwNC4yOTRhNjYuNSA2Ni41IDAgMDAtLjc4NCAxLjU1NCIvPjxwYXRoIHN0cm9rZT0iaHNsKDg3LCAxMDAlLCA1MCUpIiBkPSJNNzYuNTU5IDEwMy4yNjlhNjYuNSA2Ni41IDAgMDAtLjgxIDEuNTQiLz48cGF0aCBzdHJva2U9ImhzbCg4OCwgMTAwJSwgNTAlKSIgZD0iTTc3LjEyMSAxMDIuMjU0YTY2LjUgNjYuNSAwIDAwLS44MzcgMS41MjYiLz48cGF0aCBzdHJva2U9ImhzbCg4OSwgMTAwJSwgNTAlKSIgZD0iTTc3LjcwMiAxMDEuMjQ5YTY2LjUgNjYuNSAwIDAwLS44NjQgMS41MTEiLz48cGF0aCBzdHJva2U9ImhzbCg5MCwgMTAwJSwgNTAlKSIgZD0iTTc4LjMgMTAwLjI1NGE2Ni41IDY2LjUgMCAwMC0uODkgMS40OTYiLz48cGF0aCBzdHJva2U9ImhzbCg5MSwgMTAwJSwgNTAlKSIgZD0iTTc4LjkxNCA5OS4yN2E2Ni41IDY2LjUgMCAwMC0uOTE2IDEuNDgiLz48cGF0aCBzdHJva2U9ImhzbCg5MiwgMTAwJSwgNTAlKSIgZD0iTTc5LjU0NyA5OC4yOTZhNjYuNSA2Ni41IDAgMDAtLjk0MiAxLjQ2NCIvPjxwYXRoIHN0cm9rZT0iaHNsKDkzLCAxMDAlLCA1MCUpIiBkPSJNODAuMTk2IDk3LjMzNGE2Ni41IDY2LjUgMCAwMC0uOTY4IDEuNDQ4Ii8+PHBhdGggc3Ryb2tlPSJoc2woOTQsIDEwMCUsIDUwJSkiIGQ9Ik04MC44NjEgOTYuMzgzYTY2LjUgNjYuNSAwIDAwLS45OTIgMS40MyIvPjxwYXRoIHN0cm9rZT0iaHNsKDk1LCAxMDAlLCA1MCUpIiBkPSJNODEuNTQ0IDk1LjQ0NGE2Ni41IDY2LjUgMCAwMC0xLjAxOCAxLjQxMyIvPjxwYXRoIHN0cm9rZT0iaHNsKDk2LCAxMDAlLCA1MCUpIiBkPSJNODIuMjQyIDk0LjUxN2E2Ni41IDY2LjUgMCAwMC0xLjA0MiAxLjM5NSIvPjxwYXRoIHN0cm9rZT0iaHNsKDk3LCAxMDAlLCA1MCUpIiBkPSJNODIuOTU3IDkzLjYwM2E2Ni41IDY2LjUgMCAwMC0xLjA2NiAxLjM3NiIvPjxwYXRoIHN0cm9rZT0iaHNsKDk4LCAxMDAlLCA1MCUpIiBkPSJNODMuNjg3IDkyLjdhNjYuNSA2Ni41IDAgMDAtMS4wOSAxLjM1OSIvPjxwYXRoIHN0cm9rZT0iaHNsKDk5LCAxMDAlLCA1MCUpIiBkPSJNODQuNDMzIDkxLjgxMmE2Ni41IDY2LjUgMCAwMC0xLjExMyAxLjMzOCIvPjxwYXRoIHN0cm9rZT0iaHNsKDEwMCwgMTAwJSwgNTAlKSIgZD0iTTg1LjE5NCA5MC45MzZhNjYuNSA2Ni41IDAgMDAtMS4xMzYgMS4zMTkiLz48cGF0aCBzdHJva2U9ImhzbCgxMDEsIDEwMCUsIDUwJSkiIGQ9Ik04NS45NzEgOTAuMDczYTY2LjUgNjYuNSAwIDAwLTEuMTYgMS4zIi8+PHBhdGggc3Ryb2tlPSJoc2woMTAyLCAxMDAlLCA1MCUpIiBkPSJNODYuNzYzIDg5LjIyNGE2Ni41IDY2LjUgMCAwMC0xLjE4MiAxLjI3OSIvPjxwYXRoIHN0cm9rZT0iaHNsKDEwMywgMTAwJSwgNTAlKSIgZD0iTTg3LjU2OSA4OC4zOWE2Ni41IDY2LjUgMCAwMC0xLjIwNCAxLjI1NyIvPjxwYXRoIHN0cm9rZT0iaHNsKDEwNCwgMTAwJSwgNTAlKSIgZD0iTTg4LjM5IDg3LjU2OWE2Ni41IDY2LjUgMCAwMC0xLjIyNiAxLjIzNiIvPjxwYXRoIHN0cm9rZT0iaHNsKDEwNSwgMTAwJSwgNTAlKSIgZD0iTTg5LjIyNCA4Ni43NjNhNjYuNSA2Ni41IDAgMDAtMS4yNDcgMS4yMTQiLz48cGF0aCBzdHJva2U9ImhzbCgxMDYsIDEwMCUsIDUwJSkiIGQ9Ik05MC4wNzMgODUuOTcxYTY2LjUgNjYuNSAwIDAwLTEuMjY4IDEuMTkzIi8+PHBhdGggc3Ryb2tlPSJoc2woMTA3LCAxMDAlLCA1MCUpIiBkPSJNOTAuOTM2IDg1LjE5NGE2Ni41IDY2LjUgMCAwMC0xLjI4OSAxLjE3MSIvPjxwYXRoIHN0cm9rZT0iaHNsKDEwOCwgMTAwJSwgNTAlKSIgZD0iTTkxLjgxMiA4NC40MzNhNjYuNSA2Ni41IDAgMDAtMS4zMSAxLjE0OCIvPjxwYXRoIHN0cm9rZT0iaHNsKDEwOSwgMTAwJSwgNTAlKSIgZD0iTTkyLjcgODMuNjg3YTY2LjUgNjYuNSAwIDAwLTEuMzI4IDEuMTI1Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTEwLCAxMDAlLCA1MCUpIiBkPSJNOTMuNjAzIDgyLjk1N2E2Ni41IDY2LjUgMCAwMC0xLjM0OCAxLjEwMSIvPjxwYXRoIHN0cm9rZT0iaHNsKDExMSwgMTAwJSwgNTAlKSIgZD0iTTk0LjUxNyA4Mi4yNDJhNjYuNSA2Ni41IDAgMDAtMS4zNjcgMS4wNzgiLz48cGF0aCBzdHJva2U9ImhzbCgxMTIsIDEwMCUsIDUwJSkiIGQ9Ik05NS40NDQgODEuNTQ0YTY2LjUgNjYuNSAwIDAwLTEuMzg1IDEuMDUzIi8+PHBhdGggc3Ryb2tlPSJoc2woMTEzLCAxMDAlLCA1MCUpIiBkPSJNOTYuMzgzIDgwLjg2MWE2Ni41IDY2LjUgMCAwMC0xLjQwNCAxLjAzIi8+PHBhdGggc3Ryb2tlPSJoc2woMTE0LCAxMDAlLCA1MCUpIiBkPSJNOTcuMzM0IDgwLjE5NmE2Ni41IDY2LjUgMCAwMC0xLjQyMiAxLjAwNCIvPjxwYXRoIHN0cm9rZT0iaHNsKDExNSwgMTAwJSwgNTAlKSIgZD0iTTk4LjI5NiA3OS41NDdhNjYuNSA2Ni41IDAgMDAtMS40MzkuOTgiLz48cGF0aCBzdHJva2U9ImhzbCgxMTYsIDEwMCUsIDUwJSkiIGQ9Ik05OS4yNyA3OC45MTRhNjYuNSA2Ni41IDAgMDAtMS40NTYuOTU1Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTE3LCAxMDAlLCA1MCUpIiBkPSJNMTAwLjI1NCA3OC4zYTY2LjUgNjYuNSAwIDAwLTEuNDcyLjkyOCIvPjxwYXRoIHN0cm9rZT0iaHNsKDExOCwgMTAwJSwgNTAlKSIgZD0iTTEwMS4yNDkgNzcuNzAyYTY2LjUgNjYuNSAwIDAwLTEuNDg5LjkwMyIvPjxwYXRoIHN0cm9rZT0iaHNsKDExOSwgMTAwJSwgNTAlKSIgZD0iTTEwMi4yNTQgNzcuMTIxYTY2LjUgNjYuNSAwIDAwLTEuNTA0Ljg3NyIvPjxwYXRoIHN0cm9rZT0iaHNsKDEyMCwgMTAwJSwgNTAlKSIgZD0iTTEwMy4yNjkgNzYuNTU5YTY2LjUgNjYuNSAwIDAwLTEuNTE5Ljg1Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTIxLCAxMDAlLCA1MCUpIiBkPSJNMTA0LjI5NCA3Ni4wMTRhNjYuNSA2Ni41IDAgMDAtMS41MzQuODI0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTIyLCAxMDAlLCA1MCUpIiBkPSJNMTA1LjMyOCA3NS40ODdhNjYuNSA2Ni41IDAgMDAtMS41NDguNzk3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTIzLCAxMDAlLCA1MCUpIiBkPSJNMTA2LjM3MSA3NC45NzhhNjYuNSA2Ni41IDAgMDAtMS41NjEuNzciLz48cGF0aCBzdHJva2U9ImhzbCgxMjQsIDEwMCUsIDUwJSkiIGQ9Ik0xMDcuNDIzIDc0LjQ4OGE2Ni41IDY2LjUgMCAwMC0xLjU3NS43NDIiLz48cGF0aCBzdHJva2U9ImhzbCgxMjUsIDEwMCUsIDUwJSkiIGQ9Ik0xMDguNDgzIDc0LjAxNmE2Ni41IDY2LjUgMCAwMC0xLjU4Ny43MTUiLz48cGF0aCBzdHJva2U9ImhzbCgxMjYsIDEwMCUsIDUwJSkiIGQ9Ik0xMDkuNTUyIDczLjU2MmE2Ni41IDY2LjUgMCAwMC0xLjYuNjg3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTI3LCAxMDAlLCA1MCUpIiBkPSJNMTEwLjYyOCA3My4xMjdhNjYuNSA2Ni41IDAgMDAtMS42MTIuNjYiLz48cGF0aCBzdHJva2U9ImhzbCgxMjgsIDEwMCUsIDUwJSkiIGQ9Ik0xMTEuNzExIDcyLjcxMWE2Ni41IDY2LjUgMCAwMC0xLjYyMi42MzEiLz48cGF0aCBzdHJva2U9ImhzbCgxMjksIDEwMCUsIDUwJSkiIGQ9Ik0xMTIuODAyIDcyLjMxNGE2Ni41IDY2LjUgMCAwMC0xLjYzMy42MDMiLz48cGF0aCBzdHJva2U9ImhzbCgxMzAsIDEwMCUsIDUwJSkiIGQ9Ik0xMTMuOSA3MS45MzZhNjYuNSA2Ni41IDAgMDAtMS42NDQuNTc0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTMxLCAxMDAlLCA1MCUpIiBkPSJNMTE1LjAwMyA3MS41NzhhNjYuNSA2Ni41IDAgMDAtMS42NTMuNTQ1Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTMyLCAxMDAlLCA1MCUpIiBkPSJNMTE2LjExMyA3MS4yMzhhNjYuNSA2Ni41IDAgMDAtMS42NjMuNTE3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTMzLCAxMDAlLCA1MCUpIiBkPSJNMTE3LjIyOSA3MC45MTlhNjYuNSA2Ni41IDAgMDAtMS42NzIuNDg3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTM0LCAxMDAlLCA1MCUpIiBkPSJNMTE4LjM1IDcwLjYxOGE2Ni41IDY2LjUgMCAwMC0xLjY4LjQ1OCIvPjxwYXRoIHN0cm9rZT0iaHNsKDEzNSwgMTAwJSwgNTAlKSIgZD0iTTExOS40NzYgNzAuMzM3YTY2LjUgNjYuNSAwIDAwLTEuNjg3LjQyOSIvPjxwYXRoIHN0cm9rZT0iaHNsKDEzNiwgMTAwJSwgNTAlKSIgZD0iTTEyMC42MDcgNzAuMDc2YTY2LjUgNjYuNSAwIDAwLTEuNjk1LjQiLz48cGF0aCBzdHJva2U9ImhzbCgxMzcsIDEwMCUsIDUwJSkiIGQ9Ik0xMjEuNzQyIDY5LjgzNWE2Ni41IDY2LjUgMCAwMC0xLjcwMS4zNyIvPjxwYXRoIHN0cm9rZT0iaHNsKDEzOCwgMTAwJSwgNTAlKSIgZD0iTTEyMi44ODEgNjkuNjE0YTY2LjUgNjYuNSAwIDAwLTEuNzA3LjM0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTM5LCAxMDAlLCA1MCUpIiBkPSJNMTI0LjAyNCA2OS40MTJhNjYuNSA2Ni41IDAgMDAtMS43MTMuMzEiLz48cGF0aCBzdHJva2U9ImhzbCgxNDAsIDEwMCUsIDUwJSkiIGQ9Ik0xMjUuMTcgNjkuMjNhNjYuNSA2Ni41IDAgMDAtMS43MTguMjgiLz48cGF0aCBzdHJva2U9ImhzbCgxNDEsIDEwMCUsIDUwJSkiIGQ9Ik0xMjYuMzIgNjkuMDY5YTY2LjUgNjYuNSAwIDAwLTEuNzIzLjI1Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTQyLCAxMDAlLCA1MCUpIiBkPSJNMTI3LjQ3MiA2OC45MjdhNjYuNSA2Ni41IDAgMDAtMS43MjcuMjIiLz48cGF0aCBzdHJva2U9ImhzbCgxNDMsIDEwMCUsIDUwJSkiIGQ9Ik0xMjguNjI2IDY4LjgwNmE2Ni41IDY2LjUgMCAwMC0xLjczLjE5Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTQ0LCAxMDAlLCA1MCUpIiBkPSJNMTI5Ljc4MiA2OC43MDVhNjYuNSA2Ni41IDAgMDAtMS43MzMuMTYiLz48cGF0aCBzdHJva2U9ImhzbCgxNDUsIDEwMCUsIDUwJSkiIGQ9Ik0xMzAuOTQgNjguNjI0YTY2LjUgNjYuNSAwIDAwLTEuNzM2LjEzIi8+PHBhdGggc3Ryb2tlPSJoc2woMTQ2LCAxMDAlLCA1MCUpIiBkPSJNMTMyLjEgNjguNTYzYTY2LjUgNjYuNSAwIDAwLTEuNzM5LjA5OSIvPjxwYXRoIHN0cm9rZT0iaHNsKDE0NywgMTAwJSwgNTAlKSIgZD0iTTEzMy4yNiA2OC41MjNhNjYuNSA2Ni41IDAgMDAtMS43NC4wNjgiLz48cGF0aCBzdHJva2U9ImhzbCgxNDgsIDEwMCUsIDUwJSkiIGQ9Ik0xMzQuNDIgNjguNTAzYTY2LjUgNjYuNSAwIDAwLTEuNzQuMDM4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTQ5LCAxMDAlLCA1MCUpIiBkPSJNMTM1LjU4IDY4LjUwM2E2Ni41IDY2LjUgMCAwMC0xLjc0LjAwNyIvPjxwYXRoIHN0cm9rZT0iaHNsKDE1MCwgMTAwJSwgNTAlKSIgZD0iTTEzNi43NCA2OC41MjNBNjYuNSA2Ni41IDAgMDAxMzUgNjguNSIvPjxwYXRoIHN0cm9rZT0iaHNsKDE1MSwgMTAwJSwgNTAlKSIgZD0iTTEzNy45IDY4LjU2M2E2Ni41IDY2LjUgMCAwMC0xLjc0LS4wNTMiLz48cGF0aCBzdHJva2U9ImhzbCgxNTIsIDEwMCUsIDUwJSkiIGQ9Ik0xMzkuMDYgNjguNjI0YTY2LjUgNjYuNSAwIDAwLTEuNzQtLjA4MyIvPjxwYXRoIHN0cm9rZT0iaHNsKDE1MywgMTAwJSwgNTAlKSIgZD0iTTE0MC4yMTggNjguNzA1YTY2LjUgNjYuNSAwIDAwLTEuNzM4LS4xMTQiLz48cGF0aCBzdHJva2U9ImhzbCgxNTQsIDEwMCUsIDUwJSkiIGQ9Ik0xNDEuMzc0IDY4LjgwNmE2Ni41IDY2LjUgMCAwMC0xLjczNS0uMTQ0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTU1LCAxMDAlLCA1MCUpIiBkPSJNMTQyLjUyOCA2OC45MjdhNjYuNSA2Ni41IDAgMDAtMS43MzItLjE3NCIvPjxwYXRoIHN0cm9rZT0iaHNsKDE1NiwgMTAwJSwgNTAlKSIgZD0iTTE0My42OCA2OS4wNjlhNjYuNSA2Ni41IDAgMDAtMS43MjktLjIwNSIvPjxwYXRoIHN0cm9rZT0iaHNsKDE1NywgMTAwJSwgNTAlKSIgZD0iTTE0NC44MyA2OS4yM2E2Ni41IDY2LjUgMCAwMC0xLjcyNi0uMjM0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTU4LCAxMDAlLCA1MCUpIiBkPSJNMTQ1Ljk3NiA2OS40MTJhNjYuNSA2Ni41IDAgMDAtMS43MjEtLjI2NSIvPjxwYXRoIHN0cm9rZT0iaHNsKDE1OSwgMTAwJSwgNTAlKSIgZD0iTTE0Ny4xMTkgNjkuNjE0YTY2LjUgNjYuNSAwIDAwLTEuNzE2LS4yOTUiLz48cGF0aCBzdHJva2U9ImhzbCgxNjAsIDEwMCUsIDUwJSkiIGQ9Ik0xNDguMjU4IDY5LjgzNWE2Ni41IDY2LjUgMCAwMC0xLjcxLS4zMjUiLz48cGF0aCBzdHJva2U9ImhzbCgxNjEsIDEwMCUsIDUwJSkiIGQ9Ik0xNDkuMzkzIDcwLjA3NmE2Ni41IDY2LjUgMCAwMC0xLjcwNC0uMzU0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTYyLCAxMDAlLCA1MCUpIiBkPSJNMTUwLjUyNCA3MC4zMzdhNjYuNSA2Ni41IDAgMDAtMS42OTgtLjM4NCIvPjxwYXRoIHN0cm9rZT0iaHNsKDE2MywgMTAwJSwgNTAlKSIgZD0iTTE1MS42NSA3MC42MThhNjYuNSA2Ni41IDAgMDAtMS42OS0uNDE0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTY0LCAxMDAlLCA1MCUpIiBkPSJNMTUyLjc3MSA3MC45MTlhNjYuNSA2Ni41IDAgMDAtMS42ODMtLjQ0NCIvPjxwYXRoIHN0cm9rZT0iaHNsKDE2NSwgMTAwJSwgNTAlKSIgZD0iTTE1My44ODcgNzEuMjM4YTY2LjUgNjYuNSAwIDAwLTEuNjc2LS40NzIiLz48cGF0aCBzdHJva2U9ImhzbCgxNjYsIDEwMCUsIDUwJSkiIGQ9Ik0xNTQuOTk3IDcxLjU3OGE2Ni41IDY2LjUgMCAwMC0xLjY2Ny0uNTAyIi8+PHBhdGggc3Ryb2tlPSJoc2woMTY3LCAxMDAlLCA1MCUpIiBkPSJNMTU2LjEgNzEuOTM2YTY2LjUgNjYuNSAwIDAwLTEuNjU3LS41MyIvPjxwYXRoIHN0cm9rZT0iaHNsKDE2OCwgMTAwJSwgNTAlKSIgZD0iTTE1Ny4xOTggNzIuMzE0YTY2LjUgNjYuNSAwIDAwLTEuNjQ4LS41NiIvPjxwYXRoIHN0cm9rZT0iaHNsKDE2OSwgMTAwJSwgNTAlKSIgZD0iTTE1OC4yODkgNzIuNzExYTY2LjUgNjYuNSAwIDAwLTEuNjM5LS41ODgiLz48cGF0aCBzdHJva2U9ImhzbCgxNzAsIDEwMCUsIDUwJSkiIGQ9Ik0xNTkuMzcyIDczLjEyN2E2Ni41IDY2LjUgMCAwMC0xLjYyOC0uNjE3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTcxLCAxMDAlLCA1MCUpIiBkPSJNMTYwLjQ0OCA3My41NjJhNjYuNSA2Ni41IDAgMDAtMS42MTctLjY0NSIvPjxwYXRoIHN0cm9rZT0iaHNsKDE3MiwgMTAwJSwgNTAlKSIgZD0iTTE2MS41MTcgNzQuMDE2YTY2LjUgNjYuNSAwIDAwLTEuNjA2LS42NzQiLz48cGF0aCBzdHJva2U9ImhzbCgxNzMsIDEwMCUsIDUwJSkiIGQ9Ik0xNjIuNTc3IDc0LjQ4OGE2Ni41IDY2LjUgMCAwMC0xLjU5My0uNzAyIi8+PHBhdGggc3Ryb2tlPSJoc2woMTc0LCAxMDAlLCA1MCUpIiBkPSJNMTYzLjYyOSA3NC45NzhhNjYuNSA2Ni41IDAgMDAtMS41ODEtLjcyOSIvPjxwYXRoIHN0cm9rZT0iaHNsKDE3NSwgMTAwJSwgNTAlKSIgZD0iTTE2NC42NzIgNzUuNDg3YTY2LjUgNjYuNSAwIDAwLTEuNTY4LS43NTYiLz48cGF0aCBzdHJva2U9ImhzbCgxNzYsIDEwMCUsIDUwJSkiIGQ9Ik0xNjUuNzA2IDc2LjAxNGE2Ni41IDY2LjUgMCAwMC0xLjU1NC0uNzg0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTc3LCAxMDAlLCA1MCUpIiBkPSJNMTY2LjczMSA3Ni41NTlhNjYuNSA2Ni41IDAgMDAtMS41NC0uODEiLz48cGF0aCBzdHJva2U9ImhzbCgxNzgsIDEwMCUsIDUwJSkiIGQ9Ik0xNjcuNzQ2IDc3LjEyMWE2Ni41IDY2LjUgMCAwMC0xLjUyNi0uODM3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTc5LCAxMDAlLCA1MCUpIiBkPSJNMTY4Ljc1MSA3Ny43MDJhNjYuNSA2Ni41IDAgMDAtMS41MTEtLjg2NCIvPjxwYXRoIHN0cm9rZT0iaHNsKDE4MCwgMTAwJSwgNTAlKSIgZD0iTTE2OS43NDYgNzguM2E2Ni41IDY2LjUgMCAwMC0xLjQ5Ni0uODkiLz48cGF0aCBzdHJva2U9ImhzbCgxODEsIDEwMCUsIDUwJSkiIGQ9Ik0xNzAuNzMgNzguOTE0YTY2LjUgNjYuNSAwIDAwLTEuNDgtLjkxNiIvPjxwYXRoIHN0cm9rZT0iaHNsKDE4MiwgMTAwJSwgNTAlKSIgZD0iTTE3MS43MDQgNzkuNTQ3YTY2LjUgNjYuNSAwIDAwLTEuNDY0LS45NDIiLz48cGF0aCBzdHJva2U9ImhzbCgxODMsIDEwMCUsIDUwJSkiIGQ9Ik0xNzIuNjY2IDgwLjE5NmE2Ni41IDY2LjUgMCAwMC0xLjQ0OC0uOTY4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTg0LCAxMDAlLCA1MCUpIiBkPSJNMTczLjYxNyA4MC44NjFhNjYuNSA2Ni41IDAgMDAtMS40My0uOTkyIi8+PHBhdGggc3Ryb2tlPSJoc2woMTg1LCAxMDAlLCA1MCUpIiBkPSJNMTc0LjU1NiA4MS41NDRhNjYuNSA2Ni41IDAgMDAtMS40MTMtMS4wMTgiLz48cGF0aCBzdHJva2U9ImhzbCgxODYsIDEwMCUsIDUwJSkiIGQ9Ik0xNzUuNDgzIDgyLjI0MmE2Ni41IDY2LjUgMCAwMC0xLjM5NS0xLjA0MiIvPjxwYXRoIHN0cm9rZT0iaHNsKDE4NywgMTAwJSwgNTAlKSIgZD0iTTE3Ni4zOTcgODIuOTU3YTY2LjUgNjYuNSAwIDAwLTEuMzc2LTEuMDY2Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTg4LCAxMDAlLCA1MCUpIiBkPSJNMTc3LjMgODMuNjg3YTY2LjUgNjYuNSAwIDAwLTEuMzU5LTEuMDkiLz48cGF0aCBzdHJva2U9ImhzbCgxODksIDEwMCUsIDUwJSkiIGQ9Ik0xNzguMTg4IDg0LjQzM2E2Ni41IDY2LjUgMCAwMC0xLjMzOC0xLjExMyIvPjxwYXRoIHN0cm9rZT0iaHNsKDE5MCwgMTAwJSwgNTAlKSIgZD0iTTE3OS4wNjQgODUuMTk0YTY2LjUgNjYuNSAwIDAwLTEuMzE5LTEuMTM2Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTkxLCAxMDAlLCA1MCUpIiBkPSJNMTc5LjkyNyA4NS45NzFhNjYuNSA2Ni41IDAgMDAtMS4zLTEuMTYiLz48cGF0aCBzdHJva2U9ImhzbCgxOTIsIDEwMCUsIDUwJSkiIGQ9Ik0xODAuNzc2IDg2Ljc2M2E2Ni41IDY2LjUgMCAwMC0xLjI3OS0xLjE4MiIvPjxwYXRoIHN0cm9rZT0iaHNsKDE5MywgMTAwJSwgNTAlKSIgZD0iTTE4MS42MSA4Ny41NjlhNjYuNSA2Ni41IDAgMDAtMS4yNTctMS4yMDQiLz48cGF0aCBzdHJva2U9ImhzbCgxOTQsIDEwMCUsIDUwJSkiIGQ9Ik0xODIuNDMxIDg4LjM5YTY2LjUgNjYuNSAwIDAwLTEuMjM2LTEuMjI2Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTk1LCAxMDAlLCA1MCUpIiBkPSJNMTgzLjIzNyA4OS4yMjRhNjYuNSA2Ni41IDAgMDAtMS4yMTQtMS4yNDciLz48cGF0aCBzdHJva2U9ImhzbCgxOTYsIDEwMCUsIDUwJSkiIGQ9Ik0xODQuMDI5IDkwLjA3M2E2Ni41IDY2LjUgMCAwMC0xLjE5My0xLjI2OCIvPjxwYXRoIHN0cm9rZT0iaHNsKDE5NywgMTAwJSwgNTAlKSIgZD0iTTE4NC44MDYgOTAuOTM2YTY2LjUgNjYuNSAwIDAwLTEuMTcxLTEuMjg5Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTk4LCAxMDAlLCA1MCUpIiBkPSJNMTg1LjU2NyA5MS44MTJhNjYuNSA2Ni41IDAgMDAtMS4xNDgtMS4zMSIvPjxwYXRoIHN0cm9rZT0iaHNsKDE5OSwgMTAwJSwgNTAlKSIgZD0iTTE4Ni4zMTMgOTIuN2E2Ni41IDY2LjUgMCAwMC0xLjEyNS0xLjMyOCIvPjxwYXRoIHN0cm9rZT0iaHNsKDIwMCwgMTAwJSwgNTAlKSIgZD0iTTE4Ny4wNDMgOTMuNjAzYTY2LjUgNjYuNSAwIDAwLTEuMTAxLTEuMzQ4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjAxLCAxMDAlLCA1MCUpIiBkPSJNMTg3Ljc1OCA5NC41MTdhNjYuNSA2Ni41IDAgMDAtMS4wNzgtMS4zNjciLz48cGF0aCBzdHJva2U9ImhzbCgyMDIsIDEwMCUsIDUwJSkiIGQ9Ik0xODguNDU2IDk1LjQ0NGE2Ni41IDY2LjUgMCAwMC0xLjA1My0xLjM4NSIvPjxwYXRoIHN0cm9rZT0iaHNsKDIwMywgMTAwJSwgNTAlKSIgZD0iTTE4OS4xMzkgOTYuMzgzYTY2LjUgNjYuNSAwIDAwLTEuMDMtMS40MDQiLz48cGF0aCBzdHJva2U9ImhzbCgyMDQsIDEwMCUsIDUwJSkiIGQ9Ik0xODkuODA0IDk3LjMzNGE2Ni41IDY2LjUgMCAwMC0xLjAwNC0xLjQyMiIvPjxwYXRoIHN0cm9rZT0iaHNsKDIwNSwgMTAwJSwgNTAlKSIgZD0iTTE5MC40NTMgOTguMjk2YTY2LjUgNjYuNSAwIDAwLS45OC0xLjQzOSIvPjxwYXRoIHN0cm9rZT0iaHNsKDIwNiwgMTAwJSwgNTAlKSIgZD0iTTE5MS4wODYgOTkuMjdhNjYuNSA2Ni41IDAgMDAtLjk1NS0xLjQ1NiIvPjxwYXRoIHN0cm9rZT0iaHNsKDIwNywgMTAwJSwgNTAlKSIgZD0iTTE5MS43IDEwMC4yNTRhNjYuNSA2Ni41IDAgMDAtLjkyOC0xLjQ3MiIvPjxwYXRoIHN0cm9rZT0iaHNsKDIwOCwgMTAwJSwgNTAlKSIgZD0iTTE5Mi4yOTggMTAxLjI0OWE2Ni41IDY2LjUgMCAwMC0uOTAzLTEuNDg5Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjA5LCAxMDAlLCA1MCUpIiBkPSJNMTkyLjg3OSAxMDIuMjU0YTY2LjUgNjYuNSAwIDAwLS44NzctMS41MDQiLz48cGF0aCBzdHJva2U9ImhzbCgyMTAsIDEwMCUsIDUwJSkiIGQ9Ik0xOTMuNDQxIDEwMy4yNjlhNjYuNSA2Ni41IDAgMDAtLjg1LTEuNTE5Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjExLCAxMDAlLCA1MCUpIiBkPSJNMTkzLjk4NiAxMDQuMjk0YTY2LjUgNjYuNSAwIDAwLS44MjQtMS41MzQiLz48cGF0aCBzdHJva2U9ImhzbCgyMTIsIDEwMCUsIDUwJSkiIGQ9Ik0xOTQuNTEzIDEwNS4zMjhhNjYuNSA2Ni41IDAgMDAtLjc5Ny0xLjU0OCIvPjxwYXRoIHN0cm9rZT0iaHNsKDIxMywgMTAwJSwgNTAlKSIgZD0iTTE5NS4wMjIgMTA2LjM3MWE2Ni41IDY2LjUgMCAwMC0uNzctMS41NjEiLz48cGF0aCBzdHJva2U9ImhzbCgyMTQsIDEwMCUsIDUwJSkiIGQ9Ik0xOTUuNTEyIDEwNy40MjNhNjYuNSA2Ni41IDAgMDAtLjc0Mi0xLjU3NSIvPjxwYXRoIHN0cm9rZT0iaHNsKDIxNSwgMTAwJSwgNTAlKSIgZD0iTTE5NS45ODQgMTA4LjQ4M2E2Ni41IDY2LjUgMCAwMC0uNzE1LTEuNTg3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjE2LCAxMDAlLCA1MCUpIiBkPSJNMTk2LjQzOCAxMDkuNTUyYTY2LjUgNjYuNSAwIDAwLS42ODctMS42Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjE3LCAxMDAlLCA1MCUpIiBkPSJNMTk2Ljg3MyAxMTAuNjI4YTY2LjUgNjYuNSAwIDAwLS42Ni0xLjYxMiIvPjxwYXRoIHN0cm9rZT0iaHNsKDIxOCwgMTAwJSwgNTAlKSIgZD0iTTE5Ny4yODkgMTExLjcxMWE2Ni41IDY2LjUgMCAwMC0uNjMxLTEuNjIyIi8+PHBhdGggc3Ryb2tlPSJoc2woMjE5LCAxMDAlLCA1MCUpIiBkPSJNMTk3LjY4NiAxMTIuODAyYTY2LjUgNjYuNSAwIDAwLS42MDMtMS42MzMiLz48cGF0aCBzdHJva2U9ImhzbCgyMjAsIDEwMCUsIDUwJSkiIGQ9Ik0xOTguMDY0IDExMy45YTY2LjUgNjYuNSAwIDAwLS41NzQtMS42NDQiLz48cGF0aCBzdHJva2U9ImhzbCgyMjEsIDEwMCUsIDUwJSkiIGQ9Ik0xOTguNDIyIDExNS4wMDNhNjYuNSA2Ni41IDAgMDAtLjU0NS0xLjY1MyIvPjxwYXRoIHN0cm9rZT0iaHNsKDIyMiwgMTAwJSwgNTAlKSIgZD0iTTE5OC43NjIgMTE2LjExM2E2Ni41IDY2LjUgMCAwMC0uNTE3LTEuNjYzIi8+PHBhdGggc3Ryb2tlPSJoc2woMjIzLCAxMDAlLCA1MCUpIiBkPSJNMTk5LjA4MSAxMTcuMjI5YTY2LjUgNjYuNSAwIDAwLS40ODctMS42NzIiLz48cGF0aCBzdHJva2U9ImhzbCgyMjQsIDEwMCUsIDUwJSkiIGQ9Ik0xOTkuMzgyIDExOC4zNWE2Ni41IDY2LjUgMCAwMC0uNDU4LTEuNjgiLz48cGF0aCBzdHJva2U9ImhzbCgyMjUsIDEwMCUsIDUwJSkiIGQ9Ik0xOTkuNjYzIDExOS40NzZhNjYuNSA2Ni41IDAgMDAtLjQyOS0xLjY4NyIvPjxwYXRoIHN0cm9rZT0iaHNsKDIyNiwgMTAwJSwgNTAlKSIgZD0iTTE5OS45MjQgMTIwLjYwN2E2Ni41IDY2LjUgMCAwMC0uNC0xLjY5NSIvPjxwYXRoIHN0cm9rZT0iaHNsKDIyNywgMTAwJSwgNTAlKSIgZD0iTTIwMC4xNjUgMTIxLjc0MmE2Ni41IDY2LjUgMCAwMC0uMzctMS43MDEiLz48cGF0aCBzdHJva2U9ImhzbCgyMjgsIDEwMCUsIDUwJSkiIGQ9Ik0yMDAuMzg2IDEyMi44ODFhNjYuNSA2Ni41IDAgMDAtLjM0LTEuNzA3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjI5LCAxMDAlLCA1MCUpIiBkPSJNMjAwLjU4OCAxMjQuMDI0YTY2LjUgNjYuNSAwIDAwLS4zMS0xLjcxMyIvPjxwYXRoIHN0cm9rZT0iaHNsKDIzMCwgMTAwJSwgNTAlKSIgZD0iTTIwMC43NyAxMjUuMTdhNjYuNSA2Ni41IDAgMDAtLjI4LTEuNzE4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjMxLCAxMDAlLCA1MCUpIiBkPSJNMjAwLjkzMSAxMjYuMzJhNjYuNSA2Ni41IDAgMDAtLjI1LTEuNzIzIi8+PHBhdGggc3Ryb2tlPSJoc2woMjMyLCAxMDAlLCA1MCUpIiBkPSJNMjAxLjA3MyAxMjcuNDcyYTY2LjUgNjYuNSAwIDAwLS4yMi0xLjcyNyIvPjxwYXRoIHN0cm9rZT0iaHNsKDIzMywgMTAwJSwgNTAlKSIgZD0iTTIwMS4xOTQgMTI4LjYyNmE2Ni41IDY2LjUgMCAwMC0uMTktMS43MyIvPjxwYXRoIHN0cm9rZT0iaHNsKDIzNCwgMTAwJSwgNTAlKSIgZD0iTTIwMS4yOTUgMTI5Ljc4MmE2Ni41IDY2LjUgMCAwMC0uMTYtMS43MzMiLz48cGF0aCBzdHJva2U9ImhzbCgyMzUsIDEwMCUsIDUwJSkiIGQ9Ik0yMDEuMzc2IDEzMC45NGE2Ni41IDY2LjUgMCAwMC0uMTMtMS43MzYiLz48cGF0aCBzdHJva2U9ImhzbCgyMzYsIDEwMCUsIDUwJSkiIGQ9Ik0yMDEuNDM3IDEzMi4xYTY2LjUgNjYuNSAwIDAwLS4wOTktMS43MzkiLz48cGF0aCBzdHJva2U9ImhzbCgyMzcsIDEwMCUsIDUwJSkiIGQ9Ik0yMDEuNDc3IDEzMy4yNmE2Ni41IDY2LjUgMCAwMC0uMDY4LTEuNzQiLz48cGF0aCBzdHJva2U9ImhzbCgyMzgsIDEwMCUsIDUwJSkiIGQ9Ik0yMDEuNDk3IDEzNC40MmE2Ni41IDY2LjUgMCAwMC0uMDM4LTEuNzQiLz48cGF0aCBzdHJva2U9ImhzbCgyMzksIDEwMCUsIDUwJSkiIGQ9Ik0yMDEuNDk3IDEzNS41OGE2Ni41IDY2LjUgMCAwMC0uMDA3LTEuNzQiLz48L2c+PGNpcmNsZSBjeD0iMTM1IiBjeT0iMTM1IiByPSIxMzMiIGZpbGw9InVybCgjYSkiIGNsYXNzPSJJcm9XaGVlbFNhdHVyYXRpb24iLz48Y2lyY2xlIGN4PSIxMzUiIGN5PSIxMzUiIHI9IjEzMyIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjZmZmIiBzdHJva2Utd2lkdGg9IjIiIGNsYXNzPSJJcm9XaGVlbEJvcmRlciIvPjwvc3ZnPg==';
-
- dialog.querySelector('.satus-scrollbar__content').appendChild(close);
- dialog.querySelector('.satus-scrollbar__content').appendChild(component_canvas);
-
- document.body.appendChild(dialog);
- });
-
- component.appendChild(component_value);
-
- return component;
-};
-
-
-/*--------------------------------------------------------------
-# DIALOG
---------------------------------------------------------------*/
-
-satus.components.dialog = function(element) {
- var component = document.createElement('div'),
- component_scrim = document.createElement('div'),
- component_surface = document.createElement('div'),
- component_scrollbar = satus.components.scrollbar(component_surface),
- options = element.options || {};
-
- component_scrim.className = 'satus-dialog__scrim';
- component_surface.className = 'satus-dialog__surface';
-
- for (var key in element) {
- satus.render(element[key], component_scrollbar);
- }
-
- function close() {
- window.removeEventListener('keydown', keydown);
-
- component.classList.add('satus-dialog--closing');
-
- if (typeof element.onclose === 'function') {
- element.onclose();
- }
-
- setTimeout(function() {
- component.remove();
- }, satus.getAnimationDuration(component_surface));
- }
-
- function keydown(event) {
- if (event.keyCode === 27) {
- event.preventDefault();
- close();
- }
-
- if (event.keyCode === 9) {
- var elements = component_surface.querySelectorAll('button, input'),
- focused = false;
-
- event.preventDefault();
-
- for (var i = 0, l = elements.length; i < l; i++) {
- if (elements[i] === document.activeElement && elements[i + 1]) {
- elements[i + 1].focus();
-
- focused = true;
-
- i = l;
- }
- }
-
- if (focused === false) {
- elements[0].focus();
- }
- }
- }
-
- component_scrim.addEventListener('click', close);
- window.addEventListener('keydown', keydown);
-
- component.appendChild(component_scrim);
- component.appendChild(component_surface);
-
- // OPTIONS
-
- if (options.left) {
- component_surface.style.left = options.left + 'px';
- }
-
- if (options.top) {
- component_surface.style.top = options.top + 'px';
- }
-
- if (options.width) {
- component_surface.style.width = options.width + 'px';
- }
-
- if (options.height) {
- component_surface.style.height = options.height + 'px';
- }
-
- // END OPTIONS
-
- return component;
-};
-
-
-/*--------------------------------------------------------------
-# FOLDER
---------------------------------------------------------------*/
-
-satus.components.folder = function(object) {
- var component = document.createElement('button');
-
- component.object = object;
-
- component.classList.add('satus-button');
-
- component.addEventListener('click', function() {
- var parent = document.querySelector(component.object.parent) || document.querySelector('.satus-main');
-
- if (!component.object.parent || !parent.classList.contains('satus-main')) {
- while (!parent.classList.contains('satus-main')) {
- parent = parent.parentNode;
- }
- }
-
- parent.open(this.object, object.onopen);
- });
-
- if (satus.isset(object.label)) {
- var component_label = document.createElement('span');
-
- component_label.className = 'satus-folder__label';
- component_label.innerText = satus.locale.getMessage(object.label);
-
- component.appendChild(component_label);
- }
-
- return component;
-};
-
-
-/*--------------------------------------------------------------
-# HEADER
---------------------------------------------------------------*/
-
-satus.components.header = function(object) {
- var component = document.createElement('header');
-
- for (var key in object) {
- satus.render(object[key], component);
- }
-
- return component;
-};
-
-
-/*--------------------------------------------------------------
-# LIST
---------------------------------------------------------------*/
-
-satus.components.list = function(object) {
- var ul = document.createElement('ul');
-
- if (object.compact === true) {
- ul.classList.add('satus-list');
- ul.classList.add('satus-list--compact');
- }
-
- for (var key in object) {
- if (satus.isset(object[key].type)) {
- var li = document.createElement('li');
-
- if (object.sortable === true) {
- function mousedown(event) {
- if (event.button === 0) {
- var self = this,
- dragging = false,
- clone = false,
- current_index = Array.from(self.parentNode.children).indexOf(self),
- bounding = this.getBoundingClientRect(),
- first_x = event.clientX,
- first_y = event.clientY,
- offset_x = event.clientX - bounding.left,
- offset_y = event.clientY - bounding.top;
-
- function mousemove(event) {
- if (Math.abs(first_y - event.clientY) <= 5) {
- return false;
- }
-
- if (dragging === false) {
- clone = self.cloneNode(true);
-
- satus.cloneNodeStyles(self, clone);
- clone.style.position = 'fixed';
- clone.style.pointerEvents = 'none';
- clone.style.backgroundColor = '#fff';
- self.style.visibility = 'hidden';
-
- document.body.appendChild(clone);
-
- dragging = true;
- }
-
- var x = bounding.left, //event.clientX - offset_x
- y = event.clientY - offset_y,
- index = Math.floor(y / self.offsetHeight) - 1;
-
- clone.style.left = x + 'px';
- clone.style.top = y + 'px';
-
- //return false;
-
- if (index !== current_index && self.parentNode.children[index]) {
- var new_clone = self.cloneNode(true);
-
- if (index > 0) {
- self.parentNode.insertBefore(new_clone, self.parentNode.children[index].nextSibling);
- } else {
- self.parentNode.insertBefore(new_clone, self.parentNode.children[index]);
- }
-
- self.remove();
-
- self = new_clone;
-
- self.addEventListener('mousedown', mousedown);
-
- if (typeof object.onchange === 'function') {
- object.onchange(current_index, index);
- }
-
- current_index = index;
- }
- }
-
- function mouseup(event) {
- if (clone) {
- clone.remove();
- self.style.visibility = '';
- }
-
- window.removeEventListener('mousemove', mousemove);
- window.removeEventListener('mouseup', mouseup);
- }
-
- window.addEventListener('mousemove', mousemove);
- window.addEventListener('mouseup', mouseup);
- }
- }
-
- li.addEventListener('mousedown', mousedown);
- }
-
- satus.render(object[key], li);
-
- ul.appendChild(li);
- }
- }
-
- return ul;
-};
-
-
-/*--------------------------------------------------------------
-# MAIN
---------------------------------------------------------------*/
-
-satus.components.main = function(object) {
- var component = document.createElement('main'),
- component_container = document.createElement('div'),
- component_scrollbar = satus.components.scrollbar(component_container, object.scrollbar);
-
- component.history = [object];
-
- component.back = function() {
- var container = this.querySelector('.satus-main__container'),
- component_container = document.createElement('div'),
- component_scrollbar = satus.components.scrollbar(component_container);
-
- container.classList.add('satus-main__container--fade-out-right');
- component_container.className = 'satus-main__container satus-main__container--fade-in-left';
-
- this.history.pop();
-
- for (var key in this.history[this.history.length - 1]) {
- satus.render(this.history[this.history.length - 1][key], component_scrollbar);
- }
-
- this.appendChild(component_container);
-
- if (this.historyListener) {
- this.historyListener(component_container);
- }
-
- if (this.history[this.history.length - 1].onopen) {
- component_scrollbar.onopen = this.history[this.history.length - 1].onopen;
-
- component_scrollbar.onopen();
- }
-
- setTimeout(function() {
- container.remove();
- }, satus.getAnimationDuration(container));
- };
-
- component.open = function(element, callback, animated) {
- var container = this.querySelector('.satus-main__container'),
- component_container = document.createElement('div'),
- component_scrollbar = satus.components.scrollbar(component_container);
-
- if (animated !== false) {
- container.classList.add('satus-main__container--fade-out-left');
- component_container.className = 'satus-main__container satus-main__container--fade-in-right';
- } else {
- component_container.className = 'satus-main__container';
- }
-
- this.history.push(element);
-
- for (var key in this.history[this.history.length - 1]) {
- satus.render(this.history[this.history.length - 1][key], component_scrollbar);
- }
-
- this.appendChild(component_container);
-
- if (this.historyListener) {
- this.historyListener(component_container);
- }
-
- if (callback) {
- component_scrollbar.onopen = callback;
-
- component_scrollbar.onopen();
- }
-
- setTimeout(function() {
- container.remove();
- }, satus.getAnimationDuration(container));
- };
-
- component_container.className = 'satus-main__container';
-
- if (object.on && object.on.change) {
- component.historyListener = object.on.change;
- }
-
- if (component.historyListener) {
- component.historyListener(component_container);
- }
-
- for (var key in object) {
- satus.render(object[key], component_scrollbar);
- }
-
- component.appendChild(component_container);
-
- return component;
-};
-
-
-/*--------------------------------------------------------------
-# SCROLL BAR
---------------------------------------------------------------*/
-
-satus.components.scrollbar = function(parent, enabled) {
- if (enabled === false) {
- return parent;
- }
-
- var component = document.createElement('div'),
- component_wrapper = document.createElement('div'),
- component_content = document.createElement('div'),
- component_thumb = document.createElement('div');
-
- component.className = 'satus-scrollbar';
- component_wrapper.className = 'satus-scrollbar__wrapper';
- component_content.className = 'satus-scrollbar__content';
- component_thumb.className = 'satus-scrollbar__thumb';
-
-
- // RESIZE
-
- function resize() {
- component_content.style.width = component.offsetWidth + 'px';
- component_wrapper.style.height = component.offsetHeight + 'px';
-
- if (component_wrapper.scrollHeight > component_wrapper.offsetHeight) {
- component_thumb.style.height = component_wrapper.offsetHeight / component_wrapper.scrollHeight * component_wrapper.offsetHeight + 'px';
- }
- }
-
- window.addEventListener('resize', resize);
-
- new MutationObserver(resize).observe(component_content, {
- subtree: true,
- childList: true
- });
-
-
- // HOVER
-
- component.timeout = false;
-
- function active() {
- if (component.timeout) {
- clearTimeout(component.timeout);
-
- component.timeout = false;
- }
-
- component.classList.add('active');
-
- component.timeout = setTimeout(function() {
- component.classList.remove('active');
-
- component.timeout = false;
- }, 1000);
- }
-
- component.addEventListener('mousemove', active);
-
-
- // SCROLL
-
- component_wrapper.addEventListener('scroll', function(event) {
- active();
-
- component_thumb.style.top = Math.floor(component_wrapper.scrollTop * (component_wrapper.offsetHeight - component_thumb.offsetHeight) / (component_wrapper.scrollHeight - component_wrapper.offsetHeight)) + 'px';
- });
-
- component_thumb.addEventListener('mousedown', function(event) {
- var offsetY = event.layerY;
-
- if (event.button !== 0) {
- return false;
- }
-
- function mousemove(event) {
- var offset = 100 / ((component.offsetHeight - component_thumb.offsetHeight) / (event.clientY - offsetY - component.getBoundingClientRect().top)),
- scroll = component_wrapper.scrollHeight - component.offsetHeight;
-
- component_wrapper.scrollTop = scroll / 100 * offset;
-
- event.preventDefault();
-
- return false;
- }
-
- function mouseup() {
- window.removeEventListener('mouseup', mouseup);
- window.removeEventListener('mousemove', mousemove);
- }
-
- window.addEventListener('mouseup', mouseup);
- window.addEventListener('mousemove', mousemove);
- });
-
- component_wrapper.appendChild(component_content);
- component.appendChild(component_wrapper);
- component.appendChild(component_thumb);
-
- parent.appendChild(component);
-
- return component_content;
-};
-
-
-/*--------------------------------------------------------------
-# SECTION
---------------------------------------------------------------*/
-
-satus.components.section = function(element) {
- var component = document.createElement('section');
-
- for (var key in element) {
- satus.render(element[key], component);
- }
-
- return component;
-};
-
-
-/*--------------------------------------------------------------
-# SELECT
---------------------------------------------------------------*/
-
-satus.components.select = function(element) {
- var component = document.createElement('button'),
- component_label = document.createElement('span'),
- component_value = document.createElement('span'),
- label = satus.locale.getMessage(element.label);
-
- component.classList.add('satus-button');
-
- component_label.className = 'satus-select__label';
- component_label.innerText = label;
-
- component_value.className = 'satus-select__value';
-
- if (element.storage_key) {
- var value = satus.storage.get(element.storage_key);
-
- component.dataset.storageKey = element.storage_key;
-
- for (var i = 0, l = element.options.length; i < l; i++) {
- if (value === element.options[i].value) {
- value = element.options[i].label;
- }
- }
-
- component_value.innerText = satus.locale.getMessage(value || element.options[0].label);
- }
-
- component.onclick = function() {
- var position = this.getBoundingClientRect(),
- dialog = {
- type: 'dialog',
- class: 'satus-dialog--select-component'
- };
-
- for (var key in element.options) {
- dialog[key] = element.options[key];
-
- dialog[key].type = 'button';
- dialog[key].dataset = {};
- dialog[key].dataset.key = element.options[key].label;
- dialog[key].dataset.value = element.options[key].value;
- dialog[key].onclick = function() {
- component_value.innerText = satus.locale.getMessage(this.dataset.key);
-
- satus.storage.set(component.dataset.storageKey, this.dataset.value);
-
- var parent = this.parentNode;
-
- while (!parent.classList.contains('satus-dialog')) {
- parent = parent.parentNode;
- }
-
- parent.querySelector('.satus-dialog__scrim').click();
- };
- }
-
- satus.render(dialog);
- };
-
- component.appendChild(component_label);
- component.appendChild(component_value);
-
- return component;
-};
-
-
-/*---------------------------------------------------------------
-# SHORTCUT
----------------------------------------------------------------*/
-
-satus.components.shortcut = function(element) {
- var self = this,
- value = (satus.storage.get(element.storage_key) ? JSON.parse(satus.storage.get(element.storage_key)) : false) || element.value || {},
- component = document.createElement('div'),
- component_label = document.createElement('span'),
- component_value = document.createElement('span'),
- mousewheel_timeout = false,
- mousewheel_only = false;
-
- component_label.className = 'satus-shortcut__label';
- component_value.className = 'satus-shortcut__value';
-
- function update(canvas) {
- let text_value = [],
- keys_value = [];
-
- if (value.altKey === true) {
- text_value.push('Alt');
- keys_value.push('Alt
');
- }
-
- if (value.ctrlKey === true) {
- text_value.push('Ctrl');
- keys_value.push('Ctrl
');
- }
-
- if (value.shiftKey === true) {
- text_value.push('Shift');
- keys_value.push('Shift
');
- }
-
- if (value.key === ' ') {
- text_value.push('Space bar');
- keys_value.push('Space bar
');
-
- } else if (typeof value.key === 'string' && ['Shift', 'Control', 'Alt'].indexOf(value.key) === -1) {
- if (value.key === 'ArrowUp') {
- text_value.push('↑');
- keys_value.push('↑
');
- } else if (value.key === 'ArrowRight') {
- text_value.push('→');
- keys_value.push('→
');
- } else if (value.key === 'ArrowDown') {
- text_value.push('↓');
- keys_value.push('↓
');
- } else if (value.key === 'ArrowLeft') {
- text_value.push('←');
- keys_value.push('←
');
- } else {
- let key = value.key.toUpperCase();
-
- text_value.push(key);
- keys_value.push('' + key + '
');
- }
- }
-
- if (value.wheel) {
- keys_value.push('');
- }
-
- component_value.innerText = text_value.join('+');
-
- if (canvas) {
- if (keys_value.length > 0) {
- canvas.innerHTML = keys_value.join('');
- } else {
- canvas.innerText = satus.locale.getMessage('pressAnyKeyOrUseMouseWheel');
- }
- }
- }
-
- update();
-
- component_value.dataset.value = component_value.innerText;
-
- component_label.innerText = satus.locale.getMessage(element.label);
-
- component.addEventListener('click', function() {
- let component_dialog = document.createElement('div'),
- component_dialog_label = document.createElement('span'),
- component_scrim = document.createElement('div'),
- component_surface = document.createElement('div'),
- component_canvas = document.createElement('div'),
- component_section = document.createElement('section'),
- component_button_reset = document.createElement('div'),
- component_button_cancel = document.createElement('div'),
- component_button_save = document.createElement('div');
-
- component_dialog.className = 'satus-dialog satus-dialog_open';
- component_dialog_label.className = 'satus-shortcut-dialog-label';
- component_scrim.className = 'satus-dialog__scrim';
- component_surface.className = 'satus-dialog__surface satus-dialog__surface_shortcut';
- component_canvas.className = 'satus-shortcut__canvas';
- component_section.className = 'satus-section satus-section--align-end satus-section_shortcut';
- component_button_reset.className = 'satus-button satus-button_shortcut';
- component_button_cancel.className = 'satus-button satus-button_shortcut';
- component_button_save.className = 'satus-button satus-button_shortcut';
-
- component_dialog_label.innerText = component_label.innerText;
- component_button_reset.innerText = satus.locale.getMessage('reset');
- component_button_cancel.innerText = satus.locale.getMessage('cancel');
- component_button_save.innerText = satus.locale.getMessage('save');
-
- update(component_canvas);
-
- function keydown(event) {
- event.preventDefault();
- event.stopPropagation();
-
- mousewheel_only = false;
- clearTimeout(mousewheel_timeout);
-
- value = {
- key: event.key,
- keyCode: event.keyCode,
- shiftKey: event.shiftKey,
- ctrlKey: event.ctrlKey,
- altKey: event.altKey
- };
-
- update(component_canvas);
-
- return false;
- }
-
- function mousewheel(event) {
- event.stopPropagation();
-
- if (mousewheel_only === true) {
- delete value.shiftKey;
- delete value.altKey;
- delete value.ctrlKey;
- delete value.keyCode;
- delete value.key;
- }
-
- clearTimeout(mousewheel_timeout);
-
- mousewheel_timeout = setTimeout(function() {
- mousewheel_only = true;
- }, 300);
-
- value.wheel = event.deltaY;
-
- update(component_canvas);
-
- return false;
- }
-
- window.addEventListener('keydown', keydown);
- window.addEventListener('mousewheel', mousewheel);
-
- function close(clear = true) {
- window.removeEventListener('keydown', keydown);
- window.removeEventListener('mousewheel', mousewheel);
-
- if (clear === true) {
- component_value.innerText = component_value.dataset.value;
- }
-
- component_dialog.classList.remove('satus-dialog_open');
-
- setTimeout(function() {
- component_dialog.remove();
- }, Number(document.defaultView.getComputedStyle(component_dialog, '').getPropertyValue('animation-duration').replace(/[^0-9.]/g, '') * 1000));
- }
-
- component_scrim.addEventListener('click', close);
- component_button_reset.addEventListener('click', function() {
- satus.storage.set(element.storage_key, null);
- close();
- value = (satus.storage.get(element.storage_key) ? JSON.parse(satus.storage.get(element.storage_key)) : false) || element.value || {};
- update();
- });
- component_button_cancel.addEventListener('click', close);
- component_button_save.addEventListener('click', function() {
- satus.storage.set(element.storage_key, JSON.stringify(value));
- close(false);
- });
-
- component_section.appendChild(component_button_reset);
- component_section.appendChild(component_button_cancel);
- component_section.appendChild(component_button_save);
-
- component_surface.appendChild(component_dialog_label);
- component_surface.appendChild(component_canvas);
- component_surface.appendChild(component_section);
-
- component_dialog.appendChild(component_scrim);
- component_dialog.appendChild(component_surface);
-
- document.body.appendChild(component_dialog);
- });
-
- component.appendChild(component_label);
- component.appendChild(component_value);
-
- return component;
-};
-
-
-/*--------------------------------------------------------------
-# SLIDER
---------------------------------------------------------------*/
-
-satus.components.slider = function(element) {
- var component = document.createElement('div');
-
- // LABEL
- if (satus.isset(element.label)) {
- var component_label = document.createElement('span');
-
- component_label.className = 'satus-slider__label';
- component_label.innerText = satus.locale.getMessage(element.label);
-
- component.appendChild(component_label);
- }
-
-
- // RANGE
- var component_range = document.createElement('input');
-
- component_range.type = 'range';
- component_range.className = 'satus-slider__range';
- component_range.min = element.min || 0;
- component_range.max = element.max || 10;
- component_range.step = element.step || 1;
-
- component_range.oninput = function() {
- var track = this.parentNode.querySelector('.satus-slider__track'),
- thumb = this.parentNode.querySelector('.satus-slider__thumb'),
- min = Number(this.min) || 0,
- max = Number(this.max) || 1,
- step = Number(this.step) || 1,
- value = Number(this.value) || 0,
- offset = (value - min) / (max - min) * 100;
-
- track.style.width = 'calc(' + offset + '% - ' + Math.floor(offset * 12 / 100) + 'px)';
-
- satus.storage.set(this.dataset.storageKey, Number(this.value));
-
- component_thumb.dataset.value = this.value;
-
- if (component.onchange) {
- component.onchange(Number(this.value));
- }
- };
-
- component.change = function(value) {
- component_range.value = value;
-
- component_thumb.dataset.value = value;
-
- component_range.oninput();
- };
-
- component.addEventListener('mousedown', function() {
- function mousemove() {
- component.classList.add('satus-slider--dragging');
- }
-
- function mouseup() {
- component.classList.remove('satus-slider--dragging');
-
- window.removeEventListener('mousemove', mousemove);
- window.removeEventListener('mouseup', mouseup);
- }
-
- window.addEventListener('mousemove', mousemove);
- window.addEventListener('mouseup', mouseup);
- });
-
- if (element.onchange) {
- component.onchange = element.onchange;
- }
-
- component.appendChild(component_range);
-
-
- // CONTAINER
- var component_container = document.createElement('div');
-
- component_container.className = 'satus-slider__container';
-
- component.appendChild(component_container);
-
-
- // TRACK
- var component_track_container = document.createElement('div'),
- component_track = document.createElement('div');
-
- component_track_container.className = 'satus-slider__track-container';
- component_track.className = 'satus-slider__track';
-
- component_track_container.appendChild(component_track);
- component_container.appendChild(component_track_container);
-
-
- // FOCUS RING
- var component_ring = document.createElement('div');
-
- component_ring.className = 'satus-slider__ring';
-
- component_track.appendChild(component_ring);
-
-
- // THUMB
- var component_thumb = document.createElement('div');
-
- component_thumb.className = 'satus-slider__thumb';
-
- component_track.appendChild(component_thumb);
-
- if (element.storage_key) {
- var value = satus.storage.get(element.storage_key) || element.value;
-
- component_range.dataset.storageKey = element.storage_key;
-
- if (value) {
- component_range.value = value;
-
- if (!satus.isset(value)) {
- value = element.value;
- }
-
- var offset = (Number(component_range.value) - Number(component_range.min)) / (Number(component_range.max) - Number(component_range.min)) * 100;
-
- component_track.style.width = 'calc(' + offset + '% - ' + Math.floor(offset * 12 / 100) + 'px)';
- component_thumb.dataset.value = value;
- } else {
- component_range.value = 0;
- component_thumb.dataset.value = 0;
- }
- }
-
-
- return component;
-};
-
-
-/*--------------------------------------------------------------
-# SWITCH
---------------------------------------------------------------*/
-
-satus.components.switch = function(element) {
- var component = document.createElement('div'),
- value;
-
- // LABEL
- if (satus.isset(element.label)) {
- var component_label = document.createElement('span');
-
- component_label.className = 'satus-switch__label';
- component_label.innerText = satus.locale.getMessage(element.label);
-
- component.appendChild(component_label);
- }
-
-
- // INPUT
- var component_input = document.createElement('input');
-
- component_input.type = 'checkbox';
- component_input.className = 'satus-switch__input';
-
- if (element.storage_key) {
- value = satus.storage.get(element.storage_key);
-
- component_input.dataset.storageKey = element.storage_key;
- }
-
- if (!satus.isset(value)) {
- value = element.value;
- }
-
- if (value) {
- component_input.checked = value;
- }
-
- component_input.addEventListener('change', function() {
- satus.storage.set(this.dataset.storageKey, this.checked);
- });
-
- component.appendChild(component_input);
-
-
- // TRACK
- var component_track = document.createElement('div');
-
- component_track.className = 'satus-switch__track';
-
- component.appendChild(component_track);
-
-
- // MOUSE MOVE
- component_track.addEventListener('mousedown', function(event) {
- var prevent = false,
- difference = 0;
-
- function click(event) {
- event.preventDefault();
- event.stopPropagation();
-
- component.removeEventListener('click', click);
-
- return false;
- }
-
- function mousemove(event) {
- var checkbox = component.querySelector('input'),
- movement = event.movementX;
-
- if (movement * difference < 0) {
- difference = 0;
- } else {
- difference += movement;
-
- if (prevent === false) {
- prevent = true;
- component.addEventListener('click', click);
- }
- }
-
- if (difference < -5) {
- checkbox.checked = false;
- } else if (difference > 5) {
- checkbox.checked = true;
- }
- }
-
- function mouseup(event) {
- window.removeEventListener('mousemove', mousemove);
- window.removeEventListener('mouseup', mouseup);
- }
-
- window.addEventListener('mousemove', mousemove);
- window.addEventListener('mouseup', mouseup);
- });
-
-
- // TOUCH MOVE
- component_track.addEventListener('touchstart', function(event) {
- var previous_x = 0,
- difference = 0;
-
- function mousemove(event) {
- var checkbox = component.querySelector('input'),
- movement = event.touches[0].clientX - previous_x;
-
- previous_x = event.touches[0].clientX;
-
- if (movement * difference < 0) {
- difference = 0;
- } else {
- difference += movement;
- }
-
- if (difference < -5) {
- checkbox.checked = false;
- } else if (difference > 5) {
- checkbox.checked = true;
- }
- }
-
- function mouseup(event) {
- window.removeEventListener('touchmove', mousemove);
- window.removeEventListener('touchend', mouseup);
- }
-
- window.addEventListener('touchmove', mousemove);
- window.addEventListener('touchend', mouseup);
- });
-
-
- return component;
-};
-satus.components.table = function(item) {
- var component = document.createElement('div'),
- component_head = document.createElement('div'),
- component_body = document.createElement('div'),
- component_scrollbar = satus.components.scrollbar(component_body, item.scrollbar),
- table = document.createElement('div');
-
- table.className = 'satus-table__container';
- component_head.className = 'satus-table__head';
- component_body.className = 'satus-table__body';
-
- function update(data) {
- var pages = Math.ceil(component.data.length / component.paging),
- start = Math.max((component.pagingIndex - 1) * component.paging, 0),
- end = component.pagingIndex * component.paging;
-
- if (end > data.length) {
- end = data.length;
- } else if (end === 0) {
- end = component.paging;
- }
-
- table.innerHTML = '';
-
- if (data) {
- for (var i = start, l = end; i < l; i++) {
- if (data[i]) {
- var tr = document.createElement('div');
-
- tr.className = 'satus-table__row';
-
- for (var j = 0, k = data[i].length; j < k; j++) {
- var td = document.createElement('div');
-
-
- td.className = 'satus-table__cell';
-
- if (data[i][j].html) {
- td.innerHTML = data[i][j].html;
- } else if (data[i][j].text) {
- td.innerText = data[i][j].text;
- }
-
- if (data[i][j].onrender) {
- td.onrender = data[i][j].onrender;
-
- td.onrender();
- }
-
- tr.appendChild(td);
- }
-
- table.appendChild(tr);
- }
- }
- }
-
- component.pagingUpdate();
- }
-
- function sortArray(array, index, mode) {
- if (mode === 'asc') {
- if (typeof array[0][index].text === 'number') {
- sorted = array.sort(function(a, b) {
- return a[index].text - b[index].text;
- });
- } else {
- sorted = array.sort(function(a, b) {
- return a[index].text.localeCompare(b[index].text);
- });
- }
- } else {
- if (typeof array[0][index].text === 'number') {
- sorted = array.sort(function(a, b) {
- return b[index].text - a[index].text;
- });
- } else {
- sorted = array.sort(function(a, b) {
- return b[index].text.localeCompare(a[index].text);
- });
- }
- }
-
- return array;
- }
-
- function sort() {
- var mode = this.dataset.sorting,
- index = Array.prototype.indexOf.call(this.parentElement.children, this),
- sorted;
-
- if (component.data[0][index] && component.data[0][index].hasOwnProperty('text')) {
- if (mode === 'none') {
- mode = 'asc';
- } else if (mode === 'asc') {
- mode = 'desc';
- } else if (mode === 'desc') {
- mode = 'asc';
- }
-
- if (this.parentNode.querySelector('div[data-sorting=asc], div[data-sorting=desc]')) {
- this.parentNode.querySelector('div[data-sorting=asc], div[data-sorting=desc]').dataset.sorting = 'none';
- }
-
- this.dataset.sorting = mode;
-
- sorted = sortArray(component.data, index, mode);
-
- update(sorted);
- } else {
- this.dataset.sorting = false;
- }
- }
-
- function resize() {}
-
- for (var i = 0, l = item.columns.length; i < l; i++) {
- var column = document.createElement('div');
-
- column.dataset.sorting = 'none';
- column.addEventListener('click', sort);
- column.innerHTML = '' + item.columns[i].title + '';
-
- component_head.appendChild(column);
- }
-
- component_scrollbar.appendChild(table);
-
- component.appendChild(component_head);
- component.appendChild(component_body);
-
- component.data = item.data;
- component.paging = item.paging;
- component.pagingIndex = 0;
-
- component.update = function(data, index, mode) {
- if (satus.isset(data)) {
- this.data = data;
- }
-
- if (this.querySelector('div[data-sorting=asc], div[data-sorting=desc]')) {
- var mode = this.querySelector('div[data-sorting=asc], div[data-sorting=desc]').dataset.sorting,
- index = Array.prototype.indexOf.call(this.querySelector('div[data-sorting=asc], div[data-sorting=desc]').parentElement.children, this.querySelector('div[data-sorting=asc], div[data-sorting=desc]'));
-
- update(sortArray(this.data, index, mode));
- } else {
- for (var i = 0, l = item.columns.length; i < l; i++) {
- if (item.columns[i].hasOwnProperty('sorting')) {
- if (this.data[0][i].hasOwnProperty('text')) {
- this.querySelectorAll('.satus-table__head > div')[i].dataset.sorting = item.columns[i].sorting;
- } else {
- this.querySelectorAll('.satus-table__head > div')[i].dataset.sorting = false;
- }
-
- update(sortArray(this.data, i, item.columns[i].sorting));
-
- i = l;
- }
- }
- }
- };
-
-
- // PAGING
-
- function pagingUpdate() {
- if (typeof this.paging === 'number') {
- var pages = Math.ceil(this.data.length / this.paging);
-
- this.querySelector('.satus-table__paging').innerHTML = '';
-
- for (var i = 1; i <= pages; i++) {
- var button = document.createElement('button');
-
- if (i === (this.pagingIndex || 1)) {
- button.className = 'active';
- }
-
- button.innerText = i;
- button.parentComponent = this;
- button.addEventListener('click', function() {
- if (this.parentNode.querySelector('button.active')) {
- this.parentNode.querySelector('button.active').classList.remove('active');
- }
-
- this.classList.add('active');
-
- this.parentComponent.pagingIndex = Number(this.innerText);
- this.parentComponent.update(this.parentComponent.data);
- });
-
- this.querySelector('.satus-table__paging').appendChild(button);
- }
- }
-
- resize();
- }
-
- component.pagingUpdate = pagingUpdate;
-
- component_paging = document.createElement('div');
-
- component_paging.className = 'satus-table__paging';
-
- component_scrollbar.appendChild(component_paging);
-
- // END PAGING
-
- if (item.data) {
- component.update(item.data);
- }
-
- return component;
-};
-
-
-/*--------------------------------------------------------------
-# TEXT
---------------------------------------------------------------*/
-
-satus.components.text = function(element) {
- var component = document.createElement('span');
-
- if (satus.isset(element.label)) {
- var component_label = document.createElement('span');
-
- component_label.className = 'satus-text__label';
- component_label.innerText = satus.locale.getMessage(element.label);
-
- component.appendChild(component_label);
- }
-
- if (satus.isset(element.value)) {
- var component_value = document.createElement('span');
-
- component_value.className = 'satus-text__value';
- component_value.innerText = satus.locale.getMessage(element.value);
-
- component.appendChild(component_value);
- }
-
- return component;
-};
-
-
-/*--------------------------------------------------------------
-# TEXT FIELD
---------------------------------------------------------------*/
-
-satus.components.textField = function(element) {
- var component = element.rows > 1 ? document.createElement('textarea') : document.createElement('input');
-
- component.type = 'text';
-
- return component;
-};
\ No newline at end of file