Spaces:
Running
Running
Upload 20 files
Browse files- README.md +11 -0
- all.min.css +6 -0
- css.css +0 -0
- gitattributes (1).txt +35 -0
- gitattributes.txt +35 -0
- index.html +438 -0
- js_FileSaver.js +87 -0
- js_aes.js +1880 -0
- js_free-online-image-upscaler.js +0 -0
- js_quene.js +63 -0
- js_spark-md5.min.js +473 -0
- js_translation.js +747 -0
- jsnew_image-upscaler.js +0 -0
- local.css +64 -0
- new-design.css +485 -0
- redX.png +0 -0
- replit.md +91 -0
- spinner.gif +0 -0
- style.css +28 -0
- trp-language-switcher.css +143 -0
README.md
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
---
|
| 2 |
+
title: Photo Upscaler
|
| 3 |
+
emoji: 🏙️
|
| 4 |
+
colorFrom: indigo
|
| 5 |
+
colorTo: gray
|
| 6 |
+
sdk: static
|
| 7 |
+
pinned: true
|
| 8 |
+
short_description: Ai Image Upscaler
|
| 9 |
+
---
|
| 10 |
+
|
| 11 |
+
Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
|
all.min.css
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
/*!
|
| 2 |
+
* Font Awesome Free 6.0.0-beta3 by @fontawesome - https://fontawesome.com
|
| 3 |
+
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
|
| 4 |
+
* Copyright 2021 Fonticons, Inc.
|
| 5 |
+
*/
|
| 6 |
+
.fa{font-family:var(--fa-style-family,"Font Awesome 6 Free");font-weight:var(--fa-style,900)}.fa,.fa-brands,.fa-duotone,.fa-light,.fa-regular,.fa-solid,.fa-thin,.fab,.fad,.fal,.far,.fas,.fat{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:var(--fa-display,inline-block);font-style:normal;font-variant:normal;line-height:1;text-rendering:auto}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-2xs{font-size:.625em;line-height:.1em;vertical-align:.225em}.fa-xs{font-size:.75em;line-height:.08333em;vertical-align:.125em}.fa-sm{font-size:.875em;line-height:.07143em;vertical-align:.05357em}.fa-lg{font-size:1.25em;line-height:.05em;vertical-align:-.075em}.fa-xl{font-size:1.5em;line-height:.04167em;vertical-align:-.125em}.fa-2xl{font-size:2em;line-height:.03125em;vertical-align:-.1875em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:var(--fa-li-margin,2.5em);padding-left:0}.fa-ul>li{position:relative}.fa-li{left:calc(var(--fa-li-width, 2em)*-1);position:absolute;text-align:center;width:var(--fa-li-width,2em);line-height:inherit}.fa-border{border-radius:var(--fa-border-radius,.1em);border:var(--fa-border-width,.08em) var(--fa-border-style,solid) var(--fa-border-color,#eee);padding:var(--fa-border-padding,.2em .25em .15em)}.fa-pull-left{float:left;margin-right:var(--fa-pull-margin,.3em)}.fa-pull-right{float:right;margin-left:var(--fa-pull-margin,.3em)}.fa-beat{-webkit-animation-name:fa-beat;animation-name:fa-beat;-webkit-animation-delay:var(--fa-animation-delay,0);animation-delay:var(--fa-animation-delay,0);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,ease-in-out);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-fade{-webkit-animation-name:fa-fade;animation-name:fa-fade;-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-beat-fade,.fa-fade{-webkit-animation-delay:var(--fa-animation-delay,0);animation-delay:var(--fa-animation-delay,0);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s)}.fa-beat-fade{-webkit-animation-name:fa-beat-fade;animation-name:fa-beat-fade;-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-flip{-webkit-animation-name:fa-flip;animation-name:fa-flip;-webkit-animation-delay:var(--fa-animation-delay,0);animation-delay:var(--fa-animation-delay,0);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,ease-in-out);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-spin{-webkit-animation-name:fa-spin;animation-name:fa-spin;-webkit-animation-delay:var(--fa-animation-delay,0);animation-delay:var(--fa-animation-delay,0);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,2s);animation-duration:var(--fa-animation-duration,2s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,linear);animation-timing-function:var(--fa-animation-timing,linear)}.fa-spin-reverse{--fa-animation-direction:reverse}.fa-pulse,.fa-spin-pulse{-webkit-animation-name:fa-spin;animation-name:fa-spin;-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,steps(8));animation-timing-function:var(--fa-animation-timing,steps(8))}@media (prefers-reduced-motion:reduce){.fa-beat,.fa-beat-fade,.fa-fade,.fa-flip,.fa-pulse,.fa-spin,.fa-spin-pulse{-webkit-animation-delay:-1ms;animation-delay:-1ms;-webkit-animation-duration:1ms;animation-duration:1ms;-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-transition-delay:0s;transition-delay:0s;-webkit-transition-duration:0s;transition-duration:0s}}@-webkit-keyframes fa-beat{0%,90%{-webkit-transform:scale(1);transform:scale(1)}45%{-webkit-transform:scale(var(--fa-beat-scale,1.25));transform:scale(var(--fa-beat-scale,1.25))}}@keyframes fa-beat{0%,90%{-webkit-transform:scale(1);transform:scale(1)}45%{-webkit-transform:scale(var(--fa-beat-scale,1.25));transform:scale(var(--fa-beat-scale,1.25))}}@-webkit-keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@-webkit-keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity,.4);-webkit-transform:scale(1);transform:scale(1)}50%{opacity:1;-webkit-transform:scale(var(--fa-beat-fade-scale,1.125));transform:scale(var(--fa-beat-fade-scale,1.125))}}@keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity,.4);-webkit-transform:scale(1);transform:scale(1)}50%{opacity:1;-webkit-transform:scale(var(--fa-beat-fade-scale,1.125));transform:scale(var(--fa-beat-fade-scale,1.125))}}@-webkit-keyframes fa-flip{50%{-webkit-transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg));transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@keyframes fa-flip{50%{-webkit-transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg));transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.fa-rotate-90{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-webkit-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-webkit-transform:scaleY(-1);transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1);transform:scale(-1)}.fa-rotate-by{-webkit-transform:rotate(var(--fa-rotate-angle,none));transform:rotate(var(--fa-rotate-angle,none))}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%;z-index:var(--fa-stack-z-index,auto)}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:var(--fa-inverse,#fff)}.fa-0:before{content:"\30"}.fa-1:before{content:"\31"}.fa-2:before{content:"\32"}.fa-3:before{content:"\33"}.fa-4:before{content:"\34"}.fa-5:before{content:"\35"}.fa-6:before{content:"\36"}.fa-7:before{content:"\37"}.fa-8:before{content:"\38"}.fa-9:before{content:"\39"}.fa-a:before{content:"\41"}.fa-address-book:before,.fa-contact-book:before{content:"\f2b9"}.fa-address-card:before,.fa-contact-card:before,.fa-vcard:before{content:"\f2bb"}.fa-align-center:before{content:"\f037"}.fa-align-justify:before{content:"\f039"}.fa-align-left:before{content:"\f036"}.fa-align-right:before{content:"\f038"}.fa-anchor:before{content:"\f13d"}.fa-angle-down:before{content:"\f107"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-double-down:before,.fa-angles-down:before{content:"\f103"}.fa-angle-double-left:before,.fa-angles-left:before{content:"\f100"}.fa-angle-double-right:before,.fa-angles-right:before{content:"\f101"}.fa-angle-double-up:before,.fa-angles-up:before{content:"\f102"}.fa-ankh:before{content:"\f644"}.fa-apple-alt:before,.fa-apple-whole:before{content:"\f5d1"}.fa-archway:before{content:"\f557"}.fa-arrow-down:before{content:"\f063"}.fa-arrow-down-1-9:before,.fa-sort-numeric-asc:before,.fa-sort-numeric-down:before{content:"\f162"}.fa-arrow-down-9-1:before,.fa-sort-numeric-desc:before,.fa-sort-numeric-down-alt:before{content:"\f886"}.fa-arrow-down-a-z:before,.fa-sort-alpha-asc:before,.fa-sort-alpha-down:before{content:"\f15d"}.fa-arrow-down-long:before,.fa-long-arrow-down:before{content:"\f175"}.fa-arrow-down-short-wide:before,.fa-sort-amount-desc:before,.fa-sort-amount-down-alt:before{content:"\f884"}.fa-arrow-down-wide-short:before,.fa-sort-amount-asc:before,.fa-sort-amount-down:before{content:"\f160"}.fa-arrow-down-z-a:before,.fa-sort-alpha-desc:before,.fa-sort-alpha-down-alt:before{content:"\f881"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-left-long:before,.fa-long-arrow-left:before{content:"\f177"}.fa-arrow-pointer:before,.fa-mouse-pointer:before{content:"\f245"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-right-arrow-left:before,.fa-exchange:before{content:"\f0ec"}.fa-arrow-right-from-bracket:before,.fa-sign-out:before{content:"\f08b"}.fa-arrow-right-long:before,.fa-long-arrow-right:before{content:"\f178"}.fa-arrow-right-to-bracket:before,.fa-sign-in:before{content:"\f090"}.fa-arrow-left-rotate:before,.fa-arrow-rotate-back:before,.fa-arrow-rotate-backward:before,.fa-arrow-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-arrow-right-rotate:before,.fa-arrow-rotate-forward:before,.fa-arrow-rotate-right:before,.fa-redo:before{content:"\f01e"}.fa-arrow-trend-down:before{content:"\e097"}.fa-arrow-trend-up:before{content:"\e098"}.fa-arrow-turn-down:before,.fa-level-down:before{content:"\f149"}.fa-arrow-turn-up:before,.fa-level-up:before{content:"\f148"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-up-1-9:before,.fa-sort-numeric-up:before{content:"\f163"}.fa-arrow-up-9-1:before,.fa-sort-numeric-up-alt:before{content:"\f887"}.fa-arrow-up-a-z:before,.fa-sort-alpha-up:before{content:"\f15e"}.fa-arrow-up-from-bracket:before{content:"\e09a"}.fa-arrow-up-long:before,.fa-long-arrow-up:before{content:"\f176"}.fa-arrow-up-right-from-square:before,.fa-external-link:before{content:"\f08e"}.fa-arrow-up-short-wide:before,.fa-sort-amount-up-alt:before{content:"\f885"}.fa-arrow-up-wide-short:before,.fa-sort-amount-up:before{content:"\f161"}.fa-arrow-up-z-a:before,.fa-sort-alpha-up-alt:before{content:"\f882"}.fa-arrows-h:before,.fa-arrows-left-right:before{content:"\f07e"}.fa-arrows-rotate:before,.fa-refresh:before,.fa-sync:before{content:"\f021"}.fa-arrows-up-down:before,.fa-arrows-v:before{content:"\f07d"}.fa-arrows-up-down-left-right:before,.fa-arrows:before{content:"\f047"}.fa-asterisk:before{content:"\2a"}.fa-at:before{content:"\40"}.fa-atom:before{content:"\f5d2"}.fa-audio-description:before{content:"\f29e"}.fa-austral-sign:before{content:"\e0a9"}.fa-award:before{content:"\f559"}.fa-b:before{content:"\42"}.fa-baby:before{content:"\f77c"}.fa-baby-carriage:before,.fa-carriage-baby:before{content:"\f77d"}.fa-backward:before{content:"\f04a"}.fa-backward-fast:before,.fa-fast-backward:before{content:"\f049"}.fa-backward-step:before,.fa-step-backward:before{content:"\f048"}.fa-bacon:before{content:"\f7e5"}.fa-bacteria:before{content:"\e059"}.fa-bacterium:before{content:"\e05a"}.fa-bag-shopping:before,.fa-shopping-bag:before{content:"\f290"}.fa-bahai:before{content:"\f666"}.fa-baht-sign:before{content:"\e0ac"}.fa-ban:before,.fa-cancel:before{content:"\f05e"}.fa-ban-smoking:before,.fa-smoking-ban:before{content:"\f54d"}.fa-band-aid:before,.fa-bandage:before{content:"\f462"}.fa-bank:before,.fa-institution:before,.fa-university:before{content:"\f19c"}.fa-barcode:before{content:"\f02a"}.fa-bars:before,.fa-navicon:before{content:"\f0c9"}.fa-bars-progress:before,.fa-tasks-alt:before{content:"\f828"}.fa-bars-staggered:before,.fa-reorder:before,.fa-stream:before{content:"\f550"}.fa-baseball-ball:before,.fa-baseball:before{content:"\f433"}.fa-basket-shopping:before,.fa-shopping-basket:before{content:"\f291"}.fa-basketball-ball:before,.fa-basketball:before{content:"\f434"}.fa-bath:before,.fa-bathtub:before{content:"\f2cd"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-battery-5:before,.fa-battery-full:before,.fa-battery:before{content:"\f240"}.fa-battery-3:before,.fa-battery-half:before{content:"\f242"}.fa-battery-2:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-4:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-bed:before{content:"\f236"}.fa-bed-pulse:before,.fa-procedures:before{content:"\f487"}.fa-beer-mug-empty:before,.fa-beer:before{content:"\f0fc"}.fa-bell:before{content:"\f0f3"}.fa-bell-concierge:before,.fa-concierge-bell:before{content:"\f562"}.fa-bell-slash:before{content:"\f1f6"}.fa-bezier-curve:before{content:"\f55b"}.fa-bicycle:before{content:"\f206"}.fa-binoculars:before{content:"\f1e5"}.fa-biohazard:before{content:"\f780"}.fa-bitcoin-sign:before{content:"\e0b4"}.fa-blender:before{content:"\f517"}.fa-blender-phone:before{content:"\f6b6"}.fa-blog:before{content:"\f781"}.fa-bold:before{content:"\f032"}.fa-bolt:before,.fa-zap:before{content:"\f0e7"}.fa-bomb:before{content:"\f1e2"}.fa-bone:before{content:"\f5d7"}.fa-bong:before{content:"\f55c"}.fa-book:before{content:"\f02d"}.fa-atlas:before,.fa-book-atlas:before{content:"\f558"}.fa-bible:before,.fa-book-bible:before{content:"\f647"}.fa-book-journal-whills:before,.fa-journal-whills:before{content:"\f66a"}.fa-book-medical:before{content:"\f7e6"}.fa-book-open:before{content:"\f518"}.fa-book-open-reader:before,.fa-book-reader:before{content:"\f5da"}.fa-book-quran:before,.fa-quran:before{content:"\f687"}.fa-book-dead:before,.fa-book-skull:before{content:"\f6b7"}.fa-bookmark:before{content:"\f02e"}.fa-border-all:before{content:"\f84c"}.fa-border-none:before{content:"\f850"}.fa-border-style:before,.fa-border-top-left:before{content:"\f853"}.fa-bowling-ball:before{content:"\f436"}.fa-box:before{content:"\f466"}.fa-archive:before,.fa-box-archive:before{content:"\f187"}.fa-box-open:before{content:"\f49e"}.fa-box-tissue:before{content:"\e05b"}.fa-boxes-alt:before,.fa-boxes-stacked:before,.fa-boxes:before{content:"\f468"}.fa-braille:before{content:"\f2a1"}.fa-brain:before{content:"\f5dc"}.fa-brazilian-real-sign:before{content:"\e46c"}.fa-bread-slice:before{content:"\f7ec"}.fa-briefcase:before{content:"\f0b1"}.fa-briefcase-medical:before{content:"\f469"}.fa-broom:before{content:"\f51a"}.fa-broom-ball:before,.fa-quidditch-broom-ball:before,.fa-quidditch:before{content:"\f458"}.fa-brush:before{content:"\f55d"}.fa-bug:before{content:"\f188"}.fa-building:before{content:"\f1ad"}.fa-bullhorn:before{content:"\f0a1"}.fa-bullseye:before{content:"\f140"}.fa-burger:before,.fa-hamburger:before{content:"\f805"}.fa-bus:before{content:"\f207"}.fa-bus-alt:before,.fa-bus-simple:before{content:"\f55e"}.fa-briefcase-clock:before,.fa-business-time:before{content:"\f64a"}.fa-c:before{content:"\43"}.fa-birthday-cake:before,.fa-cake-candles:before,.fa-cake:before{content:"\f1fd"}.fa-calculator:before{content:"\f1ec"}.fa-calendar:before{content:"\f133"}.fa-calendar-check:before{content:"\f274"}.fa-calendar-day:before{content:"\f783"}.fa-calendar-alt:before,.fa-calendar-days:before{content:"\f073"}.fa-calendar-minus:before{content:"\f272"}.fa-calendar-plus:before{content:"\f271"}.fa-calendar-week:before{content:"\f784"}.fa-calendar-times:before,.fa-calendar-xmark:before{content:"\f273"}.fa-camera-alt:before,.fa-camera:before{content:"\f030"}.fa-camera-retro:before{content:"\f083"}.fa-camera-rotate:before{content:"\e0d8"}.fa-campground:before{content:"\f6bb"}.fa-candy-cane:before{content:"\f786"}.fa-cannabis:before{content:"\f55f"}.fa-capsules:before{content:"\f46b"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-battery-car:before,.fa-car-battery:before{content:"\f5df"}.fa-car-crash:before{content:"\f5e1"}.fa-car-alt:before,.fa-car-rear:before{content:"\f5de"}.fa-car-side:before{content:"\f5e4"}.fa-caravan:before{content:"\f8ff"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-caret-up:before{content:"\f0d8"}.fa-carrot:before{content:"\f787"}.fa-cart-arrow-down:before{content:"\f218"}.fa-cart-flatbed:before,.fa-dolly-flatbed:before{content:"\f474"}.fa-cart-flatbed-suitcase:before,.fa-luggage-cart:before{content:"\f59d"}.fa-cart-plus:before{content:"\f217"}.fa-cart-shopping:before,.fa-shopping-cart:before{content:"\f07a"}.fa-cash-register:before{content:"\f788"}.fa-cat:before{content:"\f6be"}.fa-cedi-sign:before{content:"\e0df"}.fa-cent-sign:before{content:"\e3f5"}.fa-certificate:before{content:"\f0a3"}.fa-chair:before{content:"\f6c0"}.fa-blackboard:before,.fa-chalkboard:before{content:"\f51b"}.fa-chalkboard-teacher:before,.fa-chalkboard-user:before{content:"\f51c"}.fa-champagne-glasses:before,.fa-glass-cheers:before{content:"\f79f"}.fa-charging-station:before{content:"\f5e7"}.fa-area-chart:before,.fa-chart-area:before{content:"\f1fe"}.fa-bar-chart:before,.fa-chart-bar:before{content:"\f080"}.fa-chart-column:before{content:"\e0e3"}.fa-chart-gantt:before{content:"\e0e4"}.fa-chart-line:before,.fa-line-chart:before{content:"\f201"}.fa-chart-pie:before,.fa-pie-chart:before{content:"\f200"}.fa-check:before{content:"\f00c"}.fa-check-double:before{content:"\f560"}.fa-check-to-slot:before,.fa-vote-yea:before{content:"\f772"}.fa-cheese:before{content:"\f7ef"}.fa-chess:before{content:"\f439"}.fa-chess-bishop:before{content:"\f43a"}.fa-chess-board:before{content:"\f43c"}.fa-chess-king:before{content:"\f43f"}.fa-chess-knight:before{content:"\f441"}.fa-chess-pawn:before{content:"\f443"}.fa-chess-queen:before{content:"\f445"}.fa-chess-rook:before{content:"\f447"}.fa-chevron-down:before{content:"\f078"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-chevron-up:before{content:"\f077"}.fa-child:before{content:"\f1ae"}.fa-church:before{content:"\f51d"}.fa-circle:before{content:"\f111"}.fa-arrow-circle-down:before,.fa-circle-arrow-down:before{content:"\f0ab"}.fa-arrow-circle-left:before,.fa-circle-arrow-left:before{content:"\f0a8"}.fa-arrow-circle-right:before,.fa-circle-arrow-right:before{content:"\f0a9"}.fa-arrow-circle-up:before,.fa-circle-arrow-up:before{content:"\f0aa"}.fa-check-circle:before,.fa-circle-check:before{content:"\f058"}.fa-chevron-circle-down:before,.fa-circle-chevron-down:before{content:"\f13a"}.fa-chevron-circle-left:before,.fa-circle-chevron-left:before{content:"\f137"}.fa-chevron-circle-right:before,.fa-circle-chevron-right:before{content:"\f138"}.fa-chevron-circle-up:before,.fa-circle-chevron-up:before{content:"\f139"}.fa-circle-dollar-to-slot:before,.fa-donate:before{content:"\f4b9"}.fa-circle-dot:before,.fa-dot-circle:before{content:"\f192"}.fa-arrow-alt-circle-down:before,.fa-circle-down:before{content:"\f358"}.fa-circle-exclamation:before,.fa-exclamation-circle:before{content:"\f06a"}.fa-circle-h:before,.fa-hospital-symbol:before{content:"\f47e"}.fa-adjust:before,.fa-circle-half-stroke:before{content:"\f042"}.fa-circle-info:before,.fa-info-circle:before{content:"\f05a"}.fa-arrow-alt-circle-left:before,.fa-circle-left:before{content:"\f359"}.fa-circle-minus:before,.fa-minus-circle:before{content:"\f056"}.fa-circle-notch:before{content:"\f1ce"}.fa-circle-pause:before,.fa-pause-circle:before{content:"\f28b"}.fa-circle-play:before,.fa-play-circle:before{content:"\f144"}.fa-circle-plus:before,.fa-plus-circle:before{content:"\f055"}.fa-circle-question:before,.fa-question-circle:before{content:"\f059"}.fa-circle-radiation:before,.fa-radiation-alt:before{content:"\f7ba"}.fa-arrow-alt-circle-right:before,.fa-circle-right:before{content:"\f35a"}.fa-circle-stop:before,.fa-stop-circle:before{content:"\f28d"}.fa-arrow-alt-circle-up:before,.fa-circle-up:before{content:"\f35b"}.fa-circle-user:before,.fa-user-circle:before{content:"\f2bd"}.fa-circle-xmark:before,.fa-times-circle:before,.fa-xmark-circle:before{content:"\f057"}.fa-city:before{content:"\f64f"}.fa-clapperboard:before{content:"\e131"}.fa-clipboard:before{content:"\f328"}.fa-clipboard-check:before{content:"\f46c"}.fa-clipboard-list:before{content:"\f46d"}.fa-clock-four:before,.fa-clock:before{content:"\f017"}.fa-clock-rotate-left:before,.fa-history:before{content:"\f1da"}.fa-clone:before{content:"\f24d"}.fa-closed-captioning:before{content:"\f20a"}.fa-cloud:before{content:"\f0c2"}.fa-cloud-arrow-down:before,.fa-cloud-download-alt:before,.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-arrow-up:before,.fa-cloud-upload-alt:before,.fa-cloud-upload:before{content:"\f0ee"}.fa-cloud-meatball:before{content:"\f73b"}.fa-cloud-moon:before{content:"\f6c3"}.fa-cloud-moon-rain:before{content:"\f73c"}.fa-cloud-rain:before{content:"\f73d"}.fa-cloud-showers-heavy:before{content:"\f740"}.fa-cloud-sun:before{content:"\f6c4"}.fa-cloud-sun-rain:before{content:"\f743"}.fa-clover:before{content:"\e139"}.fa-code:before{content:"\f121"}.fa-code-branch:before{content:"\f126"}.fa-code-commit:before{content:"\f386"}.fa-code-compare:before{content:"\e13a"}.fa-code-fork:before{content:"\e13b"}.fa-code-merge:before{content:"\f387"}.fa-code-pull-request:before{content:"\e13c"}.fa-coins:before{content:"\f51e"}.fa-colon-sign:before{content:"\e140"}.fa-comment:before{content:"\f075"}.fa-comment-dollar:before{content:"\f651"}.fa-comment-dots:before,.fa-commenting:before{content:"\f4ad"}.fa-comment-medical:before{content:"\f7f5"}.fa-comment-slash:before{content:"\f4b3"}.fa-comment-sms:before,.fa-sms:before{content:"\f7cd"}.fa-comments:before{content:"\f086"}.fa-comments-dollar:before{content:"\f653"}.fa-compact-disc:before{content:"\f51f"}.fa-compass:before{content:"\f14e"}.fa-compass-drafting:before,.fa-drafting-compass:before{content:"\f568"}.fa-compress:before{content:"\f066"}.fa-computer-mouse:before,.fa-mouse:before{content:"\f8cc"}.fa-cookie:before{content:"\f563"}.fa-cookie-bite:before{content:"\f564"}.fa-copy:before{content:"\f0c5"}.fa-copyright:before{content:"\f1f9"}.fa-couch:before{content:"\f4b8"}.fa-credit-card-alt:before,.fa-credit-card:before{content:"\f09d"}.fa-crop:before{content:"\f125"}.fa-crop-alt:before,.fa-crop-simple:before{content:"\f565"}.fa-cross:before{content:"\f654"}.fa-crosshairs:before{content:"\f05b"}.fa-crow:before{content:"\f520"}.fa-crown:before{content:"\f521"}.fa-crutch:before{content:"\f7f7"}.fa-cruzeiro-sign:before{content:"\e152"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-d:before{content:"\44"}.fa-database:before{content:"\f1c0"}.fa-backspace:before,.fa-delete-left:before{content:"\f55a"}.fa-democrat:before{content:"\f747"}.fa-desktop-alt:before,.fa-desktop:before{content:"\f390"}.fa-dharmachakra:before{content:"\f655"}.fa-diagram-project:before,.fa-project-diagram:before{content:"\f542"}.fa-diamond:before{content:"\f219"}.fa-diamond-turn-right:before,.fa-directions:before{content:"\f5eb"}.fa-dice:before{content:"\f522"}.fa-dice-d20:before{content:"\f6cf"}.fa-dice-d6:before{content:"\f6d1"}.fa-dice-five:before{content:"\f523"}.fa-dice-four:before{content:"\f524"}.fa-dice-one:before{content:"\f525"}.fa-dice-six:before{content:"\f526"}.fa-dice-three:before{content:"\f527"}.fa-dice-two:before{content:"\f528"}.fa-disease:before{content:"\f7fa"}.fa-divide:before{content:"\f529"}.fa-dna:before{content:"\f471"}.fa-dog:before{content:"\f6d3"}.fa-dollar-sign:before,.fa-dollar:before,.fa-usd:before{content:"\24"}.fa-dolly-box:before,.fa-dolly:before{content:"\f472"}.fa-dong-sign:before{content:"\e169"}.fa-door-closed:before{content:"\f52a"}.fa-door-open:before{content:"\f52b"}.fa-dove:before{content:"\f4ba"}.fa-compress-alt:before,.fa-down-left-and-up-right-to-center:before{content:"\f422"}.fa-down-long:before,.fa-long-arrow-alt-down:before{content:"\f309"}.fa-download:before{content:"\f019"}.fa-dragon:before{content:"\f6d5"}.fa-draw-polygon:before{content:"\f5ee"}.fa-droplet:before,.fa-tint:before{content:"\f043"}.fa-droplet-slash:before,.fa-tint-slash:before{content:"\f5c7"}.fa-drum:before{content:"\f569"}.fa-drum-steelpan:before{content:"\f56a"}.fa-drumstick-bite:before{content:"\f6d7"}.fa-dumbbell:before{content:"\f44b"}.fa-dumpster:before{content:"\f793"}.fa-dumpster-fire:before{content:"\f794"}.fa-dungeon:before{content:"\f6d9"}.fa-e:before{content:"\45"}.fa-deaf:before,.fa-deafness:before,.fa-ear-deaf:before,.fa-hard-of-hearing:before{content:"\f2a4"}.fa-assistive-listening-systems:before,.fa-ear-listen:before{content:"\f2a2"}.fa-earth-africa:before,.fa-globe-africa:before{content:"\f57c"}.fa-earth-america:before,.fa-earth-americas:before,.fa-earth:before,.fa-globe-americas:before{content:"\f57d"}.fa-earth-asia:before,.fa-globe-asia:before{content:"\f57e"}.fa-earth-europe:before,.fa-globe-europe:before{content:"\f7a2"}.fa-earth-oceania:before,.fa-globe-oceania:before{content:"\e47b"}.fa-egg:before{content:"\f7fb"}.fa-eject:before{content:"\f052"}.fa-elevator:before{content:"\e16d"}.fa-ellipsis-h:before,.fa-ellipsis:before{content:"\f141"}.fa-ellipsis-v:before,.fa-ellipsis-vertical:before{content:"\f142"}.fa-envelope:before{content:"\f0e0"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-text:before{content:"\f658"}.fa-envelopes-bulk:before,.fa-mail-bulk:before{content:"\f674"}.fa-equals:before{content:"\3d"}.fa-eraser:before{content:"\f12d"}.fa-ethernet:before{content:"\f796"}.fa-eur:before,.fa-euro-sign:before,.fa-euro:before{content:"\f153"}.fa-exclamation:before{content:"\21"}.fa-expand:before{content:"\f065"}.fa-eye:before{content:"\f06e"}.fa-eye-dropper-empty:before,.fa-eye-dropper:before,.fa-eyedropper:before{content:"\f1fb"}.fa-eye-low-vision:before,.fa-low-vision:before{content:"\f2a8"}.fa-eye-slash:before{content:"\f070"}.fa-f:before{content:"\46"}.fa-angry:before,.fa-face-angry:before{content:"\f556"}.fa-dizzy:before,.fa-face-dizzy:before{content:"\f567"}.fa-face-flushed:before,.fa-flushed:before{content:"\f579"}.fa-face-frown:before,.fa-frown:before{content:"\f119"}.fa-face-frown-open:before,.fa-frown-open:before{content:"\f57a"}.fa-face-grimace:before,.fa-grimace:before{content:"\f57f"}.fa-face-grin:before,.fa-grin:before{content:"\f580"}.fa-face-grin-beam:before,.fa-grin-beam:before{content:"\f582"}.fa-face-grin-beam-sweat:before,.fa-grin-beam-sweat:before{content:"\f583"}.fa-face-grin-hearts:before,.fa-grin-hearts:before{content:"\f584"}.fa-face-grin-squint:before,.fa-grin-squint:before{content:"\f585"}.fa-face-grin-squint-tears:before,.fa-grin-squint-tears:before{content:"\f586"}.fa-face-grin-stars:before,.fa-grin-stars:before{content:"\f587"}.fa-face-grin-tears:before,.fa-grin-tears:before{content:"\f588"}.fa-face-grin-tongue:before,.fa-grin-tongue:before{content:"\f589"}.fa-face-grin-tongue-squint:before,.fa-grin-tongue-squint:before{content:"\f58a"}.fa-face-grin-tongue-wink:before,.fa-grin-tongue-wink:before{content:"\f58b"}.fa-face-grin-wide:before,.fa-grin-alt:before{content:"\f581"}.fa-face-grin-wink:before,.fa-grin-wink:before{content:"\f58c"}.fa-face-kiss:before,.fa-kiss:before{content:"\f596"}.fa-face-kiss-beam:before,.fa-kiss-beam:before{content:"\f597"}.fa-face-kiss-wink-heart:before,.fa-kiss-wink-heart:before{content:"\f598"}.fa-face-laugh:before,.fa-laugh:before{content:"\f599"}.fa-face-laugh-beam:before,.fa-laugh-beam:before{content:"\f59a"}.fa-face-laugh-squint:before,.fa-laugh-squint:before{content:"\f59b"}.fa-face-laugh-wink:before,.fa-laugh-wink:before{content:"\f59c"}.fa-face-meh:before,.fa-meh:before{content:"\f11a"}.fa-face-meh-blank:before,.fa-meh-blank:before{content:"\f5a4"}.fa-face-rolling-eyes:before,.fa-meh-rolling-eyes:before{content:"\f5a5"}.fa-face-sad-cry:before,.fa-sad-cry:before{content:"\f5b3"}.fa-face-sad-tear:before,.fa-sad-tear:before{content:"\f5b4"}.fa-face-smile:before,.fa-smile:before{content:"\f118"}.fa-face-smile-beam:before,.fa-smile-beam:before{content:"\f5b8"}.fa-face-smile-wink:before,.fa-smile-wink:before{content:"\f4da"}.fa-face-surprise:before,.fa-surprise:before{content:"\f5c2"}.fa-face-tired:before,.fa-tired:before{content:"\f5c8"}.fa-fan:before{content:"\f863"}.fa-faucet:before{content:"\e005"}.fa-fax:before{content:"\f1ac"}.fa-feather:before{content:"\f52d"}.fa-feather-alt:before,.fa-feather-pointed:before{content:"\f56b"}.fa-file:before{content:"\f15b"}.fa-file-arrow-down:before,.fa-file-download:before{content:"\f56d"}.fa-file-arrow-up:before,.fa-file-upload:before{content:"\f574"}.fa-file-audio:before{content:"\f1c7"}.fa-file-code:before{content:"\f1c9"}.fa-file-contract:before{content:"\f56c"}.fa-file-csv:before{content:"\f6dd"}.fa-file-excel:before{content:"\f1c3"}.fa-arrow-right-from-file:before,.fa-file-export:before{content:"\f56e"}.fa-file-image:before{content:"\f1c5"}.fa-arrow-right-to-file:before,.fa-file-import:before{content:"\f56f"}.fa-file-invoice:before{content:"\f570"}.fa-file-invoice-dollar:before{content:"\f571"}.fa-file-alt:before,.fa-file-lines:before,.fa-file-text:before{content:"\f15c"}.fa-file-medical:before{content:"\f477"}.fa-file-pdf:before{content:"\f1c1"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-file-prescription:before{content:"\f572"}.fa-file-signature:before{content:"\f573"}.fa-file-video:before{content:"\f1c8"}.fa-file-medical-alt:before,.fa-file-waveform:before{content:"\f478"}.fa-file-word:before{content:"\f1c2"}.fa-file-archive:before,.fa-file-zipper:before{content:"\f1c6"}.fa-fill:before{content:"\f575"}.fa-fill-drip:before{content:"\f576"}.fa-film:before{content:"\f008"}.fa-filter:before{content:"\f0b0"}.fa-filter-circle-dollar:before,.fa-funnel-dollar:before{content:"\f662"}.fa-filter-circle-xmark:before{content:"\e17b"}.fa-fingerprint:before{content:"\f577"}.fa-fire:before{content:"\f06d"}.fa-fire-extinguisher:before{content:"\f134"}.fa-fire-alt:before,.fa-fire-flame-curved:before{content:"\f7e4"}.fa-burn:before,.fa-fire-flame-simple:before{content:"\f46a"}.fa-fish:before{content:"\f578"}.fa-flag:before{content:"\f024"}.fa-flag-checkered:before{content:"\f11e"}.fa-flag-usa:before{content:"\f74d"}.fa-flask:before{content:"\f0c3"}.fa-floppy-disk:before,.fa-save:before{content:"\f0c7"}.fa-florin-sign:before{content:"\e184"}.fa-folder:before{content:"\f07b"}.fa-folder-minus:before{content:"\f65d"}.fa-folder-open:before{content:"\f07c"}.fa-folder-plus:before{content:"\f65e"}.fa-folder-tree:before{content:"\f802"}.fa-font:before{content:"\f031"}.fa-football-ball:before,.fa-football:before{content:"\f44e"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before,.fa-forward-fast:before{content:"\f050"}.fa-forward-step:before,.fa-step-forward:before{content:"\f051"}.fa-franc-sign:before{content:"\e18f"}.fa-frog:before{content:"\f52e"}.fa-futbol-ball:before,.fa-futbol:before,.fa-soccer-ball:before{content:"\f1e3"}.fa-g:before{content:"\47"}.fa-gamepad:before{content:"\f11b"}.fa-gas-pump:before{content:"\f52f"}.fa-dashboard:before,.fa-gauge-high:before,.fa-gauge:before,.fa-tachometer-alt-fast:before,.fa-tachometer-alt:before{content:"\f625"}.fa-gauge-simple-high:before,.fa-gauge-simple:before,.fa-tachometer-fast:before,.fa-tachometer:before{content:"\f62a"}.fa-gavel:before,.fa-legal:before{content:"\f0e3"}.fa-cog:before,.fa-gear:before{content:"\f013"}.fa-cogs:before,.fa-gears:before{content:"\f085"}.fa-gem:before{content:"\f3a5"}.fa-genderless:before{content:"\f22d"}.fa-ghost:before{content:"\f6e2"}.fa-gift:before{content:"\f06b"}.fa-gifts:before{content:"\f79c"}.fa-glasses:before{content:"\f530"}.fa-globe:before{content:"\f0ac"}.fa-golf-ball-tee:before,.fa-golf-ball:before{content:"\f450"}.fa-gopuram:before{content:"\f664"}.fa-graduation-cap:before,.fa-mortar-board:before{content:"\f19d"}.fa-greater-than:before{content:"\3e"}.fa-greater-than-equal:before{content:"\f532"}.fa-grip-horizontal:before,.fa-grip:before{content:"\f58d"}.fa-grip-lines:before{content:"\f7a4"}.fa-grip-lines-vertical:before{content:"\f7a5"}.fa-grip-vertical:before{content:"\f58e"}.fa-guarani-sign:before{content:"\e19a"}.fa-guitar:before{content:"\f7a6"}.fa-gun:before{content:"\e19b"}.fa-h:before{content:"\48"}.fa-hammer:before{content:"\f6e3"}.fa-hamsa:before{content:"\f665"}.fa-hand-paper:before,.fa-hand:before{content:"\f256"}.fa-hand-back-fist:before,.fa-hand-rock:before{content:"\f255"}.fa-allergies:before,.fa-hand-dots:before{content:"\f461"}.fa-fist-raised:before,.fa-hand-fist:before{content:"\f6de"}.fa-hand-holding:before{content:"\f4bd"}.fa-hand-holding-dollar:before,.fa-hand-holding-usd:before{content:"\f4c0"}.fa-hand-holding-droplet:before,.fa-hand-holding-water:before{content:"\f4c1"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-hand-holding-medical:before{content:"\e05c"}.fa-hand-lizard:before{content:"\f258"}.fa-hand-middle-finger:before{content:"\f806"}.fa-hand-peace:before{content:"\f25b"}.fa-hand-point-down:before{content:"\f0a7"}.fa-hand-point-left:before{content:"\f0a5"}.fa-hand-point-right:before{content:"\f0a4"}.fa-hand-point-up:before{content:"\f0a6"}.fa-hand-pointer:before{content:"\f25a"}.fa-hand-scissors:before{content:"\f257"}.fa-hand-sparkles:before{content:"\e05d"}.fa-hand-spock:before{content:"\f259"}.fa-hands:before,.fa-sign-language:before,.fa-signing:before{content:"\f2a7"}.fa-american-sign-language-interpreting:before,.fa-asl-interpreting:before,.fa-hands-american-sign-language-interpreting:before,.fa-hands-asl-interpreting:before{content:"\f2a3"}.fa-hands-bubbles:before,.fa-hands-wash:before{content:"\e05e"}.fa-hands-clapping:before{content:"\e1a8"}.fa-hands-holding:before{content:"\f4c2"}.fa-hands-praying:before,.fa-praying-hands:before{content:"\f684"}.fa-handshake:before{content:"\f2b5"}.fa-hands-helping:before,.fa-handshake-angle:before{content:"\f4c4"}.fa-handshake-alt-slash:before,.fa-handshake-simple-slash:before{content:"\e05f"}.fa-handshake-slash:before{content:"\e060"}.fa-hanukiah:before{content:"\f6e6"}.fa-hard-drive:before,.fa-hdd:before{content:"\f0a0"}.fa-hashtag:before{content:"\23"}.fa-hat-cowboy:before{content:"\f8c0"}.fa-hat-cowboy-side:before{content:"\f8c1"}.fa-hat-wizard:before{content:"\f6e8"}.fa-head-side-cough:before{content:"\e061"}.fa-head-side-cough-slash:before{content:"\e062"}.fa-head-side-mask:before{content:"\e063"}.fa-head-side-virus:before{content:"\e064"}.fa-header:before,.fa-heading:before{content:"\f1dc"}.fa-headphones:before{content:"\f025"}.fa-headphones-alt:before,.fa-headphones-simple:before{content:"\f58f"}.fa-headset:before{content:"\f590"}.fa-heart:before{content:"\f004"}.fa-heart-broken:before,.fa-heart-crack:before{content:"\f7a9"}.fa-heart-pulse:before,.fa-heartbeat:before{content:"\f21e"}.fa-helicopter:before{content:"\f533"}.fa-hard-hat:before,.fa-hat-hard:before,.fa-helmet-safety:before{content:"\f807"}.fa-highlighter:before{content:"\f591"}.fa-hippo:before{content:"\f6ed"}.fa-hockey-puck:before{content:"\f453"}.fa-holly-berry:before{content:"\f7aa"}.fa-horse:before{content:"\f6f0"}.fa-horse-head:before{content:"\f7ab"}.fa-hospital-alt:before,.fa-hospital-wide:before,.fa-hospital:before{content:"\f0f8"}.fa-hospital-user:before{content:"\f80d"}.fa-hot-tub-person:before,.fa-hot-tub:before{content:"\f593"}.fa-hotdog:before{content:"\f80f"}.fa-hotel:before{content:"\f594"}.fa-hourglass-2:before,.fa-hourglass-half:before,.fa-hourglass:before{content:"\f254"}.fa-hourglass-empty:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-home-alt:before,.fa-home-lg-alt:before,.fa-home:before,.fa-house:before{content:"\f015"}.fa-home-lg:before,.fa-house-chimney:before{content:"\e3af"}.fa-house-chimney-crack:before,.fa-house-damage:before{content:"\f6f1"}.fa-clinic-medical:before,.fa-house-chimney-medical:before{content:"\f7f2"}.fa-house-chimney-user:before{content:"\e065"}.fa-house-crack:before{content:"\e3b1"}.fa-house-laptop:before,.fa-laptop-house:before{content:"\e066"}.fa-house-medical:before{content:"\e3b2"}.fa-home-user:before,.fa-house-user:before{content:"\e1b0"}.fa-hryvnia-sign:before,.fa-hryvnia:before{content:"\f6f2"}.fa-i:before{content:"\49"}.fa-i-cursor:before{content:"\f246"}.fa-ice-cream:before{content:"\f810"}.fa-icicles:before{content:"\f7ad"}.fa-heart-music-camera-bolt:before,.fa-icons:before{content:"\f86d"}.fa-id-badge:before{content:"\f2c1"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-id-card-alt:before,.fa-id-card-clip:before{content:"\f47f"}.fa-igloo:before{content:"\f7ae"}.fa-image:before{content:"\f03e"}.fa-image-portrait:before,.fa-portrait:before{content:"\f3e0"}.fa-images:before{content:"\f302"}.fa-inbox:before{content:"\f01c"}.fa-indent:before{content:"\f03c"}.fa-indian-rupee-sign:before,.fa-indian-rupee:before,.fa-inr:before{content:"\e1bc"}.fa-industry:before{content:"\f275"}.fa-infinity:before{content:"\f534"}.fa-info:before{content:"\f129"}.fa-italic:before{content:"\f033"}.fa-j:before{content:"\4a"}.fa-jedi:before{content:"\f669"}.fa-fighter-jet:before,.fa-jet-fighter:before{content:"\f0fb"}.fa-joint:before{content:"\f595"}.fa-k:before{content:"\4b"}.fa-kaaba:before{content:"\f66b"}.fa-key:before{content:"\f084"}.fa-keyboard:before{content:"\f11c"}.fa-khanda:before{content:"\f66d"}.fa-kip-sign:before{content:"\e1c4"}.fa-first-aid:before,.fa-kit-medical:before{content:"\f479"}.fa-kiwi-bird:before{content:"\f535"}.fa-l:before{content:"\4c"}.fa-landmark:before{content:"\f66f"}.fa-language:before{content:"\f1ab"}.fa-laptop:before{content:"\f109"}.fa-laptop-code:before{content:"\f5fc"}.fa-laptop-medical:before{content:"\f812"}.fa-lari-sign:before{content:"\e1c8"}.fa-layer-group:before{content:"\f5fd"}.fa-leaf:before{content:"\f06c"}.fa-left-long:before,.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-arrows-alt-h:before,.fa-left-right:before{content:"\f337"}.fa-lemon:before{content:"\f094"}.fa-less-than:before{content:"\3c"}.fa-less-than-equal:before{content:"\f537"}.fa-life-ring:before{content:"\f1cd"}.fa-lightbulb:before{content:"\f0eb"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-chain-broken:before,.fa-chain-slash:before,.fa-link-slash:before,.fa-unlink:before{content:"\f127"}.fa-lira-sign:before{content:"\f195"}.fa-list-squares:before,.fa-list:before{content:"\f03a"}.fa-list-check:before,.fa-tasks:before{content:"\f0ae"}.fa-list-1-2:before,.fa-list-numeric:before,.fa-list-ol:before{content:"\f0cb"}.fa-list-dots:before,.fa-list-ul:before{content:"\f0ca"}.fa-litecoin-sign:before{content:"\e1d3"}.fa-location-arrow:before{content:"\f124"}.fa-location-crosshairs:before,.fa-location:before{content:"\f601"}.fa-location-dot:before,.fa-map-marker-alt:before{content:"\f3c5"}.fa-location-pin:before,.fa-map-marker:before{content:"\f041"}.fa-lock:before{content:"\f023"}.fa-lock-open:before{content:"\f3c1"}.fa-lungs:before{content:"\f604"}.fa-lungs-virus:before{content:"\e067"}.fa-m:before{content:"\4d"}.fa-magnet:before{content:"\f076"}.fa-magnifying-glass:before,.fa-search:before{content:"\f002"}.fa-magnifying-glass-dollar:before,.fa-search-dollar:before{content:"\f688"}.fa-magnifying-glass-location:before,.fa-search-location:before{content:"\f689"}.fa-magnifying-glass-minus:before,.fa-search-minus:before{content:"\f010"}.fa-magnifying-glass-plus:before,.fa-search-plus:before{content:"\f00e"}.fa-manat-sign:before{content:"\e1d5"}.fa-map:before{content:"\f279"}.fa-map-location:before,.fa-map-marked:before{content:"\f59f"}.fa-map-location-dot:before,.fa-map-marked-alt:before{content:"\f5a0"}.fa-map-pin:before{content:"\f276"}.fa-marker:before{content:"\f5a1"}.fa-mars:before{content:"\f222"}.fa-mars-and-venus:before{content:"\f224"}.fa-mars-double:before{content:"\f227"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-h:before,.fa-mars-stroke-right:before{content:"\f22b"}.fa-mars-stroke-up:before,.fa-mars-stroke-v:before{content:"\f22a"}.fa-glass-martini-alt:before,.fa-martini-glass:before{content:"\f57b"}.fa-cocktail:before,.fa-martini-glass-citrus:before{content:"\f561"}.fa-glass-martini:before,.fa-martini-glass-empty:before{content:"\f000"}.fa-mask:before{content:"\f6fa"}.fa-mask-face:before{content:"\e1d7"}.fa-masks-theater:before,.fa-theater-masks:before{content:"\f630"}.fa-expand-arrows-alt:before,.fa-maximize:before{content:"\f31e"}.fa-medal:before{content:"\f5a2"}.fa-memory:before{content:"\f538"}.fa-menorah:before{content:"\f676"}.fa-mercury:before{content:"\f223"}.fa-comment-alt:before,.fa-message:before{content:"\f27a"}.fa-meteor:before{content:"\f753"}.fa-microchip:before{content:"\f2db"}.fa-microphone:before{content:"\f130"}.fa-microphone-alt:before,.fa-microphone-lines:before{content:"\f3c9"}.fa-microphone-alt-slash:before,.fa-microphone-lines-slash:before{content:"\f539"}.fa-microphone-slash:before{content:"\f131"}.fa-microscope:before{content:"\f610"}.fa-mill-sign:before{content:"\e1ed"}.fa-compress-arrows-alt:before,.fa-minimize:before{content:"\f78c"}.fa-minus:before,.fa-subtract:before{content:"\f068"}.fa-mitten:before{content:"\f7b5"}.fa-mobile-button:before{content:"\f10b"}.fa-mobile-alt:before,.fa-mobile-screen-button:before{content:"\f3cd"}.fa-money-bill:before{content:"\f0d6"}.fa-money-bill-1:before,.fa-money-bill-alt:before{content:"\f3d1"}.fa-money-bill-1-wave:before,.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-money-bill-wave:before{content:"\f53a"}.fa-money-check:before{content:"\f53c"}.fa-money-check-alt:before,.fa-money-check-dollar:before{content:"\f53d"}.fa-monument:before{content:"\f5a6"}.fa-moon:before{content:"\f186"}.fa-mortar-pestle:before{content:"\f5a7"}.fa-mosque:before{content:"\f678"}.fa-motorcycle:before{content:"\f21c"}.fa-mountain:before{content:"\f6fc"}.fa-mug-hot:before{content:"\f7b6"}.fa-coffee:before,.fa-mug-saucer:before{content:"\f0f4"}.fa-music:before{content:"\f001"}.fa-n:before{content:"\4e"}.fa-naira-sign:before{content:"\e1f6"}.fa-network-wired:before{content:"\f6ff"}.fa-neuter:before{content:"\f22c"}.fa-newspaper:before{content:"\f1ea"}.fa-not-equal:before{content:"\f53e"}.fa-note-sticky:before,.fa-sticky-note:before{content:"\f249"}.fa-notes-medical:before{content:"\f481"}.fa-o:before{content:"\4f"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-oil-can:before{content:"\f613"}.fa-om:before{content:"\f679"}.fa-otter:before{content:"\f700"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-p:before{content:"\50"}.fa-pager:before{content:"\f815"}.fa-paint-brush:before{content:"\f1fc"}.fa-paint-roller:before{content:"\f5aa"}.fa-palette:before{content:"\f53f"}.fa-pallet:before{content:"\f482"}.fa-panorama:before{content:"\e209"}.fa-paper-plane:before{content:"\f1d8"}.fa-paperclip:before{content:"\f0c6"}.fa-parachute-box:before{content:"\f4cd"}.fa-paragraph:before{content:"\f1dd"}.fa-passport:before{content:"\f5ab"}.fa-file-clipboard:before,.fa-paste:before{content:"\f0ea"}.fa-pause:before{content:"\f04c"}.fa-paw:before{content:"\f1b0"}.fa-peace:before{content:"\f67c"}.fa-pen:before{content:"\f304"}.fa-pen-alt:before,.fa-pen-clip:before{content:"\f305"}.fa-pen-fancy:before{content:"\f5ac"}.fa-pen-nib:before{content:"\f5ad"}.fa-pen-ruler:before,.fa-pencil-ruler:before{content:"\f5ae"}.fa-edit:before,.fa-pen-to-square:before{content:"\f044"}.fa-pencil-alt:before,.fa-pencil:before{content:"\f303"}.fa-people-arrows-left-right:before,.fa-people-arrows:before{content:"\e068"}.fa-people-carry-box:before,.fa-people-carry:before{content:"\f4ce"}.fa-pepper-hot:before{content:"\f816"}.fa-percent:before,.fa-percentage:before{content:"\25"}.fa-male:before,.fa-person:before{content:"\f183"}.fa-biking:before,.fa-person-biking:before{content:"\f84a"}.fa-person-booth:before{content:"\f756"}.fa-diagnoses:before,.fa-person-dots-from-line:before{content:"\f470"}.fa-female:before,.fa-person-dress:before{content:"\f182"}.fa-hiking:before,.fa-person-hiking:before{content:"\f6ec"}.fa-person-praying:before,.fa-pray:before{content:"\f683"}.fa-person-running:before,.fa-running:before{content:"\f70c"}.fa-person-skating:before,.fa-skating:before{content:"\f7c5"}.fa-person-skiing:before,.fa-skiing:before{content:"\f7c9"}.fa-person-skiing-nordic:before,.fa-skiing-nordic:before{content:"\f7ca"}.fa-person-snowboarding:before,.fa-snowboarding:before{content:"\f7ce"}.fa-person-swimming:before,.fa-swimmer:before{content:"\f5c4"}.fa-person-walking:before,.fa-walking:before{content:"\f554"}.fa-blind:before,.fa-person-walking-with-cane:before{content:"\f29d"}.fa-peseta-sign:before{content:"\e221"}.fa-peso-sign:before{content:"\e222"}.fa-phone:before{content:"\f095"}.fa-phone-alt:before,.fa-phone-flip:before{content:"\f879"}.fa-phone-slash:before{content:"\f3dd"}.fa-phone-volume:before,.fa-volume-control-phone:before{content:"\f2a0"}.fa-photo-film:before,.fa-photo-video:before{content:"\f87c"}.fa-piggy-bank:before{content:"\f4d3"}.fa-pills:before{content:"\f484"}.fa-pizza-slice:before{content:"\f818"}.fa-place-of-worship:before{content:"\f67f"}.fa-plane:before{content:"\f072"}.fa-plane-arrival:before{content:"\f5af"}.fa-plane-departure:before{content:"\f5b0"}.fa-plane-slash:before{content:"\e069"}.fa-play:before{content:"\f04b"}.fa-plug:before{content:"\f1e6"}.fa-add:before,.fa-plus:before{content:"\2b"}.fa-plus-minus:before{content:"\e43c"}.fa-podcast:before{content:"\f2ce"}.fa-poo:before{content:"\f2fe"}.fa-poo-bolt:before,.fa-poo-storm:before{content:"\f75a"}.fa-poop:before{content:"\f619"}.fa-power-off:before{content:"\f011"}.fa-prescription:before{content:"\f5b1"}.fa-prescription-bottle:before{content:"\f485"}.fa-prescription-bottle-alt:before,.fa-prescription-bottle-medical:before{content:"\f486"}.fa-print:before{content:"\f02f"}.fa-pump-medical:before{content:"\e06a"}.fa-pump-soap:before{content:"\e06b"}.fa-puzzle-piece:before{content:"\f12e"}.fa-q:before{content:"\51"}.fa-qrcode:before{content:"\f029"}.fa-question:before{content:"\3f"}.fa-quote-left-alt:before,.fa-quote-left:before{content:"\f10d"}.fa-quote-right-alt:before,.fa-quote-right:before{content:"\f10e"}.fa-r:before{content:"\52"}.fa-radiation:before{content:"\f7b9"}.fa-rainbow:before{content:"\f75b"}.fa-receipt:before{content:"\f543"}.fa-record-vinyl:before{content:"\f8d9"}.fa-ad:before,.fa-rectangle-ad:before{content:"\f641"}.fa-list-alt:before,.fa-rectangle-list:before{content:"\f022"}.fa-rectangle-times:before,.fa-rectangle-xmark:before,.fa-times-rectangle:before,.fa-window-close:before{content:"\f410"}.fa-recycle:before{content:"\f1b8"}.fa-registered:before{content:"\f25d"}.fa-repeat:before{content:"\f363"}.fa-mail-reply:before,.fa-reply:before{content:"\f3e5"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-republican:before{content:"\f75e"}.fa-restroom:before{content:"\f7bd"}.fa-retweet:before{content:"\f079"}.fa-ribbon:before{content:"\f4d6"}.fa-right-from-bracket:before,.fa-sign-out-alt:before{content:"\f2f5"}.fa-exchange-alt:before,.fa-right-left:before{content:"\f362"}.fa-long-arrow-alt-right:before,.fa-right-long:before{content:"\f30b"}.fa-right-to-bracket:before,.fa-sign-in-alt:before{content:"\f2f6"}.fa-ring:before{content:"\f70b"}.fa-road:before{content:"\f018"}.fa-robot:before{content:"\f544"}.fa-rocket:before{content:"\f135"}.fa-rotate:before,.fa-sync-alt:before{content:"\f2f1"}.fa-rotate-back:before,.fa-rotate-backward:before,.fa-rotate-left:before,.fa-undo-alt:before{content:"\f2ea"}.fa-redo-alt:before,.fa-rotate-forward:before,.fa-rotate-right:before{content:"\f2f9"}.fa-route:before{content:"\f4d7"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-rouble:before,.fa-rub:before,.fa-ruble-sign:before,.fa-ruble:before{content:"\f158"}.fa-ruler:before{content:"\f545"}.fa-ruler-combined:before{content:"\f546"}.fa-ruler-horizontal:before{content:"\f547"}.fa-ruler-vertical:before{content:"\f548"}.fa-rupee-sign:before,.fa-rupee:before{content:"\f156"}.fa-rupiah-sign:before{content:"\e23d"}.fa-s:before{content:"\53"}.fa-sailboat:before{content:"\e445"}.fa-satellite:before{content:"\f7bf"}.fa-satellite-dish:before{content:"\f7c0"}.fa-balance-scale:before,.fa-scale-balanced:before{content:"\f24e"}.fa-balance-scale-left:before,.fa-scale-unbalanced:before{content:"\f515"}.fa-balance-scale-right:before,.fa-scale-unbalanced-flip:before{content:"\f516"}.fa-school:before{content:"\f549"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-screwdriver:before{content:"\f54a"}.fa-screwdriver-wrench:before,.fa-tools:before{content:"\f7d9"}.fa-scroll:before{content:"\f70e"}.fa-scroll-torah:before,.fa-torah:before{content:"\f6a0"}.fa-sd-card:before{content:"\f7c2"}.fa-section:before{content:"\e447"}.fa-seedling:before,.fa-sprout:before{content:"\f4d8"}.fa-server:before{content:"\f233"}.fa-shapes:before,.fa-triangle-circle-square:before{content:"\f61f"}.fa-arrow-turn-right:before,.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-share-from-square:before,.fa-share-square:before{content:"\f14d"}.fa-share-alt:before,.fa-share-nodes:before{content:"\f1e0"}.fa-ils:before,.fa-shekel-sign:before,.fa-shekel:before,.fa-sheqel-sign:before,.fa-sheqel:before{content:"\f20b"}.fa-shield:before{content:"\f132"}.fa-shield-alt:before,.fa-shield-blank:before{content:"\f3ed"}.fa-shield-virus:before{content:"\e06c"}.fa-ship:before{content:"\f21a"}.fa-shirt:before,.fa-t-shirt:before,.fa-tshirt:before{content:"\f553"}.fa-shoe-prints:before{content:"\f54b"}.fa-shop:before,.fa-store-alt:before{content:"\f54f"}.fa-shop-slash:before,.fa-store-alt-slash:before{content:"\e070"}.fa-shower:before{content:"\f2cc"}.fa-shrimp:before{content:"\e448"}.fa-random:before,.fa-shuffle:before{content:"\f074"}.fa-shuttle-space:before,.fa-space-shuttle:before{content:"\f197"}.fa-sign-hanging:before,.fa-sign:before{content:"\f4d9"}.fa-signal-5:before,.fa-signal-perfect:before,.fa-signal:before{content:"\f012"}.fa-signature:before{content:"\f5b7"}.fa-map-signs:before,.fa-signs-post:before{content:"\f277"}.fa-sim-card:before{content:"\f7c4"}.fa-sink:before{content:"\e06d"}.fa-sitemap:before{content:"\f0e8"}.fa-skull:before{content:"\f54c"}.fa-skull-crossbones:before{content:"\f714"}.fa-slash:before{content:"\f715"}.fa-sleigh:before{content:"\f7cc"}.fa-sliders-h:before,.fa-sliders:before{content:"\f1de"}.fa-smog:before{content:"\f75f"}.fa-smoking:before{content:"\f48d"}.fa-snowflake:before{content:"\f2dc"}.fa-snowman:before{content:"\f7d0"}.fa-snowplow:before{content:"\f7d2"}.fa-soap:before{content:"\e06e"}.fa-socks:before{content:"\f696"}.fa-solar-panel:before{content:"\f5ba"}.fa-sort:before,.fa-unsorted:before{content:"\f0dc"}.fa-sort-desc:before,.fa-sort-down:before{content:"\f0dd"}.fa-sort-asc:before,.fa-sort-up:before{content:"\f0de"}.fa-spa:before{content:"\f5bb"}.fa-pastafarianism:before,.fa-spaghetti-monster-flying:before{content:"\f67b"}.fa-spell-check:before{content:"\f891"}.fa-spider:before{content:"\f717"}.fa-spinner:before{content:"\f110"}.fa-splotch:before{content:"\f5bc"}.fa-spoon:before,.fa-utensil-spoon:before{content:"\f2e5"}.fa-spray-can:before{content:"\f5bd"}.fa-air-freshener:before,.fa-spray-can-sparkles:before{content:"\f5d0"}.fa-square:before{content:"\f0c8"}.fa-external-link-square:before,.fa-square-arrow-up-right:before{content:"\f14c"}.fa-caret-square-down:before,.fa-square-caret-down:before{content:"\f150"}.fa-caret-square-left:before,.fa-square-caret-left:before{content:"\f191"}.fa-caret-square-right:before,.fa-square-caret-right:before{content:"\f152"}.fa-caret-square-up:before,.fa-square-caret-up:before{content:"\f151"}.fa-check-square:before,.fa-square-check:before{content:"\f14a"}.fa-envelope-square:before,.fa-square-envelope:before{content:"\f199"}.fa-square-full:before{content:"\f45c"}.fa-h-square:before,.fa-square-h:before{content:"\f0fd"}.fa-minus-square:before,.fa-square-minus:before{content:"\f146"}.fa-parking:before,.fa-square-parking:before{content:"\f540"}.fa-pen-square:before,.fa-pencil-square:before,.fa-square-pen:before{content:"\f14b"}.fa-phone-square:before,.fa-square-phone:before{content:"\f098"}.fa-phone-square-alt:before,.fa-square-phone-flip:before{content:"\f87b"}.fa-plus-square:before,.fa-square-plus:before{content:"\f0fe"}.fa-poll-h:before,.fa-square-poll-horizontal:before{content:"\f682"}.fa-poll:before,.fa-square-poll-vertical:before{content:"\f681"}.fa-square-root-alt:before,.fa-square-root-variable:before{content:"\f698"}.fa-rss-square:before,.fa-square-rss:before{content:"\f143"}.fa-share-alt-square:before,.fa-square-share-nodes:before{content:"\f1e1"}.fa-external-link-square-alt:before,.fa-square-up-right:before{content:"\f360"}.fa-square-xmark:before,.fa-times-square:before,.fa-xmark-square:before{content:"\f2d3"}.fa-stairs:before{content:"\e289"}.fa-stamp:before{content:"\f5bf"}.fa-star:before{content:"\f005"}.fa-star-and-crescent:before{content:"\f699"}.fa-star-half:before{content:"\f089"}.fa-star-half-alt:before,.fa-star-half-stroke:before{content:"\f5c0"}.fa-star-of-david:before{content:"\f69a"}.fa-star-of-life:before{content:"\f621"}.fa-gbp:before,.fa-pound-sign:before,.fa-sterling-sign:before{content:"\f154"}.fa-stethoscope:before{content:"\f0f1"}.fa-stop:before{content:"\f04d"}.fa-stopwatch:before{content:"\f2f2"}.fa-stopwatch-20:before{content:"\e06f"}.fa-store:before{content:"\f54e"}.fa-store-slash:before{content:"\e071"}.fa-street-view:before{content:"\f21d"}.fa-strikethrough:before{content:"\f0cc"}.fa-stroopwafel:before{content:"\f551"}.fa-subscript:before{content:"\f12c"}.fa-suitcase:before{content:"\f0f2"}.fa-medkit:before,.fa-suitcase-medical:before{content:"\f0fa"}.fa-suitcase-rolling:before{content:"\f5c1"}.fa-sun:before{content:"\f185"}.fa-superscript:before{content:"\f12b"}.fa-swatchbook:before{content:"\f5c3"}.fa-synagogue:before{content:"\f69b"}.fa-syringe:before{content:"\f48e"}.fa-t:before{content:"\54"}.fa-table:before{content:"\f0ce"}.fa-table-cells:before,.fa-th:before{content:"\f00a"}.fa-table-cells-large:before,.fa-th-large:before{content:"\f009"}.fa-columns:before,.fa-table-columns:before{content:"\f0db"}.fa-table-list:before,.fa-th-list:before{content:"\f00b"}.fa-ping-pong-paddle-ball:before,.fa-table-tennis-paddle-ball:before,.fa-table-tennis:before{content:"\f45d"}.fa-tablet-button:before{content:"\f10a"}.fa-tablet-alt:before,.fa-tablet-screen-button:before{content:"\f3fa"}.fa-tablets:before{content:"\f490"}.fa-digital-tachograph:before,.fa-tachograph-digital:before{content:"\f566"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-tape:before{content:"\f4db"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-teeth:before{content:"\f62e"}.fa-teeth-open:before{content:"\f62f"}.fa-temperature-0:before,.fa-temperature-empty:before,.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-temperature-4:before,.fa-temperature-full:before,.fa-thermometer-4:before,.fa-thermometer-full:before{content:"\f2c7"}.fa-temperature-2:before,.fa-temperature-half:before,.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-temperature-high:before{content:"\f769"}.fa-temperature-low:before{content:"\f76b"}.fa-temperature-1:before,.fa-temperature-quarter:before,.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-temperature-3:before,.fa-temperature-three-quarters:before,.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-tenge-sign:before,.fa-tenge:before{content:"\f7d7"}.fa-terminal:before{content:"\f120"}.fa-text-height:before{content:"\f034"}.fa-remove-format:before,.fa-text-slash:before{content:"\f87d"}.fa-text-width:before{content:"\f035"}.fa-thermometer:before{content:"\f491"}.fa-thumbs-down:before{content:"\f165"}.fa-thumbs-up:before{content:"\f164"}.fa-thumb-tack:before,.fa-thumbtack:before{content:"\f08d"}.fa-ticket:before{content:"\f145"}.fa-ticket-alt:before,.fa-ticket-simple:before{content:"\f3ff"}.fa-timeline:before{content:"\e29c"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-toilet:before{content:"\f7d8"}.fa-toilet-paper:before{content:"\f71e"}.fa-toilet-paper-slash:before{content:"\e072"}.fa-toolbox:before{content:"\f552"}.fa-tooth:before{content:"\f5c9"}.fa-torii-gate:before{content:"\f6a1"}.fa-broadcast-tower:before,.fa-tower-broadcast:before{content:"\f519"}.fa-tractor:before{content:"\f722"}.fa-trademark:before{content:"\f25c"}.fa-traffic-light:before{content:"\f637"}.fa-trailer:before{content:"\e041"}.fa-train:before{content:"\f238"}.fa-subway:before,.fa-train-subway:before{content:"\f239"}.fa-train-tram:before,.fa-tram:before{content:"\f7da"}.fa-transgender-alt:before,.fa-transgender:before{content:"\f225"}.fa-trash:before{content:"\f1f8"}.fa-trash-arrow-up:before,.fa-trash-restore:before{content:"\f829"}.fa-trash-alt:before,.fa-trash-can:before{content:"\f2ed"}.fa-trash-can-arrow-up:before,.fa-trash-restore-alt:before{content:"\f82a"}.fa-tree:before{content:"\f1bb"}.fa-exclamation-triangle:before,.fa-triangle-exclamation:before,.fa-warning:before{content:"\f071"}.fa-trophy:before{content:"\f091"}.fa-truck:before{content:"\f0d1"}.fa-shipping-fast:before,.fa-truck-fast:before{content:"\f48b"}.fa-ambulance:before,.fa-truck-medical:before{content:"\f0f9"}.fa-truck-monster:before{content:"\f63b"}.fa-truck-moving:before{content:"\f4df"}.fa-truck-pickup:before{content:"\f63c"}.fa-truck-loading:before,.fa-truck-ramp-box:before{content:"\f4de"}.fa-teletype:before,.fa-tty:before{content:"\f1e4"}.fa-try:before,.fa-turkish-lira-sign:before,.fa-turkish-lira:before{content:"\e2bb"}.fa-level-down-alt:before,.fa-turn-down:before{content:"\f3be"}.fa-level-up-alt:before,.fa-turn-up:before{content:"\f3bf"}.fa-television:before,.fa-tv-alt:before,.fa-tv:before{content:"\f26c"}.fa-u:before{content:"\55"}.fa-umbrella:before{content:"\f0e9"}.fa-umbrella-beach:before{content:"\f5ca"}.fa-underline:before{content:"\f0cd"}.fa-universal-access:before{content:"\f29a"}.fa-unlock:before{content:"\f09c"}.fa-unlock-alt:before,.fa-unlock-keyhole:before{content:"\f13e"}.fa-arrows-alt-v:before,.fa-up-down:before{content:"\f338"}.fa-arrows-alt:before,.fa-up-down-left-right:before{content:"\f0b2"}.fa-long-arrow-alt-up:before,.fa-up-long:before{content:"\f30c"}.fa-expand-alt:before,.fa-up-right-and-down-left-from-center:before{content:"\f424"}.fa-external-link-alt:before,.fa-up-right-from-square:before{content:"\f35d"}.fa-upload:before{content:"\f093"}.fa-user:before{content:"\f007"}.fa-user-astronaut:before{content:"\f4fb"}.fa-user-check:before{content:"\f4fc"}.fa-user-clock:before{content:"\f4fd"}.fa-user-doctor:before,.fa-user-md:before{content:"\f0f0"}.fa-user-cog:before,.fa-user-gear:before{content:"\f4fe"}.fa-user-graduate:before{content:"\f501"}.fa-user-friends:before,.fa-user-group:before{content:"\f500"}.fa-user-injured:before{content:"\f728"}.fa-user-alt:before,.fa-user-large:before{content:"\f406"}.fa-user-alt-slash:before,.fa-user-large-slash:before{content:"\f4fa"}.fa-user-lock:before{content:"\f502"}.fa-user-minus:before{content:"\f503"}.fa-user-ninja:before{content:"\f504"}.fa-user-nurse:before{content:"\f82f"}.fa-user-edit:before,.fa-user-pen:before{content:"\f4ff"}.fa-user-plus:before{content:"\f234"}.fa-user-secret:before{content:"\f21b"}.fa-user-shield:before{content:"\f505"}.fa-user-slash:before{content:"\f506"}.fa-user-tag:before{content:"\f507"}.fa-user-tie:before{content:"\f508"}.fa-user-times:before,.fa-user-xmark:before{content:"\f235"}.fa-users:before{content:"\f0c0"}.fa-users-cog:before,.fa-users-gear:before{content:"\f509"}.fa-users-slash:before{content:"\e073"}.fa-cutlery:before,.fa-utensils:before{content:"\f2e7"}.fa-v:before{content:"\56"}.fa-shuttle-van:before,.fa-van-shuttle:before{content:"\f5b6"}.fa-vault:before{content:"\e2c5"}.fa-vector-square:before{content:"\f5cb"}.fa-venus:before{content:"\f221"}.fa-venus-double:before{content:"\f226"}.fa-venus-mars:before{content:"\f228"}.fa-vest:before{content:"\e085"}.fa-vest-patches:before{content:"\e086"}.fa-vial:before{content:"\f492"}.fa-vials:before{content:"\f493"}.fa-video-camera:before,.fa-video:before{content:"\f03d"}.fa-video-slash:before{content:"\f4e2"}.fa-vihara:before{content:"\f6a7"}.fa-virus:before{content:"\e074"}.fa-virus-slash:before{content:"\e075"}.fa-viruses:before{content:"\e076"}.fa-voicemail:before{content:"\f897"}.fa-volleyball-ball:before,.fa-volleyball:before{content:"\f45f"}.fa-volume-high:before,.fa-volume-up:before{content:"\f028"}.fa-volume-down:before,.fa-volume-low:before{content:"\f027"}.fa-volume-off:before{content:"\f026"}.fa-volume-mute:before,.fa-volume-times:before,.fa-volume-xmark:before{content:"\f6a9"}.fa-vr-cardboard:before{content:"\f729"}.fa-w:before{content:"\57"}.fa-wallet:before{content:"\f555"}.fa-magic:before,.fa-wand-magic:before{content:"\f0d0"}.fa-magic-wand-sparkles:before,.fa-wand-magic-sparkles:before{content:"\e2ca"}.fa-warehouse:before{content:"\f494"}.fa-water:before{content:"\f773"}.fa-ladder-water:before,.fa-swimming-pool:before,.fa-water-ladder:before{content:"\f5c5"}.fa-wave-square:before{content:"\f83e"}.fa-weight-hanging:before{content:"\f5cd"}.fa-weight-scale:before,.fa-weight:before{content:"\f496"}.fa-wheelchair:before{content:"\f193"}.fa-glass-whiskey:before,.fa-whiskey-glass:before{content:"\f7a0"}.fa-wifi-3:before,.fa-wifi-strong:before,.fa-wifi:before{content:"\f1eb"}.fa-wind:before{content:"\f72e"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-wine-bottle:before{content:"\f72f"}.fa-wine-glass:before{content:"\f4e3"}.fa-wine-glass-alt:before,.fa-wine-glass-empty:before{content:"\f5ce"}.fa-krw:before,.fa-won-sign:before,.fa-won:before{content:"\f159"}.fa-wrench:before{content:"\f0ad"}.fa-x:before{content:"\58"}.fa-x-ray:before{content:"\f497"}.fa-close:before,.fa-multiply:before,.fa-remove:before,.fa-times:before,.fa-xmark:before{content:"\f00d"}.fa-y:before{content:"\59"}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen-sign:before,.fa-yen:before{content:"\f157"}.fa-yin-yang:before{content:"\f6ad"}.fa-z:before{content:"\5a"}.fa-sr-only,.fa-sr-only-focusable:not(:focus),.sr-only,.sr-only-focusable:not(:focus){position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}:host,:root{--fa-font-brands:normal 400 1em/1 "Font Awesome 6 Brands"}@font-face{font-family:"Font Awesome 6 Brands";font-style:normal;font-weight:400;font-display:block;src:url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.ttf) format("truetype")}.fa-brands,.fab{font-family:"Font Awesome 6 Brands";font-weight:400}.fa-42-group:before,.fa-innosoft:before{content:"\e080"}.fa-500px:before{content:"\f26e"}.fa-accessible-icon:before{content:"\f368"}.fa-accusoft:before{content:"\f369"}.fa-acquisitions-incorporated:before{content:"\f6af"}.fa-adn:before{content:"\f170"}.fa-adversal:before{content:"\f36a"}.fa-affiliatetheme:before{content:"\f36b"}.fa-airbnb:before{content:"\f834"}.fa-algolia:before{content:"\f36c"}.fa-alipay:before{content:"\f642"}.fa-amazon:before{content:"\f270"}.fa-amazon-pay:before{content:"\f42c"}.fa-amilia:before{content:"\f36d"}.fa-android:before{content:"\f17b"}.fa-angellist:before{content:"\f209"}.fa-angrycreative:before{content:"\f36e"}.fa-angular:before{content:"\f420"}.fa-app-store:before{content:"\f36f"}.fa-app-store-ios:before{content:"\f370"}.fa-apper:before{content:"\f371"}.fa-apple:before{content:"\f179"}.fa-apple-pay:before{content:"\f415"}.fa-artstation:before{content:"\f77a"}.fa-asymmetrik:before{content:"\f372"}.fa-atlassian:before{content:"\f77b"}.fa-audible:before{content:"\f373"}.fa-autoprefixer:before{content:"\f41c"}.fa-avianex:before{content:"\f374"}.fa-aviato:before{content:"\f421"}.fa-aws:before{content:"\f375"}.fa-bandcamp:before{content:"\f2d5"}.fa-battle-net:before{content:"\f835"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-bilibili:before{content:"\e3d9"}.fa-bimobject:before{content:"\f378"}.fa-bitbucket:before{content:"\f171"}.fa-bitcoin:before{content:"\f379"}.fa-bity:before{content:"\f37a"}.fa-black-tie:before{content:"\f27e"}.fa-blackberry:before{content:"\f37b"}.fa-blogger:before{content:"\f37c"}.fa-blogger-b:before{content:"\f37d"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-bootstrap:before{content:"\f836"}.fa-bots:before{content:"\e340"}.fa-btc:before{content:"\f15a"}.fa-buffer:before{content:"\f837"}.fa-buromobelexperte:before{content:"\f37f"}.fa-buy-n-large:before{content:"\f8a6"}.fa-buysellads:before{content:"\f20d"}.fa-canadian-maple-leaf:before{content:"\f785"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-apple-pay:before{content:"\f416"}.fa-cc-diners-club:before{content:"\f24c"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-cc-visa:before{content:"\f1f0"}.fa-centercode:before{content:"\f380"}.fa-centos:before{content:"\f789"}.fa-chrome:before{content:"\f268"}.fa-chromecast:before{content:"\f838"}.fa-cloudflare:before{content:"\e07d"}.fa-cloudscale:before{content:"\f383"}.fa-cloudsmith:before{content:"\f384"}.fa-cloudversify:before{content:"\f385"}.fa-cmplid:before{content:"\e360"}.fa-codepen:before{content:"\f1cb"}.fa-codiepie:before{content:"\f284"}.fa-confluence:before{content:"\f78d"}.fa-connectdevelop:before{content:"\f20e"}.fa-contao:before{content:"\f26d"}.fa-cotton-bureau:before{content:"\f89e"}.fa-cpanel:before{content:"\f388"}.fa-creative-commons:before{content:"\f25e"}.fa-creative-commons-by:before{content:"\f4e7"}.fa-creative-commons-nc:before{content:"\f4e8"}.fa-creative-commons-nc-eu:before{content:"\f4e9"}.fa-creative-commons-nc-jp:before{content:"\f4ea"}.fa-creative-commons-nd:before{content:"\f4eb"}.fa-creative-commons-pd:before{content:"\f4ec"}.fa-creative-commons-pd-alt:before{content:"\f4ed"}.fa-creative-commons-remix:before{content:"\f4ee"}.fa-creative-commons-sa:before{content:"\f4ef"}.fa-creative-commons-sampling:before{content:"\f4f0"}.fa-creative-commons-sampling-plus:before{content:"\f4f1"}.fa-creative-commons-share:before{content:"\f4f2"}.fa-creative-commons-zero:before{content:"\f4f3"}.fa-critical-role:before{content:"\f6c9"}.fa-css3:before{content:"\f13c"}.fa-css3-alt:before{content:"\f38b"}.fa-cuttlefish:before{content:"\f38c"}.fa-d-and-d:before{content:"\f38d"}.fa-d-and-d-beyond:before{content:"\f6ca"}.fa-dailymotion:before{content:"\e052"}.fa-dashcube:before{content:"\f210"}.fa-deezer:before{content:"\e077"}.fa-delicious:before{content:"\f1a5"}.fa-deploydog:before{content:"\f38e"}.fa-deskpro:before{content:"\f38f"}.fa-dev:before{content:"\f6cc"}.fa-deviantart:before{content:"\f1bd"}.fa-dhl:before{content:"\f790"}.fa-diaspora:before{content:"\f791"}.fa-digg:before{content:"\f1a6"}.fa-digital-ocean:before{content:"\f391"}.fa-discord:before{content:"\f392"}.fa-discourse:before{content:"\f393"}.fa-dochub:before{content:"\f394"}.fa-docker:before{content:"\f395"}.fa-draft2digital:before{content:"\f396"}.fa-dribbble:before{content:"\f17d"}.fa-dribbble-square:before{content:"\f397"}.fa-dropbox:before{content:"\f16b"}.fa-drupal:before{content:"\f1a9"}.fa-dyalog:before{content:"\f399"}.fa-earlybirds:before{content:"\f39a"}.fa-ebay:before{content:"\f4f4"}.fa-edge:before{content:"\f282"}.fa-edge-legacy:before{content:"\e078"}.fa-elementor:before{content:"\f430"}.fa-ello:before{content:"\f5f1"}.fa-ember:before{content:"\f423"}.fa-empire:before{content:"\f1d1"}.fa-envira:before{content:"\f299"}.fa-erlang:before{content:"\f39d"}.fa-ethereum:before{content:"\f42e"}.fa-etsy:before{content:"\f2d7"}.fa-evernote:before{content:"\f839"}.fa-expeditedssl:before{content:"\f23e"}.fa-facebook:before{content:"\f09a"}.fa-facebook-f:before{content:"\f39e"}.fa-facebook-messenger:before{content:"\f39f"}.fa-facebook-square:before{content:"\f082"}.fa-fantasy-flight-games:before{content:"\f6dc"}.fa-fedex:before{content:"\f797"}.fa-fedora:before{content:"\f798"}.fa-figma:before{content:"\f799"}.fa-firefox:before{content:"\f269"}.fa-firefox-browser:before{content:"\e007"}.fa-first-order:before{content:"\f2b0"}.fa-first-order-alt:before{content:"\f50a"}.fa-firstdraft:before{content:"\f3a1"}.fa-flickr:before{content:"\f16e"}.fa-flipboard:before{content:"\f44d"}.fa-fly:before{content:"\f417"}.fa-font-awesome-flag:before,.fa-font-awesome-logo-full:before,.fa-font-awesome:before{content:"\f2b4"}.fa-fonticons:before{content:"\f280"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-fort-awesome:before{content:"\f286"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-forumbee:before{content:"\f211"}.fa-foursquare:before{content:"\f180"}.fa-free-code-camp:before{content:"\f2c5"}.fa-freebsd:before{content:"\f3a4"}.fa-fulcrum:before{content:"\f50b"}.fa-galactic-republic:before{content:"\f50c"}.fa-galactic-senate:before{content:"\f50d"}.fa-get-pocket:before{content:"\f265"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-git:before{content:"\f1d3"}.fa-git-alt:before{content:"\f841"}.fa-git-square:before{content:"\f1d2"}.fa-github:before{content:"\f09b"}.fa-github-alt:before{content:"\f113"}.fa-github-square:before{content:"\f092"}.fa-gitkraken:before{content:"\f3a6"}.fa-gitlab:before{content:"\f296"}.fa-gitter:before{content:"\f426"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-gofore:before{content:"\f3a7"}.fa-golang:before{content:"\e40f"}.fa-goodreads:before{content:"\f3a8"}.fa-goodreads-g:before{content:"\f3a9"}.fa-google:before{content:"\f1a0"}.fa-google-drive:before{content:"\f3aa"}.fa-google-pay:before{content:"\e079"}.fa-google-play:before{content:"\f3ab"}.fa-google-plus:before{content:"\f2b3"}.fa-google-plus-g:before{content:"\f0d5"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-wallet:before{content:"\f1ee"}.fa-gratipay:before{content:"\f184"}.fa-grav:before{content:"\f2d6"}.fa-gripfire:before{content:"\f3ac"}.fa-grunt:before{content:"\f3ad"}.fa-guilded:before{content:"\e07e"}.fa-gulp:before{content:"\f3ae"}.fa-hacker-news:before{content:"\f1d4"}.fa-hacker-news-square:before{content:"\f3af"}.fa-hackerrank:before{content:"\f5f7"}.fa-hips:before{content:"\f452"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-hive:before{content:"\e07f"}.fa-hooli:before{content:"\f427"}.fa-hornbill:before{content:"\f592"}.fa-hotjar:before{content:"\f3b1"}.fa-houzz:before{content:"\f27c"}.fa-html5:before{content:"\f13b"}.fa-hubspot:before{content:"\f3b2"}.fa-ideal:before{content:"\e013"}.fa-imdb:before{content:"\f2d8"}.fa-instagram:before{content:"\f16d"}.fa-instagram-square:before{content:"\e055"}.fa-instalod:before{content:"\e081"}.fa-intercom:before{content:"\f7af"}.fa-internet-explorer:before{content:"\f26b"}.fa-invision:before{content:"\f7b0"}.fa-ioxhost:before{content:"\f208"}.fa-itch-io:before{content:"\f83a"}.fa-itunes:before{content:"\f3b4"}.fa-itunes-note:before{content:"\f3b5"}.fa-java:before{content:"\f4e4"}.fa-jedi-order:before{content:"\f50e"}.fa-jenkins:before{content:"\f3b6"}.fa-jira:before{content:"\f7b1"}.fa-joget:before{content:"\f3b7"}.fa-joomla:before{content:"\f1aa"}.fa-js:before{content:"\f3b8"}.fa-js-square:before{content:"\f3b9"}.fa-jsfiddle:before{content:"\f1cc"}.fa-kaggle:before{content:"\f5fa"}.fa-keybase:before{content:"\f4f5"}.fa-keycdn:before{content:"\f3ba"}.fa-kickstarter:before{content:"\f3bb"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-korvue:before{content:"\f42f"}.fa-laravel:before{content:"\f3bd"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-leanpub:before{content:"\f212"}.fa-less:before{content:"\f41d"}.fa-line:before{content:"\f3c0"}.fa-linkedin:before{content:"\f08c"}.fa-linkedin-in:before{content:"\f0e1"}.fa-linode:before{content:"\f2b8"}.fa-linux:before{content:"\f17c"}.fa-lyft:before{content:"\f3c3"}.fa-magento:before{content:"\f3c4"}.fa-mailchimp:before{content:"\f59e"}.fa-mandalorian:before{content:"\f50f"}.fa-markdown:before{content:"\f60f"}.fa-mastodon:before{content:"\f4f6"}.fa-maxcdn:before{content:"\f136"}.fa-mdb:before{content:"\f8ca"}.fa-medapps:before{content:"\f3c6"}.fa-medium-m:before,.fa-medium:before{content:"\f23a"}.fa-medrt:before{content:"\f3c8"}.fa-meetup:before{content:"\f2e0"}.fa-megaport:before{content:"\f5a3"}.fa-mendeley:before{content:"\f7b3"}.fa-microblog:before{content:"\e01a"}.fa-microsoft:before{content:"\f3ca"}.fa-mix:before{content:"\f3cb"}.fa-mixcloud:before{content:"\f289"}.fa-mixer:before{content:"\e056"}.fa-mizuni:before{content:"\f3cc"}.fa-modx:before{content:"\f285"}.fa-monero:before{content:"\f3d0"}.fa-napster:before{content:"\f3d2"}.fa-neos:before{content:"\f612"}.fa-nimblr:before{content:"\f5a8"}.fa-node:before{content:"\f419"}.fa-node-js:before{content:"\f3d3"}.fa-npm:before{content:"\f3d4"}.fa-ns8:before{content:"\f3d5"}.fa-nutritionix:before{content:"\f3d6"}.fa-octopus-deploy:before{content:"\e082"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-old-republic:before{content:"\f510"}.fa-opencart:before{content:"\f23d"}.fa-openid:before{content:"\f19b"}.fa-opera:before{content:"\f26a"}.fa-optin-monster:before{content:"\f23c"}.fa-orcid:before{content:"\f8d2"}.fa-osi:before{content:"\f41a"}.fa-page4:before{content:"\f3d7"}.fa-pagelines:before{content:"\f18c"}.fa-palfed:before{content:"\f3d8"}.fa-patreon:before{content:"\f3d9"}.fa-paypal:before{content:"\f1ed"}.fa-penny-arcade:before{content:"\f704"}.fa-perbyte:before{content:"\e083"}.fa-periscope:before{content:"\f3da"}.fa-phabricator:before{content:"\f3db"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-phoenix-squadron:before{content:"\f511"}.fa-php:before{content:"\f457"}.fa-pied-piper:before{content:"\f2ae"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-pied-piper-hat:before{content:"\f4e5"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-square:before{content:"\e01e"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-p:before{content:"\f231"}.fa-pinterest-square:before{content:"\f0d3"}.fa-pix:before{content:"\e43a"}.fa-playstation:before{content:"\f3df"}.fa-product-hunt:before{content:"\f288"}.fa-pushed:before{content:"\f3e1"}.fa-python:before{content:"\f3e2"}.fa-qq:before{content:"\f1d6"}.fa-quinscape:before{content:"\f459"}.fa-quora:before{content:"\f2c4"}.fa-r-project:before{content:"\f4f7"}.fa-raspberry-pi:before{content:"\f7bb"}.fa-ravelry:before{content:"\f2d9"}.fa-react:before{content:"\f41b"}.fa-reacteurope:before{content:"\f75d"}.fa-readme:before{content:"\f4d5"}.fa-rebel:before{content:"\f1d0"}.fa-red-river:before{content:"\f3e3"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-alien:before{content:"\f281"}.fa-reddit-square:before{content:"\f1a2"}.fa-redhat:before{content:"\f7bc"}.fa-renren:before{content:"\f18b"}.fa-replyd:before{content:"\f3e6"}.fa-researchgate:before{content:"\f4f8"}.fa-resolving:before{content:"\f3e7"}.fa-rev:before{content:"\f5b2"}.fa-rocketchat:before{content:"\f3e8"}.fa-rockrms:before{content:"\f3e9"}.fa-rust:before{content:"\e07a"}.fa-safari:before{content:"\f267"}.fa-salesforce:before{content:"\f83b"}.fa-sass:before{content:"\f41e"}.fa-schlix:before{content:"\f3ea"}.fa-scribd:before{content:"\f28a"}.fa-searchengin:before{content:"\f3eb"}.fa-sellcast:before{content:"\f2da"}.fa-sellsy:before{content:"\f213"}.fa-servicestack:before{content:"\f3ec"}.fa-shirtsinbulk:before{content:"\f214"}.fa-shopify:before{content:"\e057"}.fa-shopware:before{content:"\f5b5"}.fa-simplybuilt:before{content:"\f215"}.fa-sistrix:before{content:"\f3ee"}.fa-sith:before{content:"\f512"}.fa-sitrox:before{content:"\e44a"}.fa-sketch:before{content:"\f7c6"}.fa-skyatlas:before{content:"\f216"}.fa-skype:before{content:"\f17e"}.fa-slack-hash:before,.fa-slack:before{content:"\f198"}.fa-slideshare:before{content:"\f1e7"}.fa-snapchat-ghost:before,.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-square:before{content:"\f2ad"}.fa-soundcloud:before{content:"\f1be"}.fa-sourcetree:before{content:"\f7d3"}.fa-speakap:before{content:"\f3f3"}.fa-speaker-deck:before{content:"\f83c"}.fa-spotify:before{content:"\f1bc"}.fa-square-font-awesome:before{content:"\f425"}.fa-font-awesome-alt:before,.fa-square-font-awesome-stroke:before{content:"\f35c"}.fa-squarespace:before{content:"\f5be"}.fa-stack-exchange:before{content:"\f18d"}.fa-stack-overflow:before{content:"\f16c"}.fa-stackpath:before{content:"\f842"}.fa-staylinked:before{content:"\f3f5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-steam-symbol:before{content:"\f3f6"}.fa-sticker-mule:before{content:"\f3f7"}.fa-strava:before{content:"\f428"}.fa-stripe:before{content:"\f429"}.fa-stripe-s:before{content:"\f42a"}.fa-studiovinari:before{content:"\f3f8"}.fa-stumbleupon:before{content:"\f1a4"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-superpowers:before{content:"\f2dd"}.fa-supple:before{content:"\f3f9"}.fa-suse:before{content:"\f7d6"}.fa-swift:before{content:"\f8e1"}.fa-symfony:before{content:"\f83d"}.fa-teamspeak:before{content:"\f4f9"}.fa-telegram-plane:before,.fa-telegram:before{content:"\f2c6"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-the-red-yeti:before{content:"\f69d"}.fa-themeco:before{content:"\f5c6"}.fa-themeisle:before{content:"\f2b2"}.fa-think-peaks:before{content:"\f731"}.fa-tiktok:before{content:"\e07b"}.fa-trade-federation:before{content:"\f513"}.fa-trello:before{content:"\f181"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-twitch:before{content:"\f1e8"}.fa-twitter:before{content:"\f099"}.fa-twitter-square:before{content:"\f081"}.fa-typo3:before{content:"\f42b"}.fa-uber:before{content:"\f402"}.fa-ubuntu:before{content:"\f7df"}.fa-uikit:before{content:"\f403"}.fa-umbraco:before{content:"\f8e8"}.fa-uncharted:before{content:"\e084"}.fa-uniregistry:before{content:"\f404"}.fa-unity:before{content:"\e049"}.fa-unsplash:before{content:"\e07c"}.fa-untappd:before{content:"\f405"}.fa-ups:before{content:"\f7e0"}.fa-usb:before{content:"\f287"}.fa-usps:before{content:"\f7e1"}.fa-ussunnah:before{content:"\f407"}.fa-vaadin:before{content:"\f408"}.fa-viacoin:before{content:"\f237"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-viber:before{content:"\f409"}.fa-vimeo:before{content:"\f40a"}.fa-vimeo-square:before{content:"\f194"}.fa-vimeo-v:before{content:"\f27d"}.fa-vine:before{content:"\f1ca"}.fa-vk:before{content:"\f189"}.fa-vnv:before{content:"\f40b"}.fa-vuejs:before{content:"\f41f"}.fa-watchman-monitoring:before{content:"\e087"}.fa-waze:before{content:"\f83f"}.fa-weebly:before{content:"\f5cc"}.fa-weibo:before{content:"\f18a"}.fa-weixin:before{content:"\f1d7"}.fa-whatsapp:before{content:"\f232"}.fa-whatsapp-square:before{content:"\f40c"}.fa-whmcs:before{content:"\f40d"}.fa-wikipedia-w:before{content:"\f266"}.fa-windows:before{content:"\f17a"}.fa-wirsindhandwerk:before,.fa-wsh:before{content:"\e2d0"}.fa-wix:before{content:"\f5cf"}.fa-wizards-of-the-coast:before{content:"\f730"}.fa-wodu:before{content:"\e088"}.fa-wolf-pack-battalion:before{content:"\f514"}.fa-wordpress:before{content:"\f19a"}.fa-wordpress-simple:before{content:"\f411"}.fa-wpbeginner:before{content:"\f297"}.fa-wpexplorer:before{content:"\f2de"}.fa-wpforms:before{content:"\f298"}.fa-wpressr:before{content:"\f3e4"}.fa-xbox:before{content:"\f412"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-y-combinator:before{content:"\f23b"}.fa-yahoo:before{content:"\f19e"}.fa-yammer:before{content:"\f840"}.fa-yandex:before{content:"\f413"}.fa-yandex-international:before{content:"\f414"}.fa-yarn:before{content:"\f7e3"}.fa-yelp:before{content:"\f1e9"}.fa-yoast:before{content:"\f2b1"}.fa-youtube:before{content:"\f167"}.fa-youtube-square:before{content:"\f431"}.fa-zhihu:before{content:"\f63f"}:host,:root{--fa-font-regular:normal 400 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:400;font-display:block;src:url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.ttf) format("truetype")}.fa-regular,.far{font-family:"Font Awesome 6 Free";font-weight:400}:host,:root{--fa-font-solid:normal 900 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:900;font-display:block;src:url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.ttf) format("truetype")}.fa-solid,.fas{font-family:"Font Awesome 6 Free";font-weight:900}@font-face{font-family:"Font Awesome 5 Brands";font-display:block;font-weight:400;src:url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.ttf) format("truetype")}@font-face{font-family:"Font Awesome 5 Free";font-display:block;font-weight:900;src:url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.ttf) format("truetype")}@font-face{font-family:"Font Awesome 5 Free";font-display:block;font-weight:400;src:url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.ttf) format("truetype");unicode-range:U+f003,U+f006,U+f014,U+f016-f017,U+f01a-f01b,U+f01d,U+f022,U+f03e,U+f044,U+f046,U+f05c-f05d,U+f06e,U+f070,U+f087-f088,U+f08a,U+f094,U+f096-f097,U+f09d,U+f0a0,U+f0a2,U+f0a4-f0a7,U+f0c5,U+f0c7,U+f0e5-f0e6,U+f0eb,U+f0f6-f0f8,U+f10c,U+f114-f115,U+f118-f11a,U+f11c-f11d,U+f133,U+f147,U+f14e,U+f150-f152,U+f185-f186,U+f18e,U+f190-f192,U+f196,U+f1c1-f1c9,U+f1d9,U+f1db,U+f1e3,U+f1ea,U+f1f7,U+f1f9,U+f20a,U+f247-f248,U+f24a,U+f24d,U+f255-f25b,U+f25d,U+f271-f274,U+f278,U+f27b,U+f28c,U+f28e,U+f29c,U+f2b5,U+f2b7,U+f2ba,U+f2bc,U+f2be,U+f2c0-f2c1,U+f2c3,U+f2d0,U+f2d2,U+f2d4,U+f2dc}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-v4compatibility.woff2) format("woff2"),url(../webfonts/fa-v4compatibility.ttf) format("truetype");unicode-range:U+f041,U+f047,U+f065-f066,U+f07d-f07e,U+f080,U+f08b,U+f08e,U+f090,U+f09a,U+f0ac,U+f0ae,U+f0b2,U+f0d0,U+f0d6,U+f0e4,U+f0ec,U+f10a-f10b,U+f123,U+f13e,U+f148-f149,U+f14c,U+f156,U+f15e,U+f160-f161,U+f163,U+f175-f178,U+f195,U+f1f8,U+f219,U+f250,U+f252,U+f27a}
|
css.css
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
gitattributes (1).txt
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
*.7z filter=lfs diff=lfs merge=lfs -text
|
| 2 |
+
*.arrow filter=lfs diff=lfs merge=lfs -text
|
| 3 |
+
*.bin filter=lfs diff=lfs merge=lfs -text
|
| 4 |
+
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
| 5 |
+
*.ckpt filter=lfs diff=lfs merge=lfs -text
|
| 6 |
+
*.ftz filter=lfs diff=lfs merge=lfs -text
|
| 7 |
+
*.gz filter=lfs diff=lfs merge=lfs -text
|
| 8 |
+
*.h5 filter=lfs diff=lfs merge=lfs -text
|
| 9 |
+
*.joblib filter=lfs diff=lfs merge=lfs -text
|
| 10 |
+
*.lfs.* filter=lfs diff=lfs merge=lfs -text
|
| 11 |
+
*.mlmodel filter=lfs diff=lfs merge=lfs -text
|
| 12 |
+
*.model filter=lfs diff=lfs merge=lfs -text
|
| 13 |
+
*.msgpack filter=lfs diff=lfs merge=lfs -text
|
| 14 |
+
*.npy filter=lfs diff=lfs merge=lfs -text
|
| 15 |
+
*.npz filter=lfs diff=lfs merge=lfs -text
|
| 16 |
+
*.onnx filter=lfs diff=lfs merge=lfs -text
|
| 17 |
+
*.ot filter=lfs diff=lfs merge=lfs -text
|
| 18 |
+
*.parquet filter=lfs diff=lfs merge=lfs -text
|
| 19 |
+
*.pb filter=lfs diff=lfs merge=lfs -text
|
| 20 |
+
*.pickle filter=lfs diff=lfs merge=lfs -text
|
| 21 |
+
*.pkl filter=lfs diff=lfs merge=lfs -text
|
| 22 |
+
*.pt filter=lfs diff=lfs merge=lfs -text
|
| 23 |
+
*.pth filter=lfs diff=lfs merge=lfs -text
|
| 24 |
+
*.rar filter=lfs diff=lfs merge=lfs -text
|
| 25 |
+
*.safetensors filter=lfs diff=lfs merge=lfs -text
|
| 26 |
+
saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
| 27 |
+
*.tar.* filter=lfs diff=lfs merge=lfs -text
|
| 28 |
+
*.tar filter=lfs diff=lfs merge=lfs -text
|
| 29 |
+
*.tflite filter=lfs diff=lfs merge=lfs -text
|
| 30 |
+
*.tgz filter=lfs diff=lfs merge=lfs -text
|
| 31 |
+
*.wasm filter=lfs diff=lfs merge=lfs -text
|
| 32 |
+
*.xz filter=lfs diff=lfs merge=lfs -text
|
| 33 |
+
*.zip filter=lfs diff=lfs merge=lfs -text
|
| 34 |
+
*.zst filter=lfs diff=lfs merge=lfs -text
|
| 35 |
+
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
gitattributes.txt
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
*.7z filter=lfs diff=lfs merge=lfs -text
|
| 2 |
+
*.arrow filter=lfs diff=lfs merge=lfs -text
|
| 3 |
+
*.bin filter=lfs diff=lfs merge=lfs -text
|
| 4 |
+
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
| 5 |
+
*.ckpt filter=lfs diff=lfs merge=lfs -text
|
| 6 |
+
*.ftz filter=lfs diff=lfs merge=lfs -text
|
| 7 |
+
*.gz filter=lfs diff=lfs merge=lfs -text
|
| 8 |
+
*.h5 filter=lfs diff=lfs merge=lfs -text
|
| 9 |
+
*.joblib filter=lfs diff=lfs merge=lfs -text
|
| 10 |
+
*.lfs.* filter=lfs diff=lfs merge=lfs -text
|
| 11 |
+
*.mlmodel filter=lfs diff=lfs merge=lfs -text
|
| 12 |
+
*.model filter=lfs diff=lfs merge=lfs -text
|
| 13 |
+
*.msgpack filter=lfs diff=lfs merge=lfs -text
|
| 14 |
+
*.npy filter=lfs diff=lfs merge=lfs -text
|
| 15 |
+
*.npz filter=lfs diff=lfs merge=lfs -text
|
| 16 |
+
*.onnx filter=lfs diff=lfs merge=lfs -text
|
| 17 |
+
*.ot filter=lfs diff=lfs merge=lfs -text
|
| 18 |
+
*.parquet filter=lfs diff=lfs merge=lfs -text
|
| 19 |
+
*.pb filter=lfs diff=lfs merge=lfs -text
|
| 20 |
+
*.pickle filter=lfs diff=lfs merge=lfs -text
|
| 21 |
+
*.pkl filter=lfs diff=lfs merge=lfs -text
|
| 22 |
+
*.pt filter=lfs diff=lfs merge=lfs -text
|
| 23 |
+
*.pth filter=lfs diff=lfs merge=lfs -text
|
| 24 |
+
*.rar filter=lfs diff=lfs merge=lfs -text
|
| 25 |
+
*.safetensors filter=lfs diff=lfs merge=lfs -text
|
| 26 |
+
saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
| 27 |
+
*.tar.* filter=lfs diff=lfs merge=lfs -text
|
| 28 |
+
*.tar filter=lfs diff=lfs merge=lfs -text
|
| 29 |
+
*.tflite filter=lfs diff=lfs merge=lfs -text
|
| 30 |
+
*.tgz filter=lfs diff=lfs merge=lfs -text
|
| 31 |
+
*.wasm filter=lfs diff=lfs merge=lfs -text
|
| 32 |
+
*.xz filter=lfs diff=lfs merge=lfs -text
|
| 33 |
+
*.zip filter=lfs diff=lfs merge=lfs -text
|
| 34 |
+
*.zst filter=lfs diff=lfs merge=lfs -text
|
| 35 |
+
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
index.html
ADDED
|
@@ -0,0 +1,438 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<!DOCTYPE html>
|
| 2 |
+
<html class="dark" lang="en">
|
| 3 |
+
<head>
|
| 4 |
+
<meta charset="UTF-8">
|
| 5 |
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
| 6 |
+
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
| 7 |
+
<title>AI Image Upscaler</title>
|
| 8 |
+
<link href="https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;700&display=swap" rel="stylesheet"/>
|
| 9 |
+
<link href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined" rel="stylesheet"/>
|
| 10 |
+
<link rel="stylesheet" href="css.css">
|
| 11 |
+
<link rel="stylesheet" href="all.min.css">
|
| 12 |
+
<link rel="stylesheet" href="local.css">
|
| 13 |
+
<link rel="stylesheet" href="new-design.css">
|
| 14 |
+
<meta name='robots' content='index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1'>
|
| 15 |
+
<script src="https://cdn.tailwindcss.com?plugins=forms,container-queries"></script>
|
| 16 |
+
<script>
|
| 17 |
+
tailwind.config = {
|
| 18 |
+
darkMode: "class",
|
| 19 |
+
theme: {
|
| 20 |
+
extend: {
|
| 21 |
+
colors: {
|
| 22 |
+
primary: "hsl(265, 100%, 61%)",
|
| 23 |
+
"background-light": "#f6f6f8",
|
| 24 |
+
"background-dark": "hsl(240, 14%, 5%)",
|
| 25 |
+
"card-dark": "hsl(240, 10%, 7%)",
|
| 26 |
+
"text-primary": "hsl(240, 5%, 90%)",
|
| 27 |
+
"text-muted": "hsl(240, 4%, 65%)",
|
| 28 |
+
},
|
| 29 |
+
fontFamily: {
|
| 30 |
+
display: ["Space Grotesk"],
|
| 31 |
+
},
|
| 32 |
+
borderRadius: {
|
| 33 |
+
DEFAULT: "0.25rem",
|
| 34 |
+
lg: "0.5rem",
|
| 35 |
+
xl: "0.75rem",
|
| 36 |
+
full: "9999px",
|
| 37 |
+
},
|
| 38 |
+
},
|
| 39 |
+
},
|
| 40 |
+
};
|
| 41 |
+
</script>
|
| 42 |
+
<style type="text/tailwindcss">
|
| 43 |
+
.form-select {
|
| 44 |
+
background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='hsl(240, 4%, 65%)' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");
|
| 45 |
+
background-position: right 0.5rem center;
|
| 46 |
+
background-repeat: no-repeat;
|
| 47 |
+
background-size: 1.5em 1.5em;
|
| 48 |
+
padding-right: 2.5rem;
|
| 49 |
+
-webkit-print-color-adjust: exact;
|
| 50 |
+
print-color-adjust: exact;
|
| 51 |
+
}
|
| 52 |
+
.gradient-text {
|
| 53 |
+
background: linear-gradient(90deg, hsl(265, 100%, 61%) 0%, #ff4b8d 100%);
|
| 54 |
+
-webkit-background-clip: text;
|
| 55 |
+
-webkit-text-fill-color: transparent;
|
| 56 |
+
}
|
| 57 |
+
</style>
|
| 58 |
+
</head>
|
| 59 |
+
|
| 60 |
+
<body class="bg-background-dark font-display text-text-primary" data-rsssl="1">
|
| 61 |
+
|
| 62 |
+
<div class="image-loading-box noselect">
|
| 63 |
+
<div class="loading-box show-message-box">
|
| 64 |
+
<div class="loading-content">
|
| 65 |
+
<div class="modern-spinner"></div>
|
| 66 |
+
<div class="loading-text">Enhancing your image...</div>
|
| 67 |
+
<div class="loading-subtext">This may take a few moments</div>
|
| 68 |
+
</div>
|
| 69 |
+
<div class="cancel-upload">Cancel</div>
|
| 70 |
+
</div>
|
| 71 |
+
|
| 72 |
+
<div class="load-error-box show-message-box">
|
| 73 |
+
<img src="" alt="Fail">
|
| 74 |
+
<div class="error-text"></div>
|
| 75 |
+
<div class="button-group">
|
| 76 |
+
<div class="confirm">
|
| 77 |
+
<label for="upload">New Image</label>
|
| 78 |
+
</div>
|
| 79 |
+
<div class="cancel">Cancel</div>
|
| 80 |
+
</div>
|
| 81 |
+
<div class="feed-back-box"></div>
|
| 82 |
+
</div>
|
| 83 |
+
|
| 84 |
+
<div class="load-warning-boxx show-message-box">
|
| 85 |
+
<img src="redX.png" alt="Fail" height="20px" width="20px">
|
| 86 |
+
<div class="warning-text"></div>
|
| 87 |
+
<div class="button-group">
|
| 88 |
+
<div class="confirm">Retry</div>
|
| 89 |
+
<div class="cancel">Cancel</div>
|
| 90 |
+
</div>
|
| 91 |
+
<div class="feed-back-box"></div>
|
| 92 |
+
</div>
|
| 93 |
+
|
| 94 |
+
<div class="oversize-box show-message-box">
|
| 95 |
+
<img src="redX.png" alt="Fail" height="20px" width="20px">
|
| 96 |
+
<div class="warning-text"></div>
|
| 97 |
+
<div class="button-group">
|
| 98 |
+
<div class="confirm">Continue</div>
|
| 99 |
+
<div class="cancel">Cancel</div>
|
| 100 |
+
</div>
|
| 101 |
+
<div class="feed-back-box"></div>
|
| 102 |
+
</div>
|
| 103 |
+
|
| 104 |
+
<div class="load-alert-box show-message-box">
|
| 105 |
+
<img src="redX.png" alt="Fail" height="20px" width="20px">
|
| 106 |
+
<div class="alert-text"></div>
|
| 107 |
+
<div class="button-group">
|
| 108 |
+
<div class="confirm">
|
| 109 |
+
OK
|
| 110 |
+
</div>
|
| 111 |
+
</div>
|
| 112 |
+
<div class="feed-back-box"></div>
|
| 113 |
+
</div>
|
| 114 |
+
</div>
|
| 115 |
+
|
| 116 |
+
<!-- Preview Popup Modal -->
|
| 117 |
+
<div class="preview-popup-overlay" id="previewPopup">
|
| 118 |
+
<div class="preview-popup-content">
|
| 119 |
+
<div class="preview-popup-header">
|
| 120 |
+
<h3 class="preview-popup-title">Image Enhanced Successfully!</h3>
|
| 121 |
+
<button class="preview-popup-close" id="closePreviewPopup">×</button>
|
| 122 |
+
</div>
|
| 123 |
+
|
| 124 |
+
<div class="preview-comparison-container">
|
| 125 |
+
<div class="preview-side">
|
| 126 |
+
<div class="preview-label">Original</div>
|
| 127 |
+
<img src="" alt="Original" class="preview-original-img">
|
| 128 |
+
<div class="preview-resolution original-resolution"></div>
|
| 129 |
+
</div>
|
| 130 |
+
|
| 131 |
+
<div class="preview-divider"></div>
|
| 132 |
+
|
| 133 |
+
<div class="preview-side">
|
| 134 |
+
<div class="preview-label">Enhanced</div>
|
| 135 |
+
<img src="" alt="Enhanced" class="preview-enhanced-img">
|
| 136 |
+
<div class="preview-resolution enhanced-resolution"></div>
|
| 137 |
+
</div>
|
| 138 |
+
</div>
|
| 139 |
+
|
| 140 |
+
<div class="preview-popup-actions">
|
| 141 |
+
<button class="preview-btn preview-btn-secondary" id="newImageBtn">
|
| 142 |
+
<span class="material-symbols-outlined">add_photo_alternate</span>
|
| 143 |
+
New Image
|
| 144 |
+
</button>
|
| 145 |
+
<button class="preview-btn preview-btn-primary" id="downloadPreviewBtn">
|
| 146 |
+
<span class="material-symbols-outlined">download</span>
|
| 147 |
+
Download Enhanced Image
|
| 148 |
+
</button>
|
| 149 |
+
</div>
|
| 150 |
+
</div>
|
| 151 |
+
</div>
|
| 152 |
+
|
| 153 |
+
<div class="photo flex-box" id="bigPlantForm" onselectstart="return false">
|
| 154 |
+
<ul id="right-operate-box" style="position: relative;">
|
| 155 |
+
<li class="refinement active">
|
| 156 |
+
<div class="refinement_top">
|
| 157 |
+
<div class="scale_zoon" style="display: flex; align-items: center; gap: 10px; padding: 10px;">
|
| 158 |
+
<label for="magnification-select" style="color: #fff; font-weight: 500;">Magnification:</label>
|
| 159 |
+
<select id="magnification-select" class="form-select" style="background-color: hsl(240, 10%, 7%); border: 1px solid rgba(255, 255, 255, 0.2); border-radius: 0.5rem; padding: 8px 12px; color: #fff; min-width: 100px;">
|
| 160 |
+
<option value="2">2x</option>
|
| 161 |
+
<option value="4" selected>4x</option>
|
| 162 |
+
<option value="6">6x</option>
|
| 163 |
+
<option value="8">8x</option>
|
| 164 |
+
</select>
|
| 165 |
+
</div>
|
| 166 |
+
</div>
|
| 167 |
+
</li>
|
| 168 |
+
<div class="canvas">
|
| 169 |
+
<div class="canvas_box flex-box">
|
| 170 |
+
<div class="left flex-box active">
|
| 171 |
+
<div class="old-box">
|
| 172 |
+
<img src="" alt="" class="left_img_show">
|
| 173 |
+
<div class="new-select-box"></div>
|
| 174 |
+
<div class="privew-box old-preview"></div>
|
| 175 |
+
<div class="event-box-left"></div>
|
| 176 |
+
</div>
|
| 177 |
+
</div>
|
| 178 |
+
<div class="right flex-box active">
|
| 179 |
+
<div class="img_compare">
|
| 180 |
+
<img src="" alt="" class="right_img_show">
|
| 181 |
+
<div class="new-select-box old-select-box"></div>
|
| 182 |
+
<div class="privew-box new-preview"></div>
|
| 183 |
+
<div class="event-box-right"></div>
|
| 184 |
+
</div>
|
| 185 |
+
</div>
|
| 186 |
+
</div>
|
| 187 |
+
<div class="refinement_bottom flex-box">
|
| 188 |
+
<div class="Original-continer">
|
| 189 |
+
<span class="Original-box">Original: </span>
|
| 190 |
+
</div>
|
| 191 |
+
<div class="icon-container"></div>
|
| 192 |
+
<div class="Output-continer">
|
| 193 |
+
<span class="Output-box">Upscaled: </span>
|
| 194 |
+
</div>
|
| 195 |
+
</div>
|
| 196 |
+
</div>
|
| 197 |
+
<div class="btn switch-menu">
|
| 198 |
+
<div class="flex-box active">
|
| 199 |
+
<div>
|
| 200 |
+
<label for="upload" style="display:none;">
|
| 201 |
+
<span class="click-upload">Upload</span>
|
| 202 |
+
</label>
|
| 203 |
+
<label>
|
| 204 |
+
<span id="drag-zone2" draggable="true" class="reloadImg hollowing" title="Drop Images on me!">Nu Image</span>
|
| 205 |
+
</label>
|
| 206 |
+
|
| 207 |
+
<span id="QueneDropzone" draggable="true" class="hollowing">Add To Quene</span>
|
| 208 |
+
<span id="nextFileButton" class="hollowing">Start Quene</span>
|
| 209 |
+
</div>
|
| 210 |
+
<div>
|
| 211 |
+
<span class="saveBtn">Download</span>
|
| 212 |
+
<canvas id="exportImgBoard" style="display: none;"></canvas>
|
| 213 |
+
<canvas id="temImgBoard" style="display: none;"></canvas>
|
| 214 |
+
</div>
|
| 215 |
+
</div>
|
| 216 |
+
|
| 217 |
+
<div class="flex-box">
|
| 218 |
+
<div>
|
| 219 |
+
<label>
|
| 220 |
+
<span class="reloadImg hollowing">New Image</span>
|
| 221 |
+
</label>
|
| 222 |
+
<span class="hollowing back-remove">Back</span>
|
| 223 |
+
</div>
|
| 224 |
+
<div>
|
| 225 |
+
<span class="crop-btn" style="margin-top: 11px;">Save</span>
|
| 226 |
+
</div>
|
| 227 |
+
</div>
|
| 228 |
+
<a href="" download="" id="exportImg"></a>
|
| 229 |
+
</div>
|
| 230 |
+
</ul>
|
| 231 |
+
</div>
|
| 232 |
+
|
| 233 |
+
<div class="mobile-save-image">
|
| 234 |
+
<div class="image-show-box">
|
| 235 |
+
<div class="show-long-press-save">
|
| 236 |
+
<img src="" alt="edit-image"> <span>Please long press on the image to save it</span>
|
| 237 |
+
</div>
|
| 238 |
+
</div>
|
| 239 |
+
<div style="width: 100%;height: 56px;"></div>
|
| 240 |
+
<div class="back-edit">Back</div>
|
| 241 |
+
</div>
|
| 242 |
+
|
| 243 |
+
<div class="mask"></div>
|
| 244 |
+
<div class="alert-mask"></div>
|
| 245 |
+
<div class="feedback-mask"></div>
|
| 246 |
+
<form action="javascript:;" class="feedback clearfloat" method="post" id="feedback" onsubmit="return checkForm()" name="feedback">
|
| 247 |
+
<div class="feedback_container clearfloat">
|
| 248 |
+
<p class="title">Thanks for your feedback. Please send us your problem or advice. We will reply you ASAP.</p>
|
| 249 |
+
<p>Email:</p>
|
| 250 |
+
<input name="email" type="email" class="form_email" id="mail" placeholder="Enter your email here!">
|
| 251 |
+
<p>Content:</p>
|
| 252 |
+
<textarea name="content" id="form_contents" cols="30" rows="10" form="feedback" placeholder="Please enter your problem or advice." required=""></textarea>
|
| 253 |
+
<input type="hidden" name="f_source" value="3"> <input type="hidden" name="product_id" value="70004">
|
| 254 |
+
<input type="submit" value="Submit" id="form_submit" name="submit" onclick="send_submit()">
|
| 255 |
+
</div>
|
| 256 |
+
</form>
|
| 257 |
+
|
| 258 |
+
<div class="flex flex-col min-h-screen">
|
| 259 |
+
<main class="flex-grow container mx-auto px-4 sm:px-6 lg:px-8 py-16">
|
| 260 |
+
<div class="max-w-4xl mx-auto text-center">
|
| 261 |
+
<h2 class="text-4xl sm:text-5xl font-bold text-white">
|
| 262 |
+
Enhance Your Images with <span class="gradient-text">AI</span>
|
| 263 |
+
</h2>
|
| 264 |
+
<p class="mt-4 text-lg text-text-muted">
|
| 265 |
+
Drag and drop your image, or browse files to upscale your photos to a higher resolution and quality.
|
| 266 |
+
</p>
|
| 267 |
+
</div>
|
| 268 |
+
|
| 269 |
+
<div class="mt-12 max-w-2xl mx-auto">
|
| 270 |
+
<div id="drag-zone" draggable="true" class="relative bg-card-dark border-2 border-dashed border-white/20 rounded-xl p-12 text-center cursor-pointer hover:border-primary/50 transition-colors">
|
| 271 |
+
<div class="flex flex-col items-center justify-center space-y-4 text-text-muted">
|
| 272 |
+
<div class="p-4 bg-gradient-to-r from-primary/10 to-[#ff4b8d]/10 rounded-full">
|
| 273 |
+
<span class="material-symbols-outlined text-6xl text-primary">
|
| 274 |
+
cloud_upload
|
| 275 |
+
</span>
|
| 276 |
+
</div>
|
| 277 |
+
<p class="text-lg font-semibold text-text-primary">
|
| 278 |
+
Drag and drop your image here
|
| 279 |
+
</p>
|
| 280 |
+
<p>or</p>
|
| 281 |
+
<label class="cursor-pointer bg-white/10 text-white font-bold py-2 px-4 rounded-lg text-sm hover:bg-white/20 transition-colors" for="upload" id="uploadBtn">
|
| 282 |
+
<span>Browse Files</span>
|
| 283 |
+
<input class="sr-only" id="upload" name="upload" type="file" accept=".jpg, .jpeg, .png, .bmp"/>
|
| 284 |
+
</label>
|
| 285 |
+
</div>
|
| 286 |
+
</div>
|
| 287 |
+
</div>
|
| 288 |
+
|
| 289 |
+
<div class="mt-12 max-w-2xl mx-auto bg-card-dark p-8 rounded-xl border border-white/10">
|
| 290 |
+
<h3 class="text-2xl font-bold text-white mb-6">
|
| 291 |
+
Upscale Options
|
| 292 |
+
</h3>
|
| 293 |
+
<div class="space-y-6">
|
| 294 |
+
<div class="scale_choose">
|
| 295 |
+
<label class="block text-sm font-medium text-text-muted mb-2">Resolution</label>
|
| 296 |
+
<select class="mt-2 block w-full form-select appearance-none bg-background-dark border border-white/20 rounded-lg shadow-sm py-3 px-4 focus:outline-none focus:ring-primary focus:border-primary sm:text-sm text-text-primary" id="resolution-select">
|
| 297 |
+
<option value="2">2x</option>
|
| 298 |
+
<option value="4" selected>4x</option>
|
| 299 |
+
<option value="6">6x</option>
|
| 300 |
+
<option value="8">8x</option>
|
| 301 |
+
</select>
|
| 302 |
+
|
| 303 |
+
<div class="hidden">
|
| 304 |
+
<input class="scale_change" type="radio" name="check_zoom" id="2X" value="2">
|
| 305 |
+
<input class="scale_change" type="radio" name="check_zoom" id="4X" value="4" checked>
|
| 306 |
+
<input class="scale_change" type="radio" name="check_zoom" id="6X" value="6">
|
| 307 |
+
<input class="scale_change" type="radio" name="check_zoom" id="8X" value="8">
|
| 308 |
+
</div>
|
| 309 |
+
</div>
|
| 310 |
+
|
| 311 |
+
<div>
|
| 312 |
+
<label class="block text-sm font-medium text-text-muted" for="format">File Format</label>
|
| 313 |
+
<select class="mt-2 block w-full form-select appearance-none bg-background-dark border border-white/20 rounded-lg shadow-sm py-3 px-4 focus:outline-none focus:ring-primary focus:border-primary sm:text-sm text-text-primary" id="format" name="format">
|
| 314 |
+
<option>PNG</option>
|
| 315 |
+
<option>JPEG</option>
|
| 316 |
+
<option>WEBP</option>
|
| 317 |
+
</select>
|
| 318 |
+
</div>
|
| 319 |
+
|
| 320 |
+
<div class="slider-option">
|
| 321 |
+
<div class="flex justify-between items-center mb-2">
|
| 322 |
+
<label class="block text-sm font-medium text-text-muted">AI Strength</label>
|
| 323 |
+
<span class="text-sm text-text-primary" id="ai-strength-value">50%</span>
|
| 324 |
+
</div>
|
| 325 |
+
<input type="range" min="0" max="100" value="50" class="upscale-slider" id="ai-strength">
|
| 326 |
+
</div>
|
| 327 |
+
|
| 328 |
+
<div class="slider-option">
|
| 329 |
+
<div class="flex justify-between items-center mb-2">
|
| 330 |
+
<label class="block text-sm font-medium text-text-muted">Clarity</label>
|
| 331 |
+
<span class="text-sm text-text-primary" id="clarity-value">50%</span>
|
| 332 |
+
</div>
|
| 333 |
+
<input type="range" min="0" max="100" value="50" class="upscale-slider" id="clarity">
|
| 334 |
+
</div>
|
| 335 |
+
|
| 336 |
+
<div class="slider-option">
|
| 337 |
+
<div class="flex justify-between items-center mb-2">
|
| 338 |
+
<label class="block text-sm font-medium text-text-muted">Sharpness</label>
|
| 339 |
+
<span class="text-sm text-text-primary" id="sharpness-value">50%</span>
|
| 340 |
+
</div>
|
| 341 |
+
<input type="range" min="0" max="100" value="50" class="upscale-slider" id="sharpness">
|
| 342 |
+
</div>
|
| 343 |
+
|
| 344 |
+
<div class="slider-option">
|
| 345 |
+
<div class="flex justify-between items-center mb-2">
|
| 346 |
+
<label class="block text-sm font-medium text-text-muted">Color Improvement</label>
|
| 347 |
+
<span class="text-sm text-text-primary" id="color-improve-value">50%</span>
|
| 348 |
+
</div>
|
| 349 |
+
<input type="range" min="0" max="100" value="50" class="upscale-slider" id="color-improve">
|
| 350 |
+
</div>
|
| 351 |
+
|
| 352 |
+
<div class="slider-option">
|
| 353 |
+
<div class="flex justify-between items-center mb-2">
|
| 354 |
+
<label class="block text-sm font-medium text-text-muted">Resemblance</label>
|
| 355 |
+
<span class="text-sm text-text-primary" id="resemblance-value">50%</span>
|
| 356 |
+
</div>
|
| 357 |
+
<input type="range" min="0" max="100" value="50" class="upscale-slider" id="resemblance">
|
| 358 |
+
</div>
|
| 359 |
+
</div>
|
| 360 |
+
</div>
|
| 361 |
+
</main>
|
| 362 |
+
</div>
|
| 363 |
+
|
| 364 |
+
<script>
|
| 365 |
+
document.getElementById('resolution-select').addEventListener('change', function() {
|
| 366 |
+
const value = this.value;
|
| 367 |
+
document.querySelectorAll('.scale_change').forEach(radio => {
|
| 368 |
+
if (radio.value === value) {
|
| 369 |
+
radio.checked = true;
|
| 370 |
+
radio.dispatchEvent(new Event('change', { bubbles: true }));
|
| 371 |
+
radio.click();
|
| 372 |
+
} else {
|
| 373 |
+
radio.checked = false;
|
| 374 |
+
}
|
| 375 |
+
});
|
| 376 |
+
});
|
| 377 |
+
|
| 378 |
+
// Magnification dropdown in comparison view
|
| 379 |
+
if (document.getElementById('magnification-select')) {
|
| 380 |
+
document.getElementById('magnification-select').addEventListener('change', function() {
|
| 381 |
+
const value = this.value;
|
| 382 |
+
document.querySelectorAll('.scale_change').forEach(radio => {
|
| 383 |
+
if (radio.value === value) {
|
| 384 |
+
radio.checked = true;
|
| 385 |
+
radio.dispatchEvent(new Event('change', { bubbles: true }));
|
| 386 |
+
radio.click();
|
| 387 |
+
} else {
|
| 388 |
+
radio.checked = false;
|
| 389 |
+
}
|
| 390 |
+
});
|
| 391 |
+
});
|
| 392 |
+
}
|
| 393 |
+
|
| 394 |
+
// Upscale option sliders
|
| 395 |
+
const sliders = [
|
| 396 |
+
{ id: 'ai-strength', valueId: 'ai-strength-value' },
|
| 397 |
+
{ id: 'clarity', valueId: 'clarity-value' },
|
| 398 |
+
{ id: 'sharpness', valueId: 'sharpness-value' },
|
| 399 |
+
{ id: 'color-improve', valueId: 'color-improve-value' },
|
| 400 |
+
{ id: 'resemblance', valueId: 'resemblance-value' }
|
| 401 |
+
];
|
| 402 |
+
|
| 403 |
+
sliders.forEach(slider => {
|
| 404 |
+
const sliderEl = document.getElementById(slider.id);
|
| 405 |
+
const valueEl = document.getElementById(slider.valueId);
|
| 406 |
+
|
| 407 |
+
// Initialize the track fill
|
| 408 |
+
sliderEl.style.setProperty('--slider-percent', sliderEl.value + '%');
|
| 409 |
+
|
| 410 |
+
sliderEl.addEventListener('input', function() {
|
| 411 |
+
valueEl.textContent = this.value + '%';
|
| 412 |
+
this.style.setProperty('--slider-percent', this.value + '%');
|
| 413 |
+
});
|
| 414 |
+
});
|
| 415 |
+
|
| 416 |
+
// Store slider values for potential future API use
|
| 417 |
+
window.upscaleOptions = {
|
| 418 |
+
getOptions: function() {
|
| 419 |
+
return {
|
| 420 |
+
aiStrength: document.getElementById('ai-strength').value,
|
| 421 |
+
clarity: document.getElementById('clarity').value,
|
| 422 |
+
sharpness: document.getElementById('sharpness').value,
|
| 423 |
+
colorImprove: document.getElementById('color-improve').value,
|
| 424 |
+
resemblance: document.getElementById('resemblance').value
|
| 425 |
+
};
|
| 426 |
+
}
|
| 427 |
+
};
|
| 428 |
+
</script>
|
| 429 |
+
|
| 430 |
+
<script src="jsnew_image-upscaler.js"></script>
|
| 431 |
+
<script src="js_aes.js"></script>
|
| 432 |
+
<script src="js_translation.js"></script>
|
| 433 |
+
<script src="js_spark-md5.min.js"></script>
|
| 434 |
+
<script src="js_FileSaver.js"></script>
|
| 435 |
+
<script src="js_free-online-image-upscaler.js"></script>
|
| 436 |
+
<script src="js_quene.js"></script>
|
| 437 |
+
</body>
|
| 438 |
+
</html>
|
js_FileSaver.js
ADDED
|
@@ -0,0 +1,87 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
(function(a, b) {
|
| 2 |
+
if ("function" == typeof define && define.amd) define([], b);
|
| 3 |
+
else if ("undefined" != typeof exports) b();
|
| 4 |
+
else {
|
| 5 |
+
b(), a.FileSaver = {
|
| 6 |
+
exports: {}
|
| 7 |
+
}.exports
|
| 8 |
+
}
|
| 9 |
+
})(this, function() {
|
| 10 |
+
"use strict";
|
| 11 |
+
|
| 12 |
+
function b(a, b) {
|
| 13 |
+
return "undefined" == typeof b ? b = {
|
| 14 |
+
autoBom: !1
|
| 15 |
+
} : "object" != typeof b && (console.warn("Deprecated: Expected third argument to be a object"), b = {
|
| 16 |
+
autoBom: !b
|
| 17 |
+
}), b.autoBom && /^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(a.type) ? new Blob(["\uFEFF", a], {
|
| 18 |
+
type: a.type
|
| 19 |
+
}) : a
|
| 20 |
+
}
|
| 21 |
+
|
| 22 |
+
function c(a, b, c) {
|
| 23 |
+
var d = new XMLHttpRequest;
|
| 24 |
+
d.open("GET", a), d.responseType = "blob", d.onload = function() {
|
| 25 |
+
g(d.response, b, c)
|
| 26 |
+
}, d.onerror = function() {
|
| 27 |
+
console.error("could not download file")
|
| 28 |
+
}, d.send()
|
| 29 |
+
}
|
| 30 |
+
|
| 31 |
+
function d(a) {
|
| 32 |
+
var b = new XMLHttpRequest;
|
| 33 |
+
b.open("HEAD", a, !1);
|
| 34 |
+
try {
|
| 35 |
+
b.send()
|
| 36 |
+
} catch (a) {}
|
| 37 |
+
return 200 <= b.status && 299 >= b.status
|
| 38 |
+
}
|
| 39 |
+
|
| 40 |
+
function e(a) {
|
| 41 |
+
try {
|
| 42 |
+
a.dispatchEvent(new MouseEvent("click"))
|
| 43 |
+
} catch (c) {
|
| 44 |
+
var b = document.createEvent("MouseEvents");
|
| 45 |
+
b.initMouseEvent("click", !0, !0, window, 0, 0, 0, 80, 20, !1, !1, !1, !1, 0, null), a.dispatchEvent(b)
|
| 46 |
+
}
|
| 47 |
+
}
|
| 48 |
+
var f = "object" == typeof window && window.window === window ? window : "object" == typeof self && self.self === self ? self : "object" == typeof global && global.global === global ? global : void 0,
|
| 49 |
+
a = /Macintosh/.test(navigator.userAgent) && /AppleWebKit/.test(navigator.userAgent) && !/Safari/.test(navigator.userAgent),
|
| 50 |
+
g = f.saveAs || ("object" != typeof window || window !== f ? function() {} : "download" in HTMLAnchorElement.prototype && !a ? function(b, g, h) {
|
| 51 |
+
var i = f.URL || f.webkitURL,
|
| 52 |
+
j = document.createElement("a");
|
| 53 |
+
g = g || b.name || "download", j.download = g, j.rel = "noopener", "string" == typeof b ? (j.href = b, j.origin === location.origin ? e(j) : d(j.href) ? c(b, g, h) : e(j, j.target = "_blank")) : (j.href = i.createObjectURL(b), setTimeout(function() {
|
| 54 |
+
i.revokeObjectURL(j.href)
|
| 55 |
+
}, 4E4), setTimeout(function() {
|
| 56 |
+
e(j)
|
| 57 |
+
}, 0))
|
| 58 |
+
} : "msSaveOrOpenBlob" in navigator ? function(f, g, h) {
|
| 59 |
+
if (g = g || f.name || "download", "string" != typeof f) navigator.msSaveOrOpenBlob(b(f, h), g);
|
| 60 |
+
else if (d(f)) c(f, g, h);
|
| 61 |
+
else {
|
| 62 |
+
var i = document.createElement("a");
|
| 63 |
+
i.href = f, i.target = "_blank", setTimeout(function() {
|
| 64 |
+
e(i)
|
| 65 |
+
})
|
| 66 |
+
}
|
| 67 |
+
} : function(b, d, e, g) {
|
| 68 |
+
if (g = g || open("", "_blank"), g && (g.document.title = g.document.body.innerText = "downloading..."), "string" == typeof b) return c(b, d, e);
|
| 69 |
+
var h = "application/octet-stream" === b.type,
|
| 70 |
+
i = /constructor/i.test(f.HTMLElement) || f.safari,
|
| 71 |
+
j = /CriOS\/[\d]+/.test(navigator.userAgent);
|
| 72 |
+
if ((j || h && i || a) && "undefined" != typeof FileReader) {
|
| 73 |
+
var k = new FileReader;
|
| 74 |
+
k.onloadend = function() {
|
| 75 |
+
var a = k.result;
|
| 76 |
+
a = j ? a : a.replace(/^data:[^;]*;/, "data:attachment/file;"), g ? g.location.href = a : location = a, g = null
|
| 77 |
+
}, k.readAsDataURL(b)
|
| 78 |
+
} else {
|
| 79 |
+
var l = f.URL || f.webkitURL,
|
| 80 |
+
m = l.createObjectURL(b);
|
| 81 |
+
g ? g.location = m : location.href = m, g = null, setTimeout(function() {
|
| 82 |
+
l.revokeObjectURL(m)
|
| 83 |
+
}, 4E4)
|
| 84 |
+
}
|
| 85 |
+
});
|
| 86 |
+
f.saveAs = g.saveAs = g, "undefined" != typeof module && (module.exports = g)
|
| 87 |
+
});
|
js_aes.js
ADDED
|
@@ -0,0 +1,1880 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
! function(t, e) {
|
| 2 |
+
"object" == typeof exports ? module.exports = exports = e() : "function" == typeof define && define.amd ? define([], e) : t.CryptoJS = e()
|
| 3 |
+
}(this, function() {
|
| 4 |
+
var h, t, e, r, i, n, f, o, s, c, a, l, d, m, x, b, H, z, A, u, p, _, v, y, g, B, w, k, S, C, D, E, R, M, F, P, W, O, I, U, K, X, L, j, N, T, q, Z, V, G, J, $, Q, Y, tt, et, rt, it, nt, ot, st, ct, at, ht, lt, ft, dt, ut, pt, _t, vt, yt, gt, Bt, wt, kt, St, bt = bt || function(l) {
|
| 5 |
+
var t;
|
| 6 |
+
if ("undefined" != typeof window && window.crypto && (t = window.crypto), !t && "undefined" != typeof window && window.msCrypto && (t = window.msCrypto), !t && "undefined" != typeof global && global.crypto && (t = global.crypto), !t && "function" == typeof require) try {
|
| 7 |
+
t = require("crypto")
|
| 8 |
+
} catch (t) {}
|
| 9 |
+
|
| 10 |
+
function i() {
|
| 11 |
+
if (t) {
|
| 12 |
+
if ("function" == typeof t.getRandomValues) try {
|
| 13 |
+
return t.getRandomValues(new Uint32Array(1))[0]
|
| 14 |
+
} catch (t) {}
|
| 15 |
+
if ("function" == typeof t.randomBytes) try {
|
| 16 |
+
return t.randomBytes(4).readInt32LE()
|
| 17 |
+
} catch (t) {}
|
| 18 |
+
}
|
| 19 |
+
throw new Error("Native crypto module could not be used to get secure random number.")
|
| 20 |
+
}
|
| 21 |
+
var r = Object.create || function(t) {
|
| 22 |
+
var e;
|
| 23 |
+
return n.prototype = t, e = new n, n.prototype = null, e
|
| 24 |
+
};
|
| 25 |
+
|
| 26 |
+
function n() {}
|
| 27 |
+
var e = {},
|
| 28 |
+
o = e.lib = {},
|
| 29 |
+
s = o.Base = {
|
| 30 |
+
extend: function(t) {
|
| 31 |
+
var e = r(this);
|
| 32 |
+
return t && e.mixIn(t), e.hasOwnProperty("init") && this.init !== e.init || (e.init = function() {
|
| 33 |
+
e.$super.init.apply(this, arguments)
|
| 34 |
+
}), (e.init.prototype = e).$super = this, e
|
| 35 |
+
},
|
| 36 |
+
create: function() {
|
| 37 |
+
var t = this.extend();
|
| 38 |
+
return t.init.apply(t, arguments), t
|
| 39 |
+
},
|
| 40 |
+
init: function() {},
|
| 41 |
+
mixIn: function(t) {
|
| 42 |
+
for (var e in t) t.hasOwnProperty(e) && (this[e] = t[e]);
|
| 43 |
+
t.hasOwnProperty("toString") && (this.toString = t.toString)
|
| 44 |
+
},
|
| 45 |
+
clone: function() {
|
| 46 |
+
return this.init.prototype.extend(this)
|
| 47 |
+
}
|
| 48 |
+
},
|
| 49 |
+
f = o.WordArray = s.extend({
|
| 50 |
+
init: function(t, e) {
|
| 51 |
+
t = this.words = t || [], this.sigBytes = null != e ? e : 4 * t.length
|
| 52 |
+
},
|
| 53 |
+
toString: function(t) {
|
| 54 |
+
return (t || a).stringify(this)
|
| 55 |
+
},
|
| 56 |
+
concat: function(t) {
|
| 57 |
+
var e = this.words,
|
| 58 |
+
r = t.words,
|
| 59 |
+
i = this.sigBytes,
|
| 60 |
+
n = t.sigBytes;
|
| 61 |
+
if (this.clamp(), i % 4)
|
| 62 |
+
for (var o = 0; o < n; o++) {
|
| 63 |
+
var s = r[o >>> 2] >>> 24 - o % 4 * 8 & 255;
|
| 64 |
+
e[i + o >>> 2] |= s << 24 - (i + o) % 4 * 8
|
| 65 |
+
} else
|
| 66 |
+
for (o = 0; o < n; o += 4) e[i + o >>> 2] = r[o >>> 2];
|
| 67 |
+
return this.sigBytes += n, this
|
| 68 |
+
},
|
| 69 |
+
clamp: function() {
|
| 70 |
+
var t = this.words,
|
| 71 |
+
e = this.sigBytes;
|
| 72 |
+
t[e >>> 2] &= 4294967295 << 32 - e % 4 * 8, t.length = l.ceil(e / 4)
|
| 73 |
+
},
|
| 74 |
+
clone: function() {
|
| 75 |
+
var t = s.clone.call(this);
|
| 76 |
+
return t.words = this.words.slice(0), t
|
| 77 |
+
},
|
| 78 |
+
random: function(t) {
|
| 79 |
+
for (var e = [], r = 0; r < t; r += 4) e.push(i());
|
| 80 |
+
return new f.init(e, t)
|
| 81 |
+
}
|
| 82 |
+
}),
|
| 83 |
+
c = e.enc = {},
|
| 84 |
+
a = c.Hex = {
|
| 85 |
+
stringify: function(t) {
|
| 86 |
+
for (var e = t.words, r = t.sigBytes, i = [], n = 0; n < r; n++) {
|
| 87 |
+
var o = e[n >>> 2] >>> 24 - n % 4 * 8 & 255;
|
| 88 |
+
i.push((o >>> 4).toString(16)), i.push((15 & o).toString(16))
|
| 89 |
+
}
|
| 90 |
+
return i.join("")
|
| 91 |
+
},
|
| 92 |
+
parse: function(t) {
|
| 93 |
+
for (var e = t.length, r = [], i = 0; i < e; i += 2) r[i >>> 3] |= parseInt(t.substr(i, 2), 16) << 24 - i % 8 * 4;
|
| 94 |
+
return new f.init(r, e / 2)
|
| 95 |
+
}
|
| 96 |
+
},
|
| 97 |
+
h = c.Latin1 = {
|
| 98 |
+
stringify: function(t) {
|
| 99 |
+
for (var e = t.words, r = t.sigBytes, i = [], n = 0; n < r; n++) {
|
| 100 |
+
var o = e[n >>> 2] >>> 24 - n % 4 * 8 & 255;
|
| 101 |
+
i.push(String.fromCharCode(o))
|
| 102 |
+
}
|
| 103 |
+
return i.join("")
|
| 104 |
+
},
|
| 105 |
+
parse: function(t) {
|
| 106 |
+
for (var e = t.length, r = [], i = 0; i < e; i++) r[i >>> 2] |= (255 & t.charCodeAt(i)) << 24 - i % 4 * 8;
|
| 107 |
+
return new f.init(r, e)
|
| 108 |
+
}
|
| 109 |
+
},
|
| 110 |
+
d = c.Utf8 = {
|
| 111 |
+
stringify: function(t) {
|
| 112 |
+
try {
|
| 113 |
+
return decodeURIComponent(escape(h.stringify(t)))
|
| 114 |
+
} catch (t) {
|
| 115 |
+
throw new Error("Malformed UTF-8 data")
|
| 116 |
+
}
|
| 117 |
+
},
|
| 118 |
+
parse: function(t) {
|
| 119 |
+
return h.parse(unescape(encodeURIComponent(t)))
|
| 120 |
+
}
|
| 121 |
+
},
|
| 122 |
+
u = o.BufferedBlockAlgorithm = s.extend({
|
| 123 |
+
reset: function() {
|
| 124 |
+
this._data = new f.init, this._nDataBytes = 0
|
| 125 |
+
},
|
| 126 |
+
_append: function(t) {
|
| 127 |
+
"string" == typeof t && (t = d.parse(t)), this._data.concat(t), this._nDataBytes += t.sigBytes
|
| 128 |
+
},
|
| 129 |
+
_process: function(t) {
|
| 130 |
+
var e, r = this._data,
|
| 131 |
+
i = r.words,
|
| 132 |
+
n = r.sigBytes,
|
| 133 |
+
o = this.blockSize,
|
| 134 |
+
s = n / (4 * o),
|
| 135 |
+
c = (s = t ? l.ceil(s) : l.max((0 | s) - this._minBufferSize, 0)) * o,
|
| 136 |
+
a = l.min(4 * c, n);
|
| 137 |
+
if (c) {
|
| 138 |
+
for (var h = 0; h < c; h += o) this._doProcessBlock(i, h);
|
| 139 |
+
e = i.splice(0, c), r.sigBytes -= a
|
| 140 |
+
}
|
| 141 |
+
return new f.init(e, a)
|
| 142 |
+
},
|
| 143 |
+
clone: function() {
|
| 144 |
+
var t = s.clone.call(this);
|
| 145 |
+
return t._data = this._data.clone(), t
|
| 146 |
+
},
|
| 147 |
+
_minBufferSize: 0
|
| 148 |
+
}),
|
| 149 |
+
p = (o.Hasher = u.extend({
|
| 150 |
+
cfg: s.extend(),
|
| 151 |
+
init: function(t) {
|
| 152 |
+
this.cfg = this.cfg.extend(t), this.reset()
|
| 153 |
+
},
|
| 154 |
+
reset: function() {
|
| 155 |
+
u.reset.call(this), this._doReset()
|
| 156 |
+
},
|
| 157 |
+
update: function(t) {
|
| 158 |
+
return this._append(t), this._process(), this
|
| 159 |
+
},
|
| 160 |
+
finalize: function(t) {
|
| 161 |
+
return t && this._append(t), this._doFinalize()
|
| 162 |
+
},
|
| 163 |
+
blockSize: 16,
|
| 164 |
+
_createHelper: function(r) {
|
| 165 |
+
return function(t, e) {
|
| 166 |
+
return new r.init(e).finalize(t)
|
| 167 |
+
}
|
| 168 |
+
},
|
| 169 |
+
_createHmacHelper: function(r) {
|
| 170 |
+
return function(t, e) {
|
| 171 |
+
return new p.HMAC.init(r, e).finalize(t)
|
| 172 |
+
}
|
| 173 |
+
}
|
| 174 |
+
}), e.algo = {});
|
| 175 |
+
return e
|
| 176 |
+
}(Math);
|
| 177 |
+
|
| 178 |
+
function mt(t, e, r) {
|
| 179 |
+
return t ^ e ^ r
|
| 180 |
+
}
|
| 181 |
+
|
| 182 |
+
function xt(t, e, r) {
|
| 183 |
+
return t & e | ~t & r
|
| 184 |
+
}
|
| 185 |
+
|
| 186 |
+
function Ht(t, e, r) {
|
| 187 |
+
return (t | ~e) ^ r
|
| 188 |
+
}
|
| 189 |
+
|
| 190 |
+
function zt(t, e, r) {
|
| 191 |
+
return t & r | e & ~r
|
| 192 |
+
}
|
| 193 |
+
|
| 194 |
+
function At(t, e, r) {
|
| 195 |
+
return t ^ (e | ~r)
|
| 196 |
+
}
|
| 197 |
+
|
| 198 |
+
function Ct(t, e) {
|
| 199 |
+
return t << e | t >>> 32 - e
|
| 200 |
+
}
|
| 201 |
+
|
| 202 |
+
function Dt(t, e, r, i) {
|
| 203 |
+
var n, o = this._iv;
|
| 204 |
+
o ? (n = o.slice(0), this._iv = void 0) : n = this._prevBlock, i.encryptBlock(n, 0);
|
| 205 |
+
for (var s = 0; s < r; s++) t[e + s] ^= n[s]
|
| 206 |
+
}
|
| 207 |
+
|
| 208 |
+
function Et(t) {
|
| 209 |
+
if (255 == (t >> 24 & 255)) {
|
| 210 |
+
var e = t >> 16 & 255,
|
| 211 |
+
r = t >> 8 & 255,
|
| 212 |
+
i = 255 & t;
|
| 213 |
+
255 === e ? (e = 0, 255 === r ? (r = 0, 255 === i ? i = 0 : ++i) : ++r) : ++e, t = 0, t += e << 16, t += r << 8, t += i
|
| 214 |
+
} else t += 1 << 24;
|
| 215 |
+
return t
|
| 216 |
+
}
|
| 217 |
+
|
| 218 |
+
function Rt() {
|
| 219 |
+
for (var t = this._X, e = this._C, r = 0; r < 8; r++) ft[r] = e[r];
|
| 220 |
+
e[0] = e[0] + 1295307597 + this._b | 0, e[1] = e[1] + 3545052371 + (e[0] >>> 0 < ft[0] >>> 0 ? 1 : 0) | 0, e[2] = e[2] + 886263092 + (e[1] >>> 0 < ft[1] >>> 0 ? 1 : 0) | 0, e[3] = e[3] + 1295307597 + (e[2] >>> 0 < ft[2] >>> 0 ? 1 : 0) | 0, e[4] = e[4] + 3545052371 + (e[3] >>> 0 < ft[3] >>> 0 ? 1 : 0) | 0, e[5] = e[5] + 886263092 + (e[4] >>> 0 < ft[4] >>> 0 ? 1 : 0) | 0, e[6] = e[6] + 1295307597 + (e[5] >>> 0 < ft[5] >>> 0 ? 1 : 0) | 0, e[7] = e[7] + 3545052371 + (e[6] >>> 0 < ft[6] >>> 0 ? 1 : 0) | 0, this._b = e[7] >>> 0 < ft[7] >>> 0 ? 1 : 0;
|
| 221 |
+
for (r = 0; r < 8; r++) {
|
| 222 |
+
var i = t[r] + e[r],
|
| 223 |
+
n = 65535 & i,
|
| 224 |
+
o = i >>> 16,
|
| 225 |
+
s = ((n * n >>> 17) + n * o >>> 15) + o * o,
|
| 226 |
+
c = ((4294901760 & i) * i | 0) + ((65535 & i) * i | 0);
|
| 227 |
+
dt[r] = s ^ c
|
| 228 |
+
}
|
| 229 |
+
t[0] = dt[0] + (dt[7] << 16 | dt[7] >>> 16) + (dt[6] << 16 | dt[6] >>> 16) | 0, t[1] = dt[1] + (dt[0] << 8 | dt[0] >>> 24) + dt[7] | 0, t[2] = dt[2] + (dt[1] << 16 | dt[1] >>> 16) + (dt[0] << 16 | dt[0] >>> 16) | 0, t[3] = dt[3] + (dt[2] << 8 | dt[2] >>> 24) + dt[1] | 0, t[4] = dt[4] + (dt[3] << 16 | dt[3] >>> 16) + (dt[2] << 16 | dt[2] >>> 16) | 0, t[5] = dt[5] + (dt[4] << 8 | dt[4] >>> 24) + dt[3] | 0, t[6] = dt[6] + (dt[5] << 16 | dt[5] >>> 16) + (dt[4] << 16 | dt[4] >>> 16) | 0, t[7] = dt[7] + (dt[6] << 8 | dt[6] >>> 24) + dt[5] | 0
|
| 230 |
+
}
|
| 231 |
+
|
| 232 |
+
function Mt() {
|
| 233 |
+
for (var t = this._X, e = this._C, r = 0; r < 8; r++) wt[r] = e[r];
|
| 234 |
+
e[0] = e[0] + 1295307597 + this._b | 0, e[1] = e[1] + 3545052371 + (e[0] >>> 0 < wt[0] >>> 0 ? 1 : 0) | 0, e[2] = e[2] + 886263092 + (e[1] >>> 0 < wt[1] >>> 0 ? 1 : 0) | 0, e[3] = e[3] + 1295307597 + (e[2] >>> 0 < wt[2] >>> 0 ? 1 : 0) | 0, e[4] = e[4] + 3545052371 + (e[3] >>> 0 < wt[3] >>> 0 ? 1 : 0) | 0, e[5] = e[5] + 886263092 + (e[4] >>> 0 < wt[4] >>> 0 ? 1 : 0) | 0, e[6] = e[6] + 1295307597 + (e[5] >>> 0 < wt[5] >>> 0 ? 1 : 0) | 0, e[7] = e[7] + 3545052371 + (e[6] >>> 0 < wt[6] >>> 0 ? 1 : 0) | 0, this._b = e[7] >>> 0 < wt[7] >>> 0 ? 1 : 0;
|
| 235 |
+
for (r = 0; r < 8; r++) {
|
| 236 |
+
var i = t[r] + e[r],
|
| 237 |
+
n = 65535 & i,
|
| 238 |
+
o = i >>> 16,
|
| 239 |
+
s = ((n * n >>> 17) + n * o >>> 15) + o * o,
|
| 240 |
+
c = ((4294901760 & i) * i | 0) + ((65535 & i) * i | 0);
|
| 241 |
+
kt[r] = s ^ c
|
| 242 |
+
}
|
| 243 |
+
t[0] = kt[0] + (kt[7] << 16 | kt[7] >>> 16) + (kt[6] << 16 | kt[6] >>> 16) | 0, t[1] = kt[1] + (kt[0] << 8 | kt[0] >>> 24) + kt[7] | 0, t[2] = kt[2] + (kt[1] << 16 | kt[1] >>> 16) + (kt[0] << 16 | kt[0] >>> 16) | 0, t[3] = kt[3] + (kt[2] << 8 | kt[2] >>> 24) + kt[1] | 0, t[4] = kt[4] + (kt[3] << 16 | kt[3] >>> 16) + (kt[2] << 16 | kt[2] >>> 16) | 0, t[5] = kt[5] + (kt[4] << 8 | kt[4] >>> 24) + kt[3] | 0, t[6] = kt[6] + (kt[5] << 16 | kt[5] >>> 16) + (kt[4] << 16 | kt[4] >>> 16) | 0, t[7] = kt[7] + (kt[6] << 8 | kt[6] >>> 24) + kt[5] | 0
|
| 244 |
+
}
|
| 245 |
+
return h = bt.lib.WordArray, bt.enc.Base64 = {
|
| 246 |
+
stringify: function(t) {
|
| 247 |
+
var e = t.words,
|
| 248 |
+
r = t.sigBytes,
|
| 249 |
+
i = this._map;
|
| 250 |
+
t.clamp();
|
| 251 |
+
for (var n = [], o = 0; o < r; o += 3)
|
| 252 |
+
for (var s = (e[o >>> 2] >>> 24 - o % 4 * 8 & 255) << 16 | (e[o + 1 >>> 2] >>> 24 - (o + 1) % 4 * 8 & 255) << 8 | e[o + 2 >>> 2] >>> 24 - (o + 2) % 4 * 8 & 255, c = 0; c < 4 && o + .75 * c < r; c++) n.push(i.charAt(s >>> 6 * (3 - c) & 63));
|
| 253 |
+
var a = i.charAt(64);
|
| 254 |
+
if (a)
|
| 255 |
+
for (; n.length % 4;) n.push(a);
|
| 256 |
+
return n.join("")
|
| 257 |
+
},
|
| 258 |
+
parse: function(t) {
|
| 259 |
+
var e = t.length,
|
| 260 |
+
r = this._map,
|
| 261 |
+
i = this._reverseMap;
|
| 262 |
+
if (!i) {
|
| 263 |
+
i = this._reverseMap = [];
|
| 264 |
+
for (var n = 0; n < r.length; n++) i[r.charCodeAt(n)] = n
|
| 265 |
+
}
|
| 266 |
+
var o = r.charAt(64);
|
| 267 |
+
if (o) {
|
| 268 |
+
var s = t.indexOf(o); - 1 !== s && (e = s)
|
| 269 |
+
}
|
| 270 |
+
return function(t, e, r) {
|
| 271 |
+
for (var i = [], n = 0, o = 0; o < e; o++)
|
| 272 |
+
if (o % 4) {
|
| 273 |
+
var s = r[t.charCodeAt(o - 1)] << o % 4 * 2,
|
| 274 |
+
c = r[t.charCodeAt(o)] >>> 6 - o % 4 * 2,
|
| 275 |
+
a = s | c;
|
| 276 |
+
i[n >>> 2] |= a << 24 - n % 4 * 8, n++
|
| 277 |
+
} return h.create(i, n)
|
| 278 |
+
}(t, e, i)
|
| 279 |
+
},
|
| 280 |
+
_map: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="
|
| 281 |
+
},
|
| 282 |
+
function(l) {
|
| 283 |
+
var t = bt,
|
| 284 |
+
e = t.lib,
|
| 285 |
+
r = e.WordArray,
|
| 286 |
+
i = e.Hasher,
|
| 287 |
+
n = t.algo,
|
| 288 |
+
H = [];
|
| 289 |
+
! function() {
|
| 290 |
+
for (var t = 0; t < 64; t++) H[t] = 4294967296 * l.abs(l.sin(t + 1)) | 0
|
| 291 |
+
}();
|
| 292 |
+
var o = n.MD5 = i.extend({
|
| 293 |
+
_doReset: function() {
|
| 294 |
+
this._hash = new r.init([1732584193, 4023233417, 2562383102, 271733878])
|
| 295 |
+
},
|
| 296 |
+
_doProcessBlock: function(t, e) {
|
| 297 |
+
for (var r = 0; r < 16; r++) {
|
| 298 |
+
var i = e + r,
|
| 299 |
+
n = t[i];
|
| 300 |
+
t[i] = 16711935 & (n << 8 | n >>> 24) | 4278255360 & (n << 24 | n >>> 8)
|
| 301 |
+
}
|
| 302 |
+
var o = this._hash.words,
|
| 303 |
+
s = t[e + 0],
|
| 304 |
+
c = t[e + 1],
|
| 305 |
+
a = t[e + 2],
|
| 306 |
+
h = t[e + 3],
|
| 307 |
+
l = t[e + 4],
|
| 308 |
+
f = t[e + 5],
|
| 309 |
+
d = t[e + 6],
|
| 310 |
+
u = t[e + 7],
|
| 311 |
+
p = t[e + 8],
|
| 312 |
+
_ = t[e + 9],
|
| 313 |
+
v = t[e + 10],
|
| 314 |
+
y = t[e + 11],
|
| 315 |
+
g = t[e + 12],
|
| 316 |
+
B = t[e + 13],
|
| 317 |
+
w = t[e + 14],
|
| 318 |
+
k = t[e + 15],
|
| 319 |
+
S = o[0],
|
| 320 |
+
m = o[1],
|
| 321 |
+
x = o[2],
|
| 322 |
+
b = o[3];
|
| 323 |
+
S = z(S, m, x, b, s, 7, H[0]), b = z(b, S, m, x, c, 12, H[1]), x = z(x, b, S, m, a, 17, H[2]), m = z(m, x, b, S, h, 22, H[3]), S = z(S, m, x, b, l, 7, H[4]), b = z(b, S, m, x, f, 12, H[5]), x = z(x, b, S, m, d, 17, H[6]), m = z(m, x, b, S, u, 22, H[7]), S = z(S, m, x, b, p, 7, H[8]), b = z(b, S, m, x, _, 12, H[9]), x = z(x, b, S, m, v, 17, H[10]), m = z(m, x, b, S, y, 22, H[11]), S = z(S, m, x, b, g, 7, H[12]), b = z(b, S, m, x, B, 12, H[13]), x = z(x, b, S, m, w, 17, H[14]), S = A(S, m = z(m, x, b, S, k, 22, H[15]), x, b, c, 5, H[16]), b = A(b, S, m, x, d, 9, H[17]), x = A(x, b, S, m, y, 14, H[18]), m = A(m, x, b, S, s, 20, H[19]), S = A(S, m, x, b, f, 5, H[20]), b = A(b, S, m, x, v, 9, H[21]), x = A(x, b, S, m, k, 14, H[22]), m = A(m, x, b, S, l, 20, H[23]), S = A(S, m, x, b, _, 5, H[24]), b = A(b, S, m, x, w, 9, H[25]), x = A(x, b, S, m, h, 14, H[26]), m = A(m, x, b, S, p, 20, H[27]), S = A(S, m, x, b, B, 5, H[28]), b = A(b, S, m, x, a, 9, H[29]), x = A(x, b, S, m, u, 14, H[30]), S = C(S, m = A(m, x, b, S, g, 20, H[31]), x, b, f, 4, H[32]), b = C(b, S, m, x, p, 11, H[33]), x = C(x, b, S, m, y, 16, H[34]), m = C(m, x, b, S, w, 23, H[35]), S = C(S, m, x, b, c, 4, H[36]), b = C(b, S, m, x, l, 11, H[37]), x = C(x, b, S, m, u, 16, H[38]), m = C(m, x, b, S, v, 23, H[39]), S = C(S, m, x, b, B, 4, H[40]), b = C(b, S, m, x, s, 11, H[41]), x = C(x, b, S, m, h, 16, H[42]), m = C(m, x, b, S, d, 23, H[43]), S = C(S, m, x, b, _, 4, H[44]), b = C(b, S, m, x, g, 11, H[45]), x = C(x, b, S, m, k, 16, H[46]), S = D(S, m = C(m, x, b, S, a, 23, H[47]), x, b, s, 6, H[48]), b = D(b, S, m, x, u, 10, H[49]), x = D(x, b, S, m, w, 15, H[50]), m = D(m, x, b, S, f, 21, H[51]), S = D(S, m, x, b, g, 6, H[52]), b = D(b, S, m, x, h, 10, H[53]), x = D(x, b, S, m, v, 15, H[54]), m = D(m, x, b, S, c, 21, H[55]), S = D(S, m, x, b, p, 6, H[56]), b = D(b, S, m, x, k, 10, H[57]), x = D(x, b, S, m, d, 15, H[58]), m = D(m, x, b, S, B, 21, H[59]), S = D(S, m, x, b, l, 6, H[60]), b = D(b, S, m, x, y, 10, H[61]), x = D(x, b, S, m, a, 15, H[62]), m = D(m, x, b, S, _, 21, H[63]), o[0] = o[0] + S | 0, o[1] = o[1] + m | 0, o[2] = o[2] + x | 0, o[3] = o[3] + b | 0
|
| 324 |
+
},
|
| 325 |
+
_doFinalize: function() {
|
| 326 |
+
var t = this._data,
|
| 327 |
+
e = t.words,
|
| 328 |
+
r = 8 * this._nDataBytes,
|
| 329 |
+
i = 8 * t.sigBytes;
|
| 330 |
+
e[i >>> 5] |= 128 << 24 - i % 32;
|
| 331 |
+
var n = l.floor(r / 4294967296),
|
| 332 |
+
o = r;
|
| 333 |
+
e[15 + (64 + i >>> 9 << 4)] = 16711935 & (n << 8 | n >>> 24) | 4278255360 & (n << 24 | n >>> 8), e[14 + (64 + i >>> 9 << 4)] = 16711935 & (o << 8 | o >>> 24) | 4278255360 & (o << 24 | o >>> 8), t.sigBytes = 4 * (e.length + 1), this._process();
|
| 334 |
+
for (var s = this._hash, c = s.words, a = 0; a < 4; a++) {
|
| 335 |
+
var h = c[a];
|
| 336 |
+
c[a] = 16711935 & (h << 8 | h >>> 24) | 4278255360 & (h << 24 | h >>> 8)
|
| 337 |
+
}
|
| 338 |
+
return s
|
| 339 |
+
},
|
| 340 |
+
clone: function() {
|
| 341 |
+
var t = i.clone.call(this);
|
| 342 |
+
return t._hash = this._hash.clone(), t
|
| 343 |
+
}
|
| 344 |
+
});
|
| 345 |
+
|
| 346 |
+
function z(t, e, r, i, n, o, s) {
|
| 347 |
+
var c = t + (e & r | ~e & i) + n + s;
|
| 348 |
+
return (c << o | c >>> 32 - o) + e
|
| 349 |
+
}
|
| 350 |
+
|
| 351 |
+
function A(t, e, r, i, n, o, s) {
|
| 352 |
+
var c = t + (e & i | r & ~i) + n + s;
|
| 353 |
+
return (c << o | c >>> 32 - o) + e
|
| 354 |
+
}
|
| 355 |
+
|
| 356 |
+
function C(t, e, r, i, n, o, s) {
|
| 357 |
+
var c = t + (e ^ r ^ i) + n + s;
|
| 358 |
+
return (c << o | c >>> 32 - o) + e
|
| 359 |
+
}
|
| 360 |
+
|
| 361 |
+
function D(t, e, r, i, n, o, s) {
|
| 362 |
+
var c = t + (r ^ (e | ~i)) + n + s;
|
| 363 |
+
return (c << o | c >>> 32 - o) + e
|
| 364 |
+
}
|
| 365 |
+
t.MD5 = i._createHelper(o), t.HmacMD5 = i._createHmacHelper(o)
|
| 366 |
+
}(Math), e = (t = bt).lib, r = e.WordArray, i = e.Hasher, n = t.algo, f = [], o = n.SHA1 = i.extend({
|
| 367 |
+
_doReset: function() {
|
| 368 |
+
this._hash = new r.init([1732584193, 4023233417, 2562383102, 271733878, 3285377520])
|
| 369 |
+
},
|
| 370 |
+
_doProcessBlock: function(t, e) {
|
| 371 |
+
for (var r = this._hash.words, i = r[0], n = r[1], o = r[2], s = r[3], c = r[4], a = 0; a < 80; a++) {
|
| 372 |
+
if (a < 16) f[a] = 0 | t[e + a];
|
| 373 |
+
else {
|
| 374 |
+
var h = f[a - 3] ^ f[a - 8] ^ f[a - 14] ^ f[a - 16];
|
| 375 |
+
f[a] = h << 1 | h >>> 31
|
| 376 |
+
}
|
| 377 |
+
var l = (i << 5 | i >>> 27) + c + f[a];
|
| 378 |
+
l += a < 20 ? 1518500249 + (n & o | ~n & s) : a < 40 ? 1859775393 + (n ^ o ^ s) : a < 60 ? (n & o | n & s | o & s) - 1894007588 : (n ^ o ^ s) - 899497514, c = s, s = o, o = n << 30 | n >>> 2, n = i, i = l
|
| 379 |
+
}
|
| 380 |
+
r[0] = r[0] + i | 0, r[1] = r[1] + n | 0, r[2] = r[2] + o | 0, r[3] = r[3] + s | 0, r[4] = r[4] + c | 0
|
| 381 |
+
},
|
| 382 |
+
_doFinalize: function() {
|
| 383 |
+
var t = this._data,
|
| 384 |
+
e = t.words,
|
| 385 |
+
r = 8 * this._nDataBytes,
|
| 386 |
+
i = 8 * t.sigBytes;
|
| 387 |
+
return e[i >>> 5] |= 128 << 24 - i % 32, e[14 + (64 + i >>> 9 << 4)] = Math.floor(r / 4294967296), e[15 + (64 + i >>> 9 << 4)] = r, t.sigBytes = 4 * e.length, this._process(), this._hash
|
| 388 |
+
},
|
| 389 |
+
clone: function() {
|
| 390 |
+
var t = i.clone.call(this);
|
| 391 |
+
return t._hash = this._hash.clone(), t
|
| 392 |
+
}
|
| 393 |
+
}), t.SHA1 = i._createHelper(o), t.HmacSHA1 = i._createHmacHelper(o),
|
| 394 |
+
function(n) {
|
| 395 |
+
var t = bt,
|
| 396 |
+
e = t.lib,
|
| 397 |
+
r = e.WordArray,
|
| 398 |
+
i = e.Hasher,
|
| 399 |
+
o = t.algo,
|
| 400 |
+
s = [],
|
| 401 |
+
B = [];
|
| 402 |
+
! function() {
|
| 403 |
+
function t(t) {
|
| 404 |
+
for (var e = n.sqrt(t), r = 2; r <= e; r++)
|
| 405 |
+
if (!(t % r)) return;
|
| 406 |
+
return 1
|
| 407 |
+
}
|
| 408 |
+
|
| 409 |
+
function e(t) {
|
| 410 |
+
return 4294967296 * (t - (0 | t)) | 0
|
| 411 |
+
}
|
| 412 |
+
for (var r = 2, i = 0; i < 64;) t(r) && (i < 8 && (s[i] = e(n.pow(r, .5))), B[i] = e(n.pow(r, 1 / 3)), i++), r++
|
| 413 |
+
}();
|
| 414 |
+
var w = [],
|
| 415 |
+
c = o.SHA256 = i.extend({
|
| 416 |
+
_doReset: function() {
|
| 417 |
+
this._hash = new r.init(s.slice(0))
|
| 418 |
+
},
|
| 419 |
+
_doProcessBlock: function(t, e) {
|
| 420 |
+
for (var r = this._hash.words, i = r[0], n = r[1], o = r[2], s = r[3], c = r[4], a = r[5], h = r[6], l = r[7], f = 0; f < 64; f++) {
|
| 421 |
+
if (f < 16) w[f] = 0 | t[e + f];
|
| 422 |
+
else {
|
| 423 |
+
var d = w[f - 15],
|
| 424 |
+
u = (d << 25 | d >>> 7) ^ (d << 14 | d >>> 18) ^ d >>> 3,
|
| 425 |
+
p = w[f - 2],
|
| 426 |
+
_ = (p << 15 | p >>> 17) ^ (p << 13 | p >>> 19) ^ p >>> 10;
|
| 427 |
+
w[f] = u + w[f - 7] + _ + w[f - 16]
|
| 428 |
+
}
|
| 429 |
+
var v = i & n ^ i & o ^ n & o,
|
| 430 |
+
y = (i << 30 | i >>> 2) ^ (i << 19 | i >>> 13) ^ (i << 10 | i >>> 22),
|
| 431 |
+
g = l + ((c << 26 | c >>> 6) ^ (c << 21 | c >>> 11) ^ (c << 7 | c >>> 25)) + (c & a ^ ~c & h) + B[f] + w[f];
|
| 432 |
+
l = h, h = a, a = c, c = s + g | 0, s = o, o = n, n = i, i = g + (y + v) | 0
|
| 433 |
+
}
|
| 434 |
+
r[0] = r[0] + i | 0, r[1] = r[1] + n | 0, r[2] = r[2] + o | 0, r[3] = r[3] + s | 0, r[4] = r[4] + c | 0, r[5] = r[5] + a | 0, r[6] = r[6] + h | 0, r[7] = r[7] + l | 0
|
| 435 |
+
},
|
| 436 |
+
_doFinalize: function() {
|
| 437 |
+
var t = this._data,
|
| 438 |
+
e = t.words,
|
| 439 |
+
r = 8 * this._nDataBytes,
|
| 440 |
+
i = 8 * t.sigBytes;
|
| 441 |
+
return e[i >>> 5] |= 128 << 24 - i % 32, e[14 + (64 + i >>> 9 << 4)] = n.floor(r / 4294967296), e[15 + (64 + i >>> 9 << 4)] = r, t.sigBytes = 4 * e.length, this._process(), this._hash
|
| 442 |
+
},
|
| 443 |
+
clone: function() {
|
| 444 |
+
var t = i.clone.call(this);
|
| 445 |
+
return t._hash = this._hash.clone(), t
|
| 446 |
+
}
|
| 447 |
+
});
|
| 448 |
+
t.SHA256 = i._createHelper(c), t.HmacSHA256 = i._createHmacHelper(c)
|
| 449 |
+
}(Math),
|
| 450 |
+
function() {
|
| 451 |
+
var n = bt.lib.WordArray,
|
| 452 |
+
t = bt.enc;
|
| 453 |
+
t.Utf16 = t.Utf16BE = {
|
| 454 |
+
stringify: function(t) {
|
| 455 |
+
for (var e = t.words, r = t.sigBytes, i = [], n = 0; n < r; n += 2) {
|
| 456 |
+
var o = e[n >>> 2] >>> 16 - n % 4 * 8 & 65535;
|
| 457 |
+
i.push(String.fromCharCode(o))
|
| 458 |
+
}
|
| 459 |
+
return i.join("")
|
| 460 |
+
},
|
| 461 |
+
parse: function(t) {
|
| 462 |
+
for (var e = t.length, r = [], i = 0; i < e; i++) r[i >>> 1] |= t.charCodeAt(i) << 16 - i % 2 * 16;
|
| 463 |
+
return n.create(r, 2 * e)
|
| 464 |
+
}
|
| 465 |
+
};
|
| 466 |
+
|
| 467 |
+
function s(t) {
|
| 468 |
+
return t << 8 & 4278255360 | t >>> 8 & 16711935
|
| 469 |
+
}
|
| 470 |
+
t.Utf16LE = {
|
| 471 |
+
stringify: function(t) {
|
| 472 |
+
for (var e = t.words, r = t.sigBytes, i = [], n = 0; n < r; n += 2) {
|
| 473 |
+
var o = s(e[n >>> 2] >>> 16 - n % 4 * 8 & 65535);
|
| 474 |
+
i.push(String.fromCharCode(o))
|
| 475 |
+
}
|
| 476 |
+
return i.join("")
|
| 477 |
+
},
|
| 478 |
+
parse: function(t) {
|
| 479 |
+
for (var e = t.length, r = [], i = 0; i < e; i++) r[i >>> 1] |= s(t.charCodeAt(i) << 16 - i % 2 * 16);
|
| 480 |
+
return n.create(r, 2 * e)
|
| 481 |
+
}
|
| 482 |
+
}
|
| 483 |
+
}(),
|
| 484 |
+
function() {
|
| 485 |
+
if ("function" == typeof ArrayBuffer) {
|
| 486 |
+
var t = bt.lib.WordArray,
|
| 487 |
+
n = t.init;
|
| 488 |
+
(t.init = function(t) {
|
| 489 |
+
if (t instanceof ArrayBuffer && (t = new Uint8Array(t)), (t instanceof Int8Array || "undefined" != typeof Uint8ClampedArray && t instanceof Uint8ClampedArray || t instanceof Int16Array || t instanceof Uint16Array || t instanceof Int32Array || t instanceof Uint32Array || t instanceof Float32Array || t instanceof Float64Array) && (t = new Uint8Array(t.buffer, t.byteOffset, t.byteLength)), t instanceof Uint8Array) {
|
| 490 |
+
for (var e = t.byteLength, r = [], i = 0; i < e; i++) r[i >>> 2] |= t[i] << 24 - i % 4 * 8;
|
| 491 |
+
n.call(this, r, e)
|
| 492 |
+
} else n.apply(this, arguments)
|
| 493 |
+
}).prototype = t
|
| 494 |
+
}
|
| 495 |
+
}(), Math, c = (s = bt).lib, a = c.WordArray, l = c.Hasher, d = s.algo, m = a.create([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8, 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12, 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2, 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13]), x = a.create([5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12, 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2, 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13, 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14, 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11]), b = a.create([11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8, 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12, 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5, 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12, 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6]), H = a.create([8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6, 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11, 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5, 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8, 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11]), z = a.create([0, 1518500249, 1859775393, 2400959708, 2840853838]), A = a.create([1352829926, 1548603684, 1836072691, 2053994217, 0]), u = d.RIPEMD160 = l.extend({
|
| 496 |
+
_doReset: function() {
|
| 497 |
+
this._hash = a.create([1732584193, 4023233417, 2562383102, 271733878, 3285377520])
|
| 498 |
+
},
|
| 499 |
+
_doProcessBlock: function(t, e) {
|
| 500 |
+
for (var r = 0; r < 16; r++) {
|
| 501 |
+
var i = e + r,
|
| 502 |
+
n = t[i];
|
| 503 |
+
t[i] = 16711935 & (n << 8 | n >>> 24) | 4278255360 & (n << 24 | n >>> 8)
|
| 504 |
+
}
|
| 505 |
+
var o, s, c, a, h, l, f, d, u, p, _, v = this._hash.words,
|
| 506 |
+
y = z.words,
|
| 507 |
+
g = A.words,
|
| 508 |
+
B = m.words,
|
| 509 |
+
w = x.words,
|
| 510 |
+
k = b.words,
|
| 511 |
+
S = H.words;
|
| 512 |
+
l = o = v[0], f = s = v[1], d = c = v[2], u = a = v[3], p = h = v[4];
|
| 513 |
+
for (r = 0; r < 80; r += 1) _ = o + t[e + B[r]] | 0, _ += r < 16 ? mt(s, c, a) + y[0] : r < 32 ? xt(s, c, a) + y[1] : r < 48 ? Ht(s, c, a) + y[2] : r < 64 ? zt(s, c, a) + y[3] : At(s, c, a) + y[4], _ = (_ = Ct(_ |= 0, k[r])) + h | 0, o = h, h = a, a = Ct(c, 10), c = s, s = _, _ = l + t[e + w[r]] | 0, _ += r < 16 ? At(f, d, u) + g[0] : r < 32 ? zt(f, d, u) + g[1] : r < 48 ? Ht(f, d, u) + g[2] : r < 64 ? xt(f, d, u) + g[3] : mt(f, d, u) + g[4], _ = (_ = Ct(_ |= 0, S[r])) + p | 0, l = p, p = u, u = Ct(d, 10), d = f, f = _;
|
| 514 |
+
_ = v[1] + c + u | 0, v[1] = v[2] + a + p | 0, v[2] = v[3] + h + l | 0, v[3] = v[4] + o + f | 0, v[4] = v[0] + s + d | 0, v[0] = _
|
| 515 |
+
},
|
| 516 |
+
_doFinalize: function() {
|
| 517 |
+
var t = this._data,
|
| 518 |
+
e = t.words,
|
| 519 |
+
r = 8 * this._nDataBytes,
|
| 520 |
+
i = 8 * t.sigBytes;
|
| 521 |
+
e[i >>> 5] |= 128 << 24 - i % 32, e[14 + (64 + i >>> 9 << 4)] = 16711935 & (r << 8 | r >>> 24) | 4278255360 & (r << 24 | r >>> 8), t.sigBytes = 4 * (e.length + 1), this._process();
|
| 522 |
+
for (var n = this._hash, o = n.words, s = 0; s < 5; s++) {
|
| 523 |
+
var c = o[s];
|
| 524 |
+
o[s] = 16711935 & (c << 8 | c >>> 24) | 4278255360 & (c << 24 | c >>> 8)
|
| 525 |
+
}
|
| 526 |
+
return n
|
| 527 |
+
},
|
| 528 |
+
clone: function() {
|
| 529 |
+
var t = l.clone.call(this);
|
| 530 |
+
return t._hash = this._hash.clone(), t
|
| 531 |
+
}
|
| 532 |
+
}), s.RIPEMD160 = l._createHelper(u), s.HmacRIPEMD160 = l._createHmacHelper(u), p = bt.lib.Base, _ = bt.enc.Utf8, bt.algo.HMAC = p.extend({
|
| 533 |
+
init: function(t, e) {
|
| 534 |
+
t = this._hasher = new t.init, "string" == typeof e && (e = _.parse(e));
|
| 535 |
+
var r = t.blockSize,
|
| 536 |
+
i = 4 * r;
|
| 537 |
+
e.sigBytes > i && (e = t.finalize(e)), e.clamp();
|
| 538 |
+
for (var n = this._oKey = e.clone(), o = this._iKey = e.clone(), s = n.words, c = o.words, a = 0; a < r; a++) s[a] ^= 1549556828, c[a] ^= 909522486;
|
| 539 |
+
n.sigBytes = o.sigBytes = i, this.reset()
|
| 540 |
+
},
|
| 541 |
+
reset: function() {
|
| 542 |
+
var t = this._hasher;
|
| 543 |
+
t.reset(), t.update(this._iKey)
|
| 544 |
+
},
|
| 545 |
+
update: function(t) {
|
| 546 |
+
return this._hasher.update(t), this
|
| 547 |
+
},
|
| 548 |
+
finalize: function(t) {
|
| 549 |
+
var e = this._hasher,
|
| 550 |
+
r = e.finalize(t);
|
| 551 |
+
return e.reset(), e.finalize(this._oKey.clone().concat(r))
|
| 552 |
+
}
|
| 553 |
+
}), y = (v = bt).lib, g = y.Base, B = y.WordArray, w = v.algo, k = w.SHA1, S = w.HMAC, C = w.PBKDF2 = g.extend({
|
| 554 |
+
cfg: g.extend({
|
| 555 |
+
keySize: 4,
|
| 556 |
+
hasher: k,
|
| 557 |
+
iterations: 1
|
| 558 |
+
}),
|
| 559 |
+
init: function(t) {
|
| 560 |
+
this.cfg = this.cfg.extend(t)
|
| 561 |
+
},
|
| 562 |
+
compute: function(t, e) {
|
| 563 |
+
for (var r = this.cfg, i = S.create(r.hasher, t), n = B.create(), o = B.create([1]), s = n.words, c = o.words, a = r.keySize, h = r.iterations; s.length < a;) {
|
| 564 |
+
var l = i.update(e).finalize(o);
|
| 565 |
+
i.reset();
|
| 566 |
+
for (var f = l.words, d = f.length, u = l, p = 1; p < h; p++) {
|
| 567 |
+
u = i.finalize(u), i.reset();
|
| 568 |
+
for (var _ = u.words, v = 0; v < d; v++) f[v] ^= _[v]
|
| 569 |
+
}
|
| 570 |
+
n.concat(l), c[0]++
|
| 571 |
+
}
|
| 572 |
+
return n.sigBytes = 4 * a, n
|
| 573 |
+
}
|
| 574 |
+
}), v.PBKDF2 = function(t, e, r) {
|
| 575 |
+
return C.create(r).compute(t, e)
|
| 576 |
+
}, E = (D = bt).lib, R = E.Base, M = E.WordArray, F = D.algo, P = F.MD5, W = F.EvpKDF = R.extend({
|
| 577 |
+
cfg: R.extend({
|
| 578 |
+
keySize: 4,
|
| 579 |
+
hasher: P,
|
| 580 |
+
iterations: 1
|
| 581 |
+
}),
|
| 582 |
+
init: function(t) {
|
| 583 |
+
this.cfg = this.cfg.extend(t)
|
| 584 |
+
},
|
| 585 |
+
compute: function(t, e) {
|
| 586 |
+
for (var r, i = this.cfg, n = i.hasher.create(), o = M.create(), s = o.words, c = i.keySize, a = i.iterations; s.length < c;) {
|
| 587 |
+
r && n.update(r), r = n.update(t).finalize(e), n.reset();
|
| 588 |
+
for (var h = 1; h < a; h++) r = n.finalize(r), n.reset();
|
| 589 |
+
o.concat(r)
|
| 590 |
+
}
|
| 591 |
+
return o.sigBytes = 4 * c, o
|
| 592 |
+
}
|
| 593 |
+
}), D.EvpKDF = function(t, e, r) {
|
| 594 |
+
return W.create(r).compute(t, e)
|
| 595 |
+
}, I = (O = bt).lib.WordArray, U = O.algo, K = U.SHA256, X = U.SHA224 = K.extend({
|
| 596 |
+
_doReset: function() {
|
| 597 |
+
this._hash = new I.init([3238371032, 914150663, 812702999, 4144912697, 4290775857, 1750603025, 1694076839, 3204075428])
|
| 598 |
+
},
|
| 599 |
+
_doFinalize: function() {
|
| 600 |
+
var t = K._doFinalize.call(this);
|
| 601 |
+
return t.sigBytes -= 4, t
|
| 602 |
+
}
|
| 603 |
+
}), O.SHA224 = K._createHelper(X), O.HmacSHA224 = K._createHmacHelper(X), L = bt.lib, j = L.Base, N = L.WordArray, (T = bt.x64 = {}).Word = j.extend({
|
| 604 |
+
init: function(t, e) {
|
| 605 |
+
this.high = t, this.low = e
|
| 606 |
+
}
|
| 607 |
+
}), T.WordArray = j.extend({
|
| 608 |
+
init: function(t, e) {
|
| 609 |
+
t = this.words = t || [], this.sigBytes = null != e ? e : 8 * t.length
|
| 610 |
+
},
|
| 611 |
+
toX32: function() {
|
| 612 |
+
for (var t = this.words, e = t.length, r = [], i = 0; i < e; i++) {
|
| 613 |
+
var n = t[i];
|
| 614 |
+
r.push(n.high), r.push(n.low)
|
| 615 |
+
}
|
| 616 |
+
return N.create(r, this.sigBytes)
|
| 617 |
+
},
|
| 618 |
+
clone: function() {
|
| 619 |
+
for (var t = j.clone.call(this), e = t.words = this.words.slice(0), r = e.length, i = 0; i < r; i++) e[i] = e[i].clone();
|
| 620 |
+
return t
|
| 621 |
+
}
|
| 622 |
+
}),
|
| 623 |
+
function(d) {
|
| 624 |
+
var t = bt,
|
| 625 |
+
e = t.lib,
|
| 626 |
+
u = e.WordArray,
|
| 627 |
+
i = e.Hasher,
|
| 628 |
+
l = t.x64.Word,
|
| 629 |
+
r = t.algo,
|
| 630 |
+
C = [],
|
| 631 |
+
D = [],
|
| 632 |
+
E = [];
|
| 633 |
+
! function() {
|
| 634 |
+
for (var t = 1, e = 0, r = 0; r < 24; r++) {
|
| 635 |
+
C[t + 5 * e] = (r + 1) * (r + 2) / 2 % 64;
|
| 636 |
+
var i = (2 * t + 3 * e) % 5;
|
| 637 |
+
t = e % 5, e = i
|
| 638 |
+
}
|
| 639 |
+
for (t = 0; t < 5; t++)
|
| 640 |
+
for (e = 0; e < 5; e++) D[t + 5 * e] = e + (2 * t + 3 * e) % 5 * 5;
|
| 641 |
+
for (var n = 1, o = 0; o < 24; o++) {
|
| 642 |
+
for (var s = 0, c = 0, a = 0; a < 7; a++) {
|
| 643 |
+
if (1 & n) {
|
| 644 |
+
var h = (1 << a) - 1;
|
| 645 |
+
h < 32 ? c ^= 1 << h : s ^= 1 << h - 32
|
| 646 |
+
}
|
| 647 |
+
128 & n ? n = n << 1 ^ 113 : n <<= 1
|
| 648 |
+
}
|
| 649 |
+
E[o] = l.create(s, c)
|
| 650 |
+
}
|
| 651 |
+
}();
|
| 652 |
+
var R = [];
|
| 653 |
+
! function() {
|
| 654 |
+
for (var t = 0; t < 25; t++) R[t] = l.create()
|
| 655 |
+
}();
|
| 656 |
+
var n = r.SHA3 = i.extend({
|
| 657 |
+
cfg: i.cfg.extend({
|
| 658 |
+
outputLength: 512
|
| 659 |
+
}),
|
| 660 |
+
_doReset: function() {
|
| 661 |
+
for (var t = this._state = [], e = 0; e < 25; e++) t[e] = new l.init;
|
| 662 |
+
this.blockSize = (1600 - 2 * this.cfg.outputLength) / 32
|
| 663 |
+
},
|
| 664 |
+
_doProcessBlock: function(t, e) {
|
| 665 |
+
for (var r = this._state, i = this.blockSize / 2, n = 0; n < i; n++) {
|
| 666 |
+
var o = t[e + 2 * n],
|
| 667 |
+
s = t[e + 2 * n + 1];
|
| 668 |
+
o = 16711935 & (o << 8 | o >>> 24) | 4278255360 & (o << 24 | o >>> 8), s = 16711935 & (s << 8 | s >>> 24) | 4278255360 & (s << 24 | s >>> 8), (x = r[n]).high ^= s, x.low ^= o
|
| 669 |
+
}
|
| 670 |
+
for (var c = 0; c < 24; c++) {
|
| 671 |
+
for (var a = 0; a < 5; a++) {
|
| 672 |
+
for (var h = 0, l = 0, f = 0; f < 5; f++) {
|
| 673 |
+
h ^= (x = r[a + 5 * f]).high, l ^= x.low
|
| 674 |
+
}
|
| 675 |
+
var d = R[a];
|
| 676 |
+
d.high = h, d.low = l
|
| 677 |
+
}
|
| 678 |
+
for (a = 0; a < 5; a++) {
|
| 679 |
+
var u = R[(a + 4) % 5],
|
| 680 |
+
p = R[(a + 1) % 5],
|
| 681 |
+
_ = p.high,
|
| 682 |
+
v = p.low;
|
| 683 |
+
for (h = u.high ^ (_ << 1 | v >>> 31), l = u.low ^ (v << 1 | _ >>> 31), f = 0; f < 5; f++) {
|
| 684 |
+
(x = r[a + 5 * f]).high ^= h, x.low ^= l
|
| 685 |
+
}
|
| 686 |
+
}
|
| 687 |
+
for (var y = 1; y < 25; y++) {
|
| 688 |
+
var g = (x = r[y]).high,
|
| 689 |
+
B = x.low,
|
| 690 |
+
w = C[y];
|
| 691 |
+
l = w < 32 ? (h = g << w | B >>> 32 - w, B << w | g >>> 32 - w) : (h = B << w - 32 | g >>> 64 - w, g << w - 32 | B >>> 64 - w);
|
| 692 |
+
var k = R[D[y]];
|
| 693 |
+
k.high = h, k.low = l
|
| 694 |
+
}
|
| 695 |
+
var S = R[0],
|
| 696 |
+
m = r[0];
|
| 697 |
+
S.high = m.high, S.low = m.low;
|
| 698 |
+
for (a = 0; a < 5; a++)
|
| 699 |
+
for (f = 0; f < 5; f++) {
|
| 700 |
+
var x = r[y = a + 5 * f],
|
| 701 |
+
b = R[y],
|
| 702 |
+
H = R[(a + 1) % 5 + 5 * f],
|
| 703 |
+
z = R[(a + 2) % 5 + 5 * f];
|
| 704 |
+
x.high = b.high ^ ~H.high & z.high, x.low = b.low ^ ~H.low & z.low
|
| 705 |
+
}
|
| 706 |
+
x = r[0];
|
| 707 |
+
var A = E[c];
|
| 708 |
+
x.high ^= A.high, x.low ^= A.low
|
| 709 |
+
}
|
| 710 |
+
},
|
| 711 |
+
_doFinalize: function() {
|
| 712 |
+
var t = this._data,
|
| 713 |
+
e = t.words,
|
| 714 |
+
r = (this._nDataBytes, 8 * t.sigBytes),
|
| 715 |
+
i = 32 * this.blockSize;
|
| 716 |
+
e[r >>> 5] |= 1 << 24 - r % 32, e[(d.ceil((1 + r) / i) * i >>> 5) - 1] |= 128, t.sigBytes = 4 * e.length, this._process();
|
| 717 |
+
for (var n = this._state, o = this.cfg.outputLength / 8, s = o / 8, c = [], a = 0; a < s; a++) {
|
| 718 |
+
var h = n[a],
|
| 719 |
+
l = h.high,
|
| 720 |
+
f = h.low;
|
| 721 |
+
l = 16711935 & (l << 8 | l >>> 24) | 4278255360 & (l << 24 | l >>> 8), f = 16711935 & (f << 8 | f >>> 24) | 4278255360 & (f << 24 | f >>> 8), c.push(f), c.push(l)
|
| 722 |
+
}
|
| 723 |
+
return new u.init(c, o)
|
| 724 |
+
},
|
| 725 |
+
clone: function() {
|
| 726 |
+
for (var t = i.clone.call(this), e = t._state = this._state.slice(0), r = 0; r < 25; r++) e[r] = e[r].clone();
|
| 727 |
+
return t
|
| 728 |
+
}
|
| 729 |
+
});
|
| 730 |
+
t.SHA3 = i._createHelper(n), t.HmacSHA3 = i._createHmacHelper(n)
|
| 731 |
+
}(Math),
|
| 732 |
+
function() {
|
| 733 |
+
var t = bt,
|
| 734 |
+
e = t.lib.Hasher,
|
| 735 |
+
r = t.x64,
|
| 736 |
+
i = r.Word,
|
| 737 |
+
n = r.WordArray,
|
| 738 |
+
o = t.algo;
|
| 739 |
+
|
| 740 |
+
function s() {
|
| 741 |
+
return i.create.apply(i, arguments)
|
| 742 |
+
}
|
| 743 |
+
var mt = [s(1116352408, 3609767458), s(1899447441, 602891725), s(3049323471, 3964484399), s(3921009573, 2173295548), s(961987163, 4081628472), s(1508970993, 3053834265), s(2453635748, 2937671579), s(2870763221, 3664609560), s(3624381080, 2734883394), s(310598401, 1164996542), s(607225278, 1323610764), s(1426881987, 3590304994), s(1925078388, 4068182383), s(2162078206, 991336113), s(2614888103, 633803317), s(3248222580, 3479774868), s(3835390401, 2666613458), s(4022224774, 944711139), s(264347078, 2341262773), s(604807628, 2007800933), s(770255983, 1495990901), s(1249150122, 1856431235), s(1555081692, 3175218132), s(1996064986, 2198950837), s(2554220882, 3999719339), s(2821834349, 766784016), s(2952996808, 2566594879), s(3210313671, 3203337956), s(3336571891, 1034457026), s(3584528711, 2466948901), s(113926993, 3758326383), s(338241895, 168717936), s(666307205, 1188179964), s(773529912, 1546045734), s(1294757372, 1522805485), s(1396182291, 2643833823), s(1695183700, 2343527390), s(1986661051, 1014477480), s(2177026350, 1206759142), s(2456956037, 344077627), s(2730485921, 1290863460), s(2820302411, 3158454273), s(3259730800, 3505952657), s(3345764771, 106217008), s(3516065817, 3606008344), s(3600352804, 1432725776), s(4094571909, 1467031594), s(275423344, 851169720), s(430227734, 3100823752), s(506948616, 1363258195), s(659060556, 3750685593), s(883997877, 3785050280), s(958139571, 3318307427), s(1322822218, 3812723403), s(1537002063, 2003034995), s(1747873779, 3602036899), s(1955562222, 1575990012), s(2024104815, 1125592928), s(2227730452, 2716904306), s(2361852424, 442776044), s(2428436474, 593698344), s(2756734187, 3733110249), s(3204031479, 2999351573), s(3329325298, 3815920427), s(3391569614, 3928383900), s(3515267271, 566280711), s(3940187606, 3454069534), s(4118630271, 4000239992), s(116418474, 1914138554), s(174292421, 2731055270), s(289380356, 3203993006), s(460393269, 320620315), s(685471733, 587496836), s(852142971, 1086792851), s(1017036298, 365543100), s(1126000580, 2618297676), s(1288033470, 3409855158), s(1501505948, 4234509866), s(1607167915, 987167468), s(1816402316, 1246189591)],
|
| 744 |
+
xt = [];
|
| 745 |
+
! function() {
|
| 746 |
+
for (var t = 0; t < 80; t++) xt[t] = s()
|
| 747 |
+
}();
|
| 748 |
+
var c = o.SHA512 = e.extend({
|
| 749 |
+
_doReset: function() {
|
| 750 |
+
this._hash = new n.init([new i.init(1779033703, 4089235720), new i.init(3144134277, 2227873595), new i.init(1013904242, 4271175723), new i.init(2773480762, 1595750129), new i.init(1359893119, 2917565137), new i.init(2600822924, 725511199), new i.init(528734635, 4215389547), new i.init(1541459225, 327033209)])
|
| 751 |
+
},
|
| 752 |
+
_doProcessBlock: function(t, e) {
|
| 753 |
+
for (var r = this._hash.words, i = r[0], n = r[1], o = r[2], s = r[3], c = r[4], a = r[5], h = r[6], l = r[7], f = i.high, d = i.low, u = n.high, p = n.low, _ = o.high, v = o.low, y = s.high, g = s.low, B = c.high, w = c.low, k = a.high, S = a.low, m = h.high, x = h.low, b = l.high, H = l.low, z = f, A = d, C = u, D = p, E = _, R = v, M = y, F = g, P = B, W = w, O = k, I = S, U = m, K = x, X = b, L = H, j = 0; j < 80; j++) {
|
| 754 |
+
var N, T, q = xt[j];
|
| 755 |
+
if (j < 16) T = q.high = 0 | t[e + 2 * j], N = q.low = 0 | t[e + 2 * j + 1];
|
| 756 |
+
else {
|
| 757 |
+
var Z = xt[j - 15],
|
| 758 |
+
V = Z.high,
|
| 759 |
+
G = Z.low,
|
| 760 |
+
J = (V >>> 1 | G << 31) ^ (V >>> 8 | G << 24) ^ V >>> 7,
|
| 761 |
+
$ = (G >>> 1 | V << 31) ^ (G >>> 8 | V << 24) ^ (G >>> 7 | V << 25),
|
| 762 |
+
Q = xt[j - 2],
|
| 763 |
+
Y = Q.high,
|
| 764 |
+
tt = Q.low,
|
| 765 |
+
et = (Y >>> 19 | tt << 13) ^ (Y << 3 | tt >>> 29) ^ Y >>> 6,
|
| 766 |
+
rt = (tt >>> 19 | Y << 13) ^ (tt << 3 | Y >>> 29) ^ (tt >>> 6 | Y << 26),
|
| 767 |
+
it = xt[j - 7],
|
| 768 |
+
nt = it.high,
|
| 769 |
+
ot = it.low,
|
| 770 |
+
st = xt[j - 16],
|
| 771 |
+
ct = st.high,
|
| 772 |
+
at = st.low;
|
| 773 |
+
T = (T = (T = J + nt + ((N = $ + ot) >>> 0 < $ >>> 0 ? 1 : 0)) + et + ((N += rt) >>> 0 < rt >>> 0 ? 1 : 0)) + ct + ((N += at) >>> 0 < at >>> 0 ? 1 : 0), q.high = T, q.low = N
|
| 774 |
+
}
|
| 775 |
+
var ht, lt = P & O ^ ~P & U,
|
| 776 |
+
ft = W & I ^ ~W & K,
|
| 777 |
+
dt = z & C ^ z & E ^ C & E,
|
| 778 |
+
ut = A & D ^ A & R ^ D & R,
|
| 779 |
+
pt = (z >>> 28 | A << 4) ^ (z << 30 | A >>> 2) ^ (z << 25 | A >>> 7),
|
| 780 |
+
_t = (A >>> 28 | z << 4) ^ (A << 30 | z >>> 2) ^ (A << 25 | z >>> 7),
|
| 781 |
+
vt = (P >>> 14 | W << 18) ^ (P >>> 18 | W << 14) ^ (P << 23 | W >>> 9),
|
| 782 |
+
yt = (W >>> 14 | P << 18) ^ (W >>> 18 | P << 14) ^ (W << 23 | P >>> 9),
|
| 783 |
+
gt = mt[j],
|
| 784 |
+
Bt = gt.high,
|
| 785 |
+
wt = gt.low,
|
| 786 |
+
kt = X + vt + ((ht = L + yt) >>> 0 < L >>> 0 ? 1 : 0),
|
| 787 |
+
St = _t + ut;
|
| 788 |
+
X = U, L = K, U = O, K = I, O = P, I = W, P = M + (kt = (kt = (kt = kt + lt + ((ht = ht + ft) >>> 0 < ft >>> 0 ? 1 : 0)) + Bt + ((ht = ht + wt) >>> 0 < wt >>> 0 ? 1 : 0)) + T + ((ht = ht + N) >>> 0 < N >>> 0 ? 1 : 0)) + ((W = F + ht | 0) >>> 0 < F >>> 0 ? 1 : 0) | 0, M = E, F = R, E = C, R = D, C = z, D = A, z = kt + (pt + dt + (St >>> 0 < _t >>> 0 ? 1 : 0)) + ((A = ht + St | 0) >>> 0 < ht >>> 0 ? 1 : 0) | 0
|
| 789 |
+
}
|
| 790 |
+
d = i.low = d + A, i.high = f + z + (d >>> 0 < A >>> 0 ? 1 : 0), p = n.low = p + D, n.high = u + C + (p >>> 0 < D >>> 0 ? 1 : 0), v = o.low = v + R, o.high = _ + E + (v >>> 0 < R >>> 0 ? 1 : 0), g = s.low = g + F, s.high = y + M + (g >>> 0 < F >>> 0 ? 1 : 0), w = c.low = w + W, c.high = B + P + (w >>> 0 < W >>> 0 ? 1 : 0), S = a.low = S + I, a.high = k + O + (S >>> 0 < I >>> 0 ? 1 : 0), x = h.low = x + K, h.high = m + U + (x >>> 0 < K >>> 0 ? 1 : 0), H = l.low = H + L, l.high = b + X + (H >>> 0 < L >>> 0 ? 1 : 0)
|
| 791 |
+
},
|
| 792 |
+
_doFinalize: function() {
|
| 793 |
+
var t = this._data,
|
| 794 |
+
e = t.words,
|
| 795 |
+
r = 8 * this._nDataBytes,
|
| 796 |
+
i = 8 * t.sigBytes;
|
| 797 |
+
return e[i >>> 5] |= 128 << 24 - i % 32, e[30 + (128 + i >>> 10 << 5)] = Math.floor(r / 4294967296), e[31 + (128 + i >>> 10 << 5)] = r, t.sigBytes = 4 * e.length, this._process(), this._hash.toX32()
|
| 798 |
+
},
|
| 799 |
+
clone: function() {
|
| 800 |
+
var t = e.clone.call(this);
|
| 801 |
+
return t._hash = this._hash.clone(), t
|
| 802 |
+
},
|
| 803 |
+
blockSize: 32
|
| 804 |
+
});
|
| 805 |
+
t.SHA512 = e._createHelper(c), t.HmacSHA512 = e._createHmacHelper(c)
|
| 806 |
+
}(), Z = (q = bt).x64, V = Z.Word, G = Z.WordArray, J = q.algo, $ = J.SHA512, Q = J.SHA384 = $.extend({
|
| 807 |
+
_doReset: function() {
|
| 808 |
+
this._hash = new G.init([new V.init(3418070365, 3238371032), new V.init(1654270250, 914150663), new V.init(2438529370, 812702999), new V.init(355462360, 4144912697), new V.init(1731405415, 4290775857), new V.init(2394180231, 1750603025), new V.init(3675008525, 1694076839), new V.init(1203062813, 3204075428)])
|
| 809 |
+
},
|
| 810 |
+
_doFinalize: function() {
|
| 811 |
+
var t = $._doFinalize.call(this);
|
| 812 |
+
return t.sigBytes -= 16, t
|
| 813 |
+
}
|
| 814 |
+
}), q.SHA384 = $._createHelper(Q), q.HmacSHA384 = $._createHmacHelper(Q), bt.lib.Cipher || function() {
|
| 815 |
+
var t = bt,
|
| 816 |
+
e = t.lib,
|
| 817 |
+
r = e.Base,
|
| 818 |
+
a = e.WordArray,
|
| 819 |
+
i = e.BufferedBlockAlgorithm,
|
| 820 |
+
n = t.enc,
|
| 821 |
+
o = (n.Utf8, n.Base64),
|
| 822 |
+
s = t.algo.EvpKDF,
|
| 823 |
+
c = e.Cipher = i.extend({
|
| 824 |
+
cfg: r.extend(),
|
| 825 |
+
createEncryptor: function(t, e) {
|
| 826 |
+
return this.create(this._ENC_XFORM_MODE, t, e)
|
| 827 |
+
},
|
| 828 |
+
createDecryptor: function(t, e) {
|
| 829 |
+
return this.create(this._DEC_XFORM_MODE, t, e)
|
| 830 |
+
},
|
| 831 |
+
init: function(t, e, r) {
|
| 832 |
+
this.cfg = this.cfg.extend(r), this._xformMode = t, this._key = e, this.reset()
|
| 833 |
+
},
|
| 834 |
+
reset: function() {
|
| 835 |
+
i.reset.call(this), this._doReset()
|
| 836 |
+
},
|
| 837 |
+
process: function(t) {
|
| 838 |
+
return this._append(t), this._process()
|
| 839 |
+
},
|
| 840 |
+
finalize: function(t) {
|
| 841 |
+
return t && this._append(t), this._doFinalize()
|
| 842 |
+
},
|
| 843 |
+
keySize: 4,
|
| 844 |
+
ivSize: 4,
|
| 845 |
+
_ENC_XFORM_MODE: 1,
|
| 846 |
+
_DEC_XFORM_MODE: 2,
|
| 847 |
+
_createHelper: function(i) {
|
| 848 |
+
return {
|
| 849 |
+
encrypt: function(t, e, r) {
|
| 850 |
+
return h(e).encrypt(i, t, e, r)
|
| 851 |
+
},
|
| 852 |
+
decrypt: function(t, e, r) {
|
| 853 |
+
return h(e).decrypt(i, t, e, r)
|
| 854 |
+
}
|
| 855 |
+
}
|
| 856 |
+
}
|
| 857 |
+
});
|
| 858 |
+
|
| 859 |
+
function h(t) {
|
| 860 |
+
return "string" == typeof t ? w : g
|
| 861 |
+
}
|
| 862 |
+
e.StreamCipher = c.extend({
|
| 863 |
+
_doFinalize: function() {
|
| 864 |
+
return this._process(!0)
|
| 865 |
+
},
|
| 866 |
+
blockSize: 1
|
| 867 |
+
});
|
| 868 |
+
var l, f = t.mode = {},
|
| 869 |
+
d = e.BlockCipherMode = r.extend({
|
| 870 |
+
createEncryptor: function(t, e) {
|
| 871 |
+
return this.Encryptor.create(t, e)
|
| 872 |
+
},
|
| 873 |
+
createDecryptor: function(t, e) {
|
| 874 |
+
return this.Decryptor.create(t, e)
|
| 875 |
+
},
|
| 876 |
+
init: function(t, e) {
|
| 877 |
+
this._cipher = t, this._iv = e
|
| 878 |
+
}
|
| 879 |
+
}),
|
| 880 |
+
u = f.CBC = ((l = d.extend()).Encryptor = l.extend({
|
| 881 |
+
processBlock: function(t, e) {
|
| 882 |
+
var r = this._cipher,
|
| 883 |
+
i = r.blockSize;
|
| 884 |
+
p.call(this, t, e, i), r.encryptBlock(t, e), this._prevBlock = t.slice(e, e + i)
|
| 885 |
+
}
|
| 886 |
+
}), l.Decryptor = l.extend({
|
| 887 |
+
processBlock: function(t, e) {
|
| 888 |
+
var r = this._cipher,
|
| 889 |
+
i = r.blockSize,
|
| 890 |
+
n = t.slice(e, e + i);
|
| 891 |
+
r.decryptBlock(t, e), p.call(this, t, e, i), this._prevBlock = n
|
| 892 |
+
}
|
| 893 |
+
}), l);
|
| 894 |
+
|
| 895 |
+
function p(t, e, r) {
|
| 896 |
+
var i, n = this._iv;
|
| 897 |
+
n ? (i = n, this._iv = void 0) : i = this._prevBlock;
|
| 898 |
+
for (var o = 0; o < r; o++) t[e + o] ^= i[o]
|
| 899 |
+
}
|
| 900 |
+
var _ = (t.pad = {}).Pkcs7 = {
|
| 901 |
+
pad: function(t, e) {
|
| 902 |
+
for (var r = 4 * e, i = r - t.sigBytes % r, n = i << 24 | i << 16 | i << 8 | i, o = [], s = 0; s < i; s += 4) o.push(n);
|
| 903 |
+
var c = a.create(o, i);
|
| 904 |
+
t.concat(c)
|
| 905 |
+
},
|
| 906 |
+
unpad: function(t) {
|
| 907 |
+
var e = 255 & t.words[t.sigBytes - 1 >>> 2];
|
| 908 |
+
t.sigBytes -= e
|
| 909 |
+
}
|
| 910 |
+
},
|
| 911 |
+
v = (e.BlockCipher = c.extend({
|
| 912 |
+
cfg: c.cfg.extend({
|
| 913 |
+
mode: u,
|
| 914 |
+
padding: _
|
| 915 |
+
}),
|
| 916 |
+
reset: function() {
|
| 917 |
+
var t;
|
| 918 |
+
c.reset.call(this);
|
| 919 |
+
var e = this.cfg,
|
| 920 |
+
r = e.iv,
|
| 921 |
+
i = e.mode;
|
| 922 |
+
this._xformMode == this._ENC_XFORM_MODE ? t = i.createEncryptor : (t = i.createDecryptor, this._minBufferSize = 1), this._mode && this._mode.__creator == t ? this._mode.init(this, r && r.words) : (this._mode = t.call(i, this, r && r.words), this._mode.__creator = t)
|
| 923 |
+
},
|
| 924 |
+
_doProcessBlock: function(t, e) {
|
| 925 |
+
this._mode.processBlock(t, e)
|
| 926 |
+
},
|
| 927 |
+
_doFinalize: function() {
|
| 928 |
+
var t, e = this.cfg.padding;
|
| 929 |
+
return this._xformMode == this._ENC_XFORM_MODE ? (e.pad(this._data, this.blockSize), t = this._process(!0)) : (t = this._process(!0), e.unpad(t)), t
|
| 930 |
+
},
|
| 931 |
+
blockSize: 4
|
| 932 |
+
}), e.CipherParams = r.extend({
|
| 933 |
+
init: function(t) {
|
| 934 |
+
this.mixIn(t)
|
| 935 |
+
},
|
| 936 |
+
toString: function(t) {
|
| 937 |
+
return (t || this.formatter).stringify(this)
|
| 938 |
+
}
|
| 939 |
+
})),
|
| 940 |
+
y = (t.format = {}).OpenSSL = {
|
| 941 |
+
stringify: function(t) {
|
| 942 |
+
var e = t.ciphertext,
|
| 943 |
+
r = t.salt;
|
| 944 |
+
return (r ? a.create([1398893684, 1701076831]).concat(r).concat(e) : e).toString(o)
|
| 945 |
+
},
|
| 946 |
+
parse: function(t) {
|
| 947 |
+
var e, r = o.parse(t),
|
| 948 |
+
i = r.words;
|
| 949 |
+
return 1398893684 == i[0] && 1701076831 == i[1] && (e = a.create(i.slice(2, 4)), i.splice(0, 4), r.sigBytes -= 16), v.create({
|
| 950 |
+
ciphertext: r,
|
| 951 |
+
salt: e
|
| 952 |
+
})
|
| 953 |
+
}
|
| 954 |
+
},
|
| 955 |
+
g = e.SerializableCipher = r.extend({
|
| 956 |
+
cfg: r.extend({
|
| 957 |
+
format: y
|
| 958 |
+
}),
|
| 959 |
+
encrypt: function(t, e, r, i) {
|
| 960 |
+
i = this.cfg.extend(i);
|
| 961 |
+
var n = t.createEncryptor(r, i),
|
| 962 |
+
o = n.finalize(e),
|
| 963 |
+
s = n.cfg;
|
| 964 |
+
return v.create({
|
| 965 |
+
ciphertext: o,
|
| 966 |
+
key: r,
|
| 967 |
+
iv: s.iv,
|
| 968 |
+
algorithm: t,
|
| 969 |
+
mode: s.mode,
|
| 970 |
+
padding: s.padding,
|
| 971 |
+
blockSize: t.blockSize,
|
| 972 |
+
formatter: i.format
|
| 973 |
+
})
|
| 974 |
+
},
|
| 975 |
+
decrypt: function(t, e, r, i) {
|
| 976 |
+
return i = this.cfg.extend(i), e = this._parse(e, i.format), t.createDecryptor(r, i).finalize(e.ciphertext)
|
| 977 |
+
},
|
| 978 |
+
_parse: function(t, e) {
|
| 979 |
+
return "string" == typeof t ? e.parse(t, this) : t
|
| 980 |
+
}
|
| 981 |
+
}),
|
| 982 |
+
B = (t.kdf = {}).OpenSSL = {
|
| 983 |
+
execute: function(t, e, r, i) {
|
| 984 |
+
i = i || a.random(8);
|
| 985 |
+
var n = s.create({
|
| 986 |
+
keySize: e + r
|
| 987 |
+
}).compute(t, i),
|
| 988 |
+
o = a.create(n.words.slice(e), 4 * r);
|
| 989 |
+
return n.sigBytes = 4 * e, v.create({
|
| 990 |
+
key: n,
|
| 991 |
+
iv: o,
|
| 992 |
+
salt: i
|
| 993 |
+
})
|
| 994 |
+
}
|
| 995 |
+
},
|
| 996 |
+
w = e.PasswordBasedCipher = g.extend({
|
| 997 |
+
cfg: g.cfg.extend({
|
| 998 |
+
kdf: B
|
| 999 |
+
}),
|
| 1000 |
+
encrypt: function(t, e, r, i) {
|
| 1001 |
+
var n = (i = this.cfg.extend(i)).kdf.execute(r, t.keySize, t.ivSize);
|
| 1002 |
+
i.iv = n.iv;
|
| 1003 |
+
var o = g.encrypt.call(this, t, e, n.key, i);
|
| 1004 |
+
return o.mixIn(n), o
|
| 1005 |
+
},
|
| 1006 |
+
decrypt: function(t, e, r, i) {
|
| 1007 |
+
i = this.cfg.extend(i), e = this._parse(e, i.format);
|
| 1008 |
+
var n = i.kdf.execute(r, t.keySize, t.ivSize, e.salt);
|
| 1009 |
+
return i.iv = n.iv, g.decrypt.call(this, t, e, n.key, i)
|
| 1010 |
+
}
|
| 1011 |
+
})
|
| 1012 |
+
}(), bt.mode.CFB = ((Y = bt.lib.BlockCipherMode.extend()).Encryptor = Y.extend({
|
| 1013 |
+
processBlock: function(t, e) {
|
| 1014 |
+
var r = this._cipher,
|
| 1015 |
+
i = r.blockSize;
|
| 1016 |
+
Dt.call(this, t, e, i, r), this._prevBlock = t.slice(e, e + i)
|
| 1017 |
+
}
|
| 1018 |
+
}), Y.Decryptor = Y.extend({
|
| 1019 |
+
processBlock: function(t, e) {
|
| 1020 |
+
var r = this._cipher,
|
| 1021 |
+
i = r.blockSize,
|
| 1022 |
+
n = t.slice(e, e + i);
|
| 1023 |
+
Dt.call(this, t, e, i, r), this._prevBlock = n
|
| 1024 |
+
}
|
| 1025 |
+
}), Y), bt.mode.ECB = ((tt = bt.lib.BlockCipherMode.extend()).Encryptor = tt.extend({
|
| 1026 |
+
processBlock: function(t, e) {
|
| 1027 |
+
this._cipher.encryptBlock(t, e)
|
| 1028 |
+
}
|
| 1029 |
+
}), tt.Decryptor = tt.extend({
|
| 1030 |
+
processBlock: function(t, e) {
|
| 1031 |
+
this._cipher.decryptBlock(t, e)
|
| 1032 |
+
}
|
| 1033 |
+
}), tt), bt.pad.AnsiX923 = {
|
| 1034 |
+
pad: function(t, e) {
|
| 1035 |
+
var r = t.sigBytes,
|
| 1036 |
+
i = 4 * e,
|
| 1037 |
+
n = i - r % i,
|
| 1038 |
+
o = r + n - 1;
|
| 1039 |
+
t.clamp(), t.words[o >>> 2] |= n << 24 - o % 4 * 8, t.sigBytes += n
|
| 1040 |
+
},
|
| 1041 |
+
unpad: function(t) {
|
| 1042 |
+
var e = 255 & t.words[t.sigBytes - 1 >>> 2];
|
| 1043 |
+
t.sigBytes -= e
|
| 1044 |
+
}
|
| 1045 |
+
}, bt.pad.Iso10126 = {
|
| 1046 |
+
pad: function(t, e) {
|
| 1047 |
+
var r = 4 * e,
|
| 1048 |
+
i = r - t.sigBytes % r;
|
| 1049 |
+
t.concat(bt.lib.WordArray.random(i - 1)).concat(bt.lib.WordArray.create([i << 24], 1))
|
| 1050 |
+
},
|
| 1051 |
+
unpad: function(t) {
|
| 1052 |
+
var e = 255 & t.words[t.sigBytes - 1 >>> 2];
|
| 1053 |
+
t.sigBytes -= e
|
| 1054 |
+
}
|
| 1055 |
+
}, bt.pad.Iso97971 = {
|
| 1056 |
+
pad: function(t, e) {
|
| 1057 |
+
t.concat(bt.lib.WordArray.create([2147483648], 1)), bt.pad.ZeroPadding.pad(t, e)
|
| 1058 |
+
},
|
| 1059 |
+
unpad: function(t) {
|
| 1060 |
+
bt.pad.ZeroPadding.unpad(t), t.sigBytes--
|
| 1061 |
+
}
|
| 1062 |
+
}, bt.mode.OFB = (et = bt.lib.BlockCipherMode.extend(), rt = et.Encryptor = et.extend({
|
| 1063 |
+
processBlock: function(t, e) {
|
| 1064 |
+
var r = this._cipher,
|
| 1065 |
+
i = r.blockSize,
|
| 1066 |
+
n = this._iv,
|
| 1067 |
+
o = this._keystream;
|
| 1068 |
+
n && (o = this._keystream = n.slice(0), this._iv = void 0), r.encryptBlock(o, 0);
|
| 1069 |
+
for (var s = 0; s < i; s++) t[e + s] ^= o[s]
|
| 1070 |
+
}
|
| 1071 |
+
}), et.Decryptor = rt, et), bt.pad.NoPadding = {
|
| 1072 |
+
pad: function() {},
|
| 1073 |
+
unpad: function() {}
|
| 1074 |
+
}, it = bt.lib.CipherParams, nt = bt.enc.Hex, bt.format.Hex = {
|
| 1075 |
+
stringify: function(t) {
|
| 1076 |
+
return t.ciphertext.toString(nt)
|
| 1077 |
+
},
|
| 1078 |
+
parse: function(t) {
|
| 1079 |
+
var e = nt.parse(t);
|
| 1080 |
+
return it.create({
|
| 1081 |
+
ciphertext: e
|
| 1082 |
+
})
|
| 1083 |
+
}
|
| 1084 |
+
},
|
| 1085 |
+
function() {
|
| 1086 |
+
var t = bt,
|
| 1087 |
+
e = t.lib.BlockCipher,
|
| 1088 |
+
r = t.algo,
|
| 1089 |
+
h = [],
|
| 1090 |
+
l = [],
|
| 1091 |
+
f = [],
|
| 1092 |
+
d = [],
|
| 1093 |
+
u = [],
|
| 1094 |
+
p = [],
|
| 1095 |
+
_ = [],
|
| 1096 |
+
v = [],
|
| 1097 |
+
y = [],
|
| 1098 |
+
g = [];
|
| 1099 |
+
! function() {
|
| 1100 |
+
for (var t = [], e = 0; e < 256; e++) t[e] = e < 128 ? e << 1 : e << 1 ^ 283;
|
| 1101 |
+
var r = 0,
|
| 1102 |
+
i = 0;
|
| 1103 |
+
for (e = 0; e < 256; e++) {
|
| 1104 |
+
var n = i ^ i << 1 ^ i << 2 ^ i << 3 ^ i << 4;
|
| 1105 |
+
n = n >>> 8 ^ 255 & n ^ 99, h[r] = n;
|
| 1106 |
+
var o = t[l[n] = r],
|
| 1107 |
+
s = t[o],
|
| 1108 |
+
c = t[s],
|
| 1109 |
+
a = 257 * t[n] ^ 16843008 * n;
|
| 1110 |
+
f[r] = a << 24 | a >>> 8, d[r] = a << 16 | a >>> 16, u[r] = a << 8 | a >>> 24, p[r] = a;
|
| 1111 |
+
a = 16843009 * c ^ 65537 * s ^ 257 * o ^ 16843008 * r;
|
| 1112 |
+
_[n] = a << 24 | a >>> 8, v[n] = a << 16 | a >>> 16, y[n] = a << 8 | a >>> 24, g[n] = a, r ? (r = o ^ t[t[t[c ^ o]]], i ^= t[t[i]]) : r = i = 1
|
| 1113 |
+
}
|
| 1114 |
+
}();
|
| 1115 |
+
var B = [0, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54],
|
| 1116 |
+
i = r.AES = e.extend({
|
| 1117 |
+
_doReset: function() {
|
| 1118 |
+
if (!this._nRounds || this._keyPriorReset !== this._key) {
|
| 1119 |
+
for (var t = this._keyPriorReset = this._key, e = t.words, r = t.sigBytes / 4, i = 4 * (1 + (this._nRounds = 6 + r)), n = this._keySchedule = [], o = 0; o < i; o++) o < r ? n[o] = e[o] : (a = n[o - 1], o % r ? 6 < r && o % r == 4 && (a = h[a >>> 24] << 24 | h[a >>> 16 & 255] << 16 | h[a >>> 8 & 255] << 8 | h[255 & a]) : (a = h[(a = a << 8 | a >>> 24) >>> 24] << 24 | h[a >>> 16 & 255] << 16 | h[a >>> 8 & 255] << 8 | h[255 & a], a ^= B[o / r | 0] << 24), n[o] = n[o - r] ^ a);
|
| 1120 |
+
for (var s = this._invKeySchedule = [], c = 0; c < i; c++) {
|
| 1121 |
+
o = i - c;
|
| 1122 |
+
if (c % 4) var a = n[o];
|
| 1123 |
+
else a = n[o - 4];
|
| 1124 |
+
s[c] = c < 4 || o <= 4 ? a : _[h[a >>> 24]] ^ v[h[a >>> 16 & 255]] ^ y[h[a >>> 8 & 255]] ^ g[h[255 & a]]
|
| 1125 |
+
}
|
| 1126 |
+
}
|
| 1127 |
+
},
|
| 1128 |
+
encryptBlock: function(t, e) {
|
| 1129 |
+
this._doCryptBlock(t, e, this._keySchedule, f, d, u, p, h)
|
| 1130 |
+
},
|
| 1131 |
+
decryptBlock: function(t, e) {
|
| 1132 |
+
var r = t[e + 1];
|
| 1133 |
+
t[e + 1] = t[e + 3], t[e + 3] = r, this._doCryptBlock(t, e, this._invKeySchedule, _, v, y, g, l);
|
| 1134 |
+
r = t[e + 1];
|
| 1135 |
+
t[e + 1] = t[e + 3], t[e + 3] = r
|
| 1136 |
+
},
|
| 1137 |
+
_doCryptBlock: function(t, e, r, i, n, o, s, c) {
|
| 1138 |
+
for (var a = this._nRounds, h = t[e] ^ r[0], l = t[e + 1] ^ r[1], f = t[e + 2] ^ r[2], d = t[e + 3] ^ r[3], u = 4, p = 1; p < a; p++) {
|
| 1139 |
+
var _ = i[h >>> 24] ^ n[l >>> 16 & 255] ^ o[f >>> 8 & 255] ^ s[255 & d] ^ r[u++],
|
| 1140 |
+
v = i[l >>> 24] ^ n[f >>> 16 & 255] ^ o[d >>> 8 & 255] ^ s[255 & h] ^ r[u++],
|
| 1141 |
+
y = i[f >>> 24] ^ n[d >>> 16 & 255] ^ o[h >>> 8 & 255] ^ s[255 & l] ^ r[u++],
|
| 1142 |
+
g = i[d >>> 24] ^ n[h >>> 16 & 255] ^ o[l >>> 8 & 255] ^ s[255 & f] ^ r[u++];
|
| 1143 |
+
h = _, l = v, f = y, d = g
|
| 1144 |
+
}
|
| 1145 |
+
_ = (c[h >>> 24] << 24 | c[l >>> 16 & 255] << 16 | c[f >>> 8 & 255] << 8 | c[255 & d]) ^ r[u++], v = (c[l >>> 24] << 24 | c[f >>> 16 & 255] << 16 | c[d >>> 8 & 255] << 8 | c[255 & h]) ^ r[u++], y = (c[f >>> 24] << 24 | c[d >>> 16 & 255] << 16 | c[h >>> 8 & 255] << 8 | c[255 & l]) ^ r[u++], g = (c[d >>> 24] << 24 | c[h >>> 16 & 255] << 16 | c[l >>> 8 & 255] << 8 | c[255 & f]) ^ r[u++];
|
| 1146 |
+
t[e] = _, t[e + 1] = v, t[e + 2] = y, t[e + 3] = g
|
| 1147 |
+
},
|
| 1148 |
+
keySize: 8
|
| 1149 |
+
});
|
| 1150 |
+
t.AES = e._createHelper(i)
|
| 1151 |
+
}(),
|
| 1152 |
+
function() {
|
| 1153 |
+
var t = bt,
|
| 1154 |
+
e = t.lib,
|
| 1155 |
+
n = e.WordArray,
|
| 1156 |
+
r = e.BlockCipher,
|
| 1157 |
+
i = t.algo,
|
| 1158 |
+
h = [57, 49, 41, 33, 25, 17, 9, 1, 58, 50, 42, 34, 26, 18, 10, 2, 59, 51, 43, 35, 27, 19, 11, 3, 60, 52, 44, 36, 63, 55, 47, 39, 31, 23, 15, 7, 62, 54, 46, 38, 30, 22, 14, 6, 61, 53, 45, 37, 29, 21, 13, 5, 28, 20, 12, 4],
|
| 1159 |
+
l = [14, 17, 11, 24, 1, 5, 3, 28, 15, 6, 21, 10, 23, 19, 12, 4, 26, 8, 16, 7, 27, 20, 13, 2, 41, 52, 31, 37, 47, 55, 30, 40, 51, 45, 33, 48, 44, 49, 39, 56, 34, 53, 46, 42, 50, 36, 29, 32],
|
| 1160 |
+
f = [1, 2, 4, 6, 8, 10, 12, 14, 15, 17, 19, 21, 23, 25, 27, 28],
|
| 1161 |
+
d = [{
|
| 1162 |
+
0: 8421888,
|
| 1163 |
+
268435456: 32768,
|
| 1164 |
+
536870912: 8421378,
|
| 1165 |
+
805306368: 2,
|
| 1166 |
+
1073741824: 512,
|
| 1167 |
+
1342177280: 8421890,
|
| 1168 |
+
1610612736: 8389122,
|
| 1169 |
+
1879048192: 8388608,
|
| 1170 |
+
2147483648: 514,
|
| 1171 |
+
2415919104: 8389120,
|
| 1172 |
+
2684354560: 33280,
|
| 1173 |
+
2952790016: 8421376,
|
| 1174 |
+
3221225472: 32770,
|
| 1175 |
+
3489660928: 8388610,
|
| 1176 |
+
3758096384: 0,
|
| 1177 |
+
4026531840: 33282,
|
| 1178 |
+
134217728: 0,
|
| 1179 |
+
402653184: 8421890,
|
| 1180 |
+
671088640: 33282,
|
| 1181 |
+
939524096: 32768,
|
| 1182 |
+
1207959552: 8421888,
|
| 1183 |
+
1476395008: 512,
|
| 1184 |
+
1744830464: 8421378,
|
| 1185 |
+
2013265920: 2,
|
| 1186 |
+
2281701376: 8389120,
|
| 1187 |
+
2550136832: 33280,
|
| 1188 |
+
2818572288: 8421376,
|
| 1189 |
+
3087007744: 8389122,
|
| 1190 |
+
3355443200: 8388610,
|
| 1191 |
+
3623878656: 32770,
|
| 1192 |
+
3892314112: 514,
|
| 1193 |
+
4160749568: 8388608,
|
| 1194 |
+
1: 32768,
|
| 1195 |
+
268435457: 2,
|
| 1196 |
+
536870913: 8421888,
|
| 1197 |
+
805306369: 8388608,
|
| 1198 |
+
1073741825: 8421378,
|
| 1199 |
+
1342177281: 33280,
|
| 1200 |
+
1610612737: 512,
|
| 1201 |
+
1879048193: 8389122,
|
| 1202 |
+
2147483649: 8421890,
|
| 1203 |
+
2415919105: 8421376,
|
| 1204 |
+
2684354561: 8388610,
|
| 1205 |
+
2952790017: 33282,
|
| 1206 |
+
3221225473: 514,
|
| 1207 |
+
3489660929: 8389120,
|
| 1208 |
+
3758096385: 32770,
|
| 1209 |
+
4026531841: 0,
|
| 1210 |
+
134217729: 8421890,
|
| 1211 |
+
402653185: 8421376,
|
| 1212 |
+
671088641: 8388608,
|
| 1213 |
+
939524097: 512,
|
| 1214 |
+
1207959553: 32768,
|
| 1215 |
+
1476395009: 8388610,
|
| 1216 |
+
1744830465: 2,
|
| 1217 |
+
2013265921: 33282,
|
| 1218 |
+
2281701377: 32770,
|
| 1219 |
+
2550136833: 8389122,
|
| 1220 |
+
2818572289: 514,
|
| 1221 |
+
3087007745: 8421888,
|
| 1222 |
+
3355443201: 8389120,
|
| 1223 |
+
3623878657: 0,
|
| 1224 |
+
3892314113: 33280,
|
| 1225 |
+
4160749569: 8421378
|
| 1226 |
+
}, {
|
| 1227 |
+
0: 1074282512,
|
| 1228 |
+
16777216: 16384,
|
| 1229 |
+
33554432: 524288,
|
| 1230 |
+
50331648: 1074266128,
|
| 1231 |
+
67108864: 1073741840,
|
| 1232 |
+
83886080: 1074282496,
|
| 1233 |
+
100663296: 1073758208,
|
| 1234 |
+
117440512: 16,
|
| 1235 |
+
134217728: 540672,
|
| 1236 |
+
150994944: 1073758224,
|
| 1237 |
+
167772160: 1073741824,
|
| 1238 |
+
184549376: 540688,
|
| 1239 |
+
201326592: 524304,
|
| 1240 |
+
218103808: 0,
|
| 1241 |
+
234881024: 16400,
|
| 1242 |
+
251658240: 1074266112,
|
| 1243 |
+
8388608: 1073758208,
|
| 1244 |
+
25165824: 540688,
|
| 1245 |
+
41943040: 16,
|
| 1246 |
+
58720256: 1073758224,
|
| 1247 |
+
75497472: 1074282512,
|
| 1248 |
+
92274688: 1073741824,
|
| 1249 |
+
109051904: 524288,
|
| 1250 |
+
125829120: 1074266128,
|
| 1251 |
+
142606336: 524304,
|
| 1252 |
+
159383552: 0,
|
| 1253 |
+
176160768: 16384,
|
| 1254 |
+
192937984: 1074266112,
|
| 1255 |
+
209715200: 1073741840,
|
| 1256 |
+
226492416: 540672,
|
| 1257 |
+
243269632: 1074282496,
|
| 1258 |
+
260046848: 16400,
|
| 1259 |
+
268435456: 0,
|
| 1260 |
+
285212672: 1074266128,
|
| 1261 |
+
301989888: 1073758224,
|
| 1262 |
+
318767104: 1074282496,
|
| 1263 |
+
335544320: 1074266112,
|
| 1264 |
+
352321536: 16,
|
| 1265 |
+
369098752: 540688,
|
| 1266 |
+
385875968: 16384,
|
| 1267 |
+
402653184: 16400,
|
| 1268 |
+
419430400: 524288,
|
| 1269 |
+
436207616: 524304,
|
| 1270 |
+
452984832: 1073741840,
|
| 1271 |
+
469762048: 540672,
|
| 1272 |
+
486539264: 1073758208,
|
| 1273 |
+
503316480: 1073741824,
|
| 1274 |
+
520093696: 1074282512,
|
| 1275 |
+
276824064: 540688,
|
| 1276 |
+
293601280: 524288,
|
| 1277 |
+
310378496: 1074266112,
|
| 1278 |
+
327155712: 16384,
|
| 1279 |
+
343932928: 1073758208,
|
| 1280 |
+
360710144: 1074282512,
|
| 1281 |
+
377487360: 16,
|
| 1282 |
+
394264576: 1073741824,
|
| 1283 |
+
411041792: 1074282496,
|
| 1284 |
+
427819008: 1073741840,
|
| 1285 |
+
444596224: 1073758224,
|
| 1286 |
+
461373440: 524304,
|
| 1287 |
+
478150656: 0,
|
| 1288 |
+
494927872: 16400,
|
| 1289 |
+
511705088: 1074266128,
|
| 1290 |
+
528482304: 540672
|
| 1291 |
+
}, {
|
| 1292 |
+
0: 260,
|
| 1293 |
+
1048576: 0,
|
| 1294 |
+
2097152: 67109120,
|
| 1295 |
+
3145728: 65796,
|
| 1296 |
+
4194304: 65540,
|
| 1297 |
+
5242880: 67108868,
|
| 1298 |
+
6291456: 67174660,
|
| 1299 |
+
7340032: 67174400,
|
| 1300 |
+
8388608: 67108864,
|
| 1301 |
+
9437184: 67174656,
|
| 1302 |
+
10485760: 65792,
|
| 1303 |
+
11534336: 67174404,
|
| 1304 |
+
12582912: 67109124,
|
| 1305 |
+
13631488: 65536,
|
| 1306 |
+
14680064: 4,
|
| 1307 |
+
15728640: 256,
|
| 1308 |
+
524288: 67174656,
|
| 1309 |
+
1572864: 67174404,
|
| 1310 |
+
2621440: 0,
|
| 1311 |
+
3670016: 67109120,
|
| 1312 |
+
4718592: 67108868,
|
| 1313 |
+
5767168: 65536,
|
| 1314 |
+
6815744: 65540,
|
| 1315 |
+
7864320: 260,
|
| 1316 |
+
8912896: 4,
|
| 1317 |
+
9961472: 256,
|
| 1318 |
+
11010048: 67174400,
|
| 1319 |
+
12058624: 65796,
|
| 1320 |
+
13107200: 65792,
|
| 1321 |
+
14155776: 67109124,
|
| 1322 |
+
15204352: 67174660,
|
| 1323 |
+
16252928: 67108864,
|
| 1324 |
+
16777216: 67174656,
|
| 1325 |
+
17825792: 65540,
|
| 1326 |
+
18874368: 65536,
|
| 1327 |
+
19922944: 67109120,
|
| 1328 |
+
20971520: 256,
|
| 1329 |
+
22020096: 67174660,
|
| 1330 |
+
23068672: 67108868,
|
| 1331 |
+
24117248: 0,
|
| 1332 |
+
25165824: 67109124,
|
| 1333 |
+
26214400: 67108864,
|
| 1334 |
+
27262976: 4,
|
| 1335 |
+
28311552: 65792,
|
| 1336 |
+
29360128: 67174400,
|
| 1337 |
+
30408704: 260,
|
| 1338 |
+
31457280: 65796,
|
| 1339 |
+
32505856: 67174404,
|
| 1340 |
+
17301504: 67108864,
|
| 1341 |
+
18350080: 260,
|
| 1342 |
+
19398656: 67174656,
|
| 1343 |
+
20447232: 0,
|
| 1344 |
+
21495808: 65540,
|
| 1345 |
+
22544384: 67109120,
|
| 1346 |
+
23592960: 256,
|
| 1347 |
+
24641536: 67174404,
|
| 1348 |
+
25690112: 65536,
|
| 1349 |
+
26738688: 67174660,
|
| 1350 |
+
27787264: 65796,
|
| 1351 |
+
28835840: 67108868,
|
| 1352 |
+
29884416: 67109124,
|
| 1353 |
+
30932992: 67174400,
|
| 1354 |
+
31981568: 4,
|
| 1355 |
+
33030144: 65792
|
| 1356 |
+
}, {
|
| 1357 |
+
0: 2151682048,
|
| 1358 |
+
65536: 2147487808,
|
| 1359 |
+
131072: 4198464,
|
| 1360 |
+
196608: 2151677952,
|
| 1361 |
+
262144: 0,
|
| 1362 |
+
327680: 4198400,
|
| 1363 |
+
393216: 2147483712,
|
| 1364 |
+
458752: 4194368,
|
| 1365 |
+
524288: 2147483648,
|
| 1366 |
+
589824: 4194304,
|
| 1367 |
+
655360: 64,
|
| 1368 |
+
720896: 2147487744,
|
| 1369 |
+
786432: 2151678016,
|
| 1370 |
+
851968: 4160,
|
| 1371 |
+
917504: 4096,
|
| 1372 |
+
983040: 2151682112,
|
| 1373 |
+
32768: 2147487808,
|
| 1374 |
+
98304: 64,
|
| 1375 |
+
163840: 2151678016,
|
| 1376 |
+
229376: 2147487744,
|
| 1377 |
+
294912: 4198400,
|
| 1378 |
+
360448: 2151682112,
|
| 1379 |
+
425984: 0,
|
| 1380 |
+
491520: 2151677952,
|
| 1381 |
+
557056: 4096,
|
| 1382 |
+
622592: 2151682048,
|
| 1383 |
+
688128: 4194304,
|
| 1384 |
+
753664: 4160,
|
| 1385 |
+
819200: 2147483648,
|
| 1386 |
+
884736: 4194368,
|
| 1387 |
+
950272: 4198464,
|
| 1388 |
+
1015808: 2147483712,
|
| 1389 |
+
1048576: 4194368,
|
| 1390 |
+
1114112: 4198400,
|
| 1391 |
+
1179648: 2147483712,
|
| 1392 |
+
1245184: 0,
|
| 1393 |
+
1310720: 4160,
|
| 1394 |
+
1376256: 2151678016,
|
| 1395 |
+
1441792: 2151682048,
|
| 1396 |
+
1507328: 2147487808,
|
| 1397 |
+
1572864: 2151682112,
|
| 1398 |
+
1638400: 2147483648,
|
| 1399 |
+
1703936: 2151677952,
|
| 1400 |
+
1769472: 4198464,
|
| 1401 |
+
1835008: 2147487744,
|
| 1402 |
+
1900544: 4194304,
|
| 1403 |
+
1966080: 64,
|
| 1404 |
+
2031616: 4096,
|
| 1405 |
+
1081344: 2151677952,
|
| 1406 |
+
1146880: 2151682112,
|
| 1407 |
+
1212416: 0,
|
| 1408 |
+
1277952: 4198400,
|
| 1409 |
+
1343488: 4194368,
|
| 1410 |
+
1409024: 2147483648,
|
| 1411 |
+
1474560: 2147487808,
|
| 1412 |
+
1540096: 64,
|
| 1413 |
+
1605632: 2147483712,
|
| 1414 |
+
1671168: 4096,
|
| 1415 |
+
1736704: 2147487744,
|
| 1416 |
+
1802240: 2151678016,
|
| 1417 |
+
1867776: 4160,
|
| 1418 |
+
1933312: 2151682048,
|
| 1419 |
+
1998848: 4194304,
|
| 1420 |
+
2064384: 4198464
|
| 1421 |
+
}, {
|
| 1422 |
+
0: 128,
|
| 1423 |
+
4096: 17039360,
|
| 1424 |
+
8192: 262144,
|
| 1425 |
+
12288: 536870912,
|
| 1426 |
+
16384: 537133184,
|
| 1427 |
+
20480: 16777344,
|
| 1428 |
+
24576: 553648256,
|
| 1429 |
+
28672: 262272,
|
| 1430 |
+
32768: 16777216,
|
| 1431 |
+
36864: 537133056,
|
| 1432 |
+
40960: 536871040,
|
| 1433 |
+
45056: 553910400,
|
| 1434 |
+
49152: 553910272,
|
| 1435 |
+
53248: 0,
|
| 1436 |
+
57344: 17039488,
|
| 1437 |
+
61440: 553648128,
|
| 1438 |
+
2048: 17039488,
|
| 1439 |
+
6144: 553648256,
|
| 1440 |
+
10240: 128,
|
| 1441 |
+
14336: 17039360,
|
| 1442 |
+
18432: 262144,
|
| 1443 |
+
22528: 537133184,
|
| 1444 |
+
26624: 553910272,
|
| 1445 |
+
30720: 536870912,
|
| 1446 |
+
34816: 537133056,
|
| 1447 |
+
38912: 0,
|
| 1448 |
+
43008: 553910400,
|
| 1449 |
+
47104: 16777344,
|
| 1450 |
+
51200: 536871040,
|
| 1451 |
+
55296: 553648128,
|
| 1452 |
+
59392: 16777216,
|
| 1453 |
+
63488: 262272,
|
| 1454 |
+
65536: 262144,
|
| 1455 |
+
69632: 128,
|
| 1456 |
+
73728: 536870912,
|
| 1457 |
+
77824: 553648256,
|
| 1458 |
+
81920: 16777344,
|
| 1459 |
+
86016: 553910272,
|
| 1460 |
+
90112: 537133184,
|
| 1461 |
+
94208: 16777216,
|
| 1462 |
+
98304: 553910400,
|
| 1463 |
+
102400: 553648128,
|
| 1464 |
+
106496: 17039360,
|
| 1465 |
+
110592: 537133056,
|
| 1466 |
+
114688: 262272,
|
| 1467 |
+
118784: 536871040,
|
| 1468 |
+
122880: 0,
|
| 1469 |
+
126976: 17039488,
|
| 1470 |
+
67584: 553648256,
|
| 1471 |
+
71680: 16777216,
|
| 1472 |
+
75776: 17039360,
|
| 1473 |
+
79872: 537133184,
|
| 1474 |
+
83968: 536870912,
|
| 1475 |
+
88064: 17039488,
|
| 1476 |
+
92160: 128,
|
| 1477 |
+
96256: 553910272,
|
| 1478 |
+
100352: 262272,
|
| 1479 |
+
104448: 553910400,
|
| 1480 |
+
108544: 0,
|
| 1481 |
+
112640: 553648128,
|
| 1482 |
+
116736: 16777344,
|
| 1483 |
+
120832: 262144,
|
| 1484 |
+
124928: 537133056,
|
| 1485 |
+
129024: 536871040
|
| 1486 |
+
}, {
|
| 1487 |
+
0: 268435464,
|
| 1488 |
+
256: 8192,
|
| 1489 |
+
512: 270532608,
|
| 1490 |
+
768: 270540808,
|
| 1491 |
+
1024: 268443648,
|
| 1492 |
+
1280: 2097152,
|
| 1493 |
+
1536: 2097160,
|
| 1494 |
+
1792: 268435456,
|
| 1495 |
+
2048: 0,
|
| 1496 |
+
2304: 268443656,
|
| 1497 |
+
2560: 2105344,
|
| 1498 |
+
2816: 8,
|
| 1499 |
+
3072: 270532616,
|
| 1500 |
+
3328: 2105352,
|
| 1501 |
+
3584: 8200,
|
| 1502 |
+
3840: 270540800,
|
| 1503 |
+
128: 270532608,
|
| 1504 |
+
384: 270540808,
|
| 1505 |
+
640: 8,
|
| 1506 |
+
896: 2097152,
|
| 1507 |
+
1152: 2105352,
|
| 1508 |
+
1408: 268435464,
|
| 1509 |
+
1664: 268443648,
|
| 1510 |
+
1920: 8200,
|
| 1511 |
+
2176: 2097160,
|
| 1512 |
+
2432: 8192,
|
| 1513 |
+
2688: 268443656,
|
| 1514 |
+
2944: 270532616,
|
| 1515 |
+
3200: 0,
|
| 1516 |
+
3456: 270540800,
|
| 1517 |
+
3712: 2105344,
|
| 1518 |
+
3968: 268435456,
|
| 1519 |
+
4096: 268443648,
|
| 1520 |
+
4352: 270532616,
|
| 1521 |
+
4608: 270540808,
|
| 1522 |
+
4864: 8200,
|
| 1523 |
+
5120: 2097152,
|
| 1524 |
+
5376: 268435456,
|
| 1525 |
+
5632: 268435464,
|
| 1526 |
+
5888: 2105344,
|
| 1527 |
+
6144: 2105352,
|
| 1528 |
+
6400: 0,
|
| 1529 |
+
6656: 8,
|
| 1530 |
+
6912: 270532608,
|
| 1531 |
+
7168: 8192,
|
| 1532 |
+
7424: 268443656,
|
| 1533 |
+
7680: 270540800,
|
| 1534 |
+
7936: 2097160,
|
| 1535 |
+
4224: 8,
|
| 1536 |
+
4480: 2105344,
|
| 1537 |
+
4736: 2097152,
|
| 1538 |
+
4992: 268435464,
|
| 1539 |
+
5248: 268443648,
|
| 1540 |
+
5504: 8200,
|
| 1541 |
+
5760: 270540808,
|
| 1542 |
+
6016: 270532608,
|
| 1543 |
+
6272: 270540800,
|
| 1544 |
+
6528: 270532616,
|
| 1545 |
+
6784: 8192,
|
| 1546 |
+
7040: 2105352,
|
| 1547 |
+
7296: 2097160,
|
| 1548 |
+
7552: 0,
|
| 1549 |
+
7808: 268435456,
|
| 1550 |
+
8064: 268443656
|
| 1551 |
+
}, {
|
| 1552 |
+
0: 1048576,
|
| 1553 |
+
16: 33555457,
|
| 1554 |
+
32: 1024,
|
| 1555 |
+
48: 1049601,
|
| 1556 |
+
64: 34604033,
|
| 1557 |
+
80: 0,
|
| 1558 |
+
96: 1,
|
| 1559 |
+
112: 34603009,
|
| 1560 |
+
128: 33555456,
|
| 1561 |
+
144: 1048577,
|
| 1562 |
+
160: 33554433,
|
| 1563 |
+
176: 34604032,
|
| 1564 |
+
192: 34603008,
|
| 1565 |
+
208: 1025,
|
| 1566 |
+
224: 1049600,
|
| 1567 |
+
240: 33554432,
|
| 1568 |
+
8: 34603009,
|
| 1569 |
+
24: 0,
|
| 1570 |
+
40: 33555457,
|
| 1571 |
+
56: 34604032,
|
| 1572 |
+
72: 1048576,
|
| 1573 |
+
88: 33554433,
|
| 1574 |
+
104: 33554432,
|
| 1575 |
+
120: 1025,
|
| 1576 |
+
136: 1049601,
|
| 1577 |
+
152: 33555456,
|
| 1578 |
+
168: 34603008,
|
| 1579 |
+
184: 1048577,
|
| 1580 |
+
200: 1024,
|
| 1581 |
+
216: 34604033,
|
| 1582 |
+
232: 1,
|
| 1583 |
+
248: 1049600,
|
| 1584 |
+
256: 33554432,
|
| 1585 |
+
272: 1048576,
|
| 1586 |
+
288: 33555457,
|
| 1587 |
+
304: 34603009,
|
| 1588 |
+
320: 1048577,
|
| 1589 |
+
336: 33555456,
|
| 1590 |
+
352: 34604032,
|
| 1591 |
+
368: 1049601,
|
| 1592 |
+
384: 1025,
|
| 1593 |
+
400: 34604033,
|
| 1594 |
+
416: 1049600,
|
| 1595 |
+
432: 1,
|
| 1596 |
+
448: 0,
|
| 1597 |
+
464: 34603008,
|
| 1598 |
+
480: 33554433,
|
| 1599 |
+
496: 1024,
|
| 1600 |
+
264: 1049600,
|
| 1601 |
+
280: 33555457,
|
| 1602 |
+
296: 34603009,
|
| 1603 |
+
312: 1,
|
| 1604 |
+
328: 33554432,
|
| 1605 |
+
344: 1048576,
|
| 1606 |
+
360: 1025,
|
| 1607 |
+
376: 34604032,
|
| 1608 |
+
392: 33554433,
|
| 1609 |
+
408: 34603008,
|
| 1610 |
+
424: 0,
|
| 1611 |
+
440: 34604033,
|
| 1612 |
+
456: 1049601,
|
| 1613 |
+
472: 1024,
|
| 1614 |
+
488: 33555456,
|
| 1615 |
+
504: 1048577
|
| 1616 |
+
}, {
|
| 1617 |
+
0: 134219808,
|
| 1618 |
+
1: 131072,
|
| 1619 |
+
2: 134217728,
|
| 1620 |
+
3: 32,
|
| 1621 |
+
4: 131104,
|
| 1622 |
+
5: 134350880,
|
| 1623 |
+
6: 134350848,
|
| 1624 |
+
7: 2048,
|
| 1625 |
+
8: 134348800,
|
| 1626 |
+
9: 134219776,
|
| 1627 |
+
10: 133120,
|
| 1628 |
+
11: 134348832,
|
| 1629 |
+
12: 2080,
|
| 1630 |
+
13: 0,
|
| 1631 |
+
14: 134217760,
|
| 1632 |
+
15: 133152,
|
| 1633 |
+
2147483648: 2048,
|
| 1634 |
+
2147483649: 134350880,
|
| 1635 |
+
2147483650: 134219808,
|
| 1636 |
+
2147483651: 134217728,
|
| 1637 |
+
2147483652: 134348800,
|
| 1638 |
+
2147483653: 133120,
|
| 1639 |
+
2147483654: 133152,
|
| 1640 |
+
2147483655: 32,
|
| 1641 |
+
2147483656: 134217760,
|
| 1642 |
+
2147483657: 2080,
|
| 1643 |
+
2147483658: 131104,
|
| 1644 |
+
2147483659: 134350848,
|
| 1645 |
+
2147483660: 0,
|
| 1646 |
+
2147483661: 134348832,
|
| 1647 |
+
2147483662: 134219776,
|
| 1648 |
+
2147483663: 131072,
|
| 1649 |
+
16: 133152,
|
| 1650 |
+
17: 134350848,
|
| 1651 |
+
18: 32,
|
| 1652 |
+
19: 2048,
|
| 1653 |
+
20: 134219776,
|
| 1654 |
+
21: 134217760,
|
| 1655 |
+
22: 134348832,
|
| 1656 |
+
23: 131072,
|
| 1657 |
+
24: 0,
|
| 1658 |
+
25: 131104,
|
| 1659 |
+
26: 134348800,
|
| 1660 |
+
27: 134219808,
|
| 1661 |
+
28: 134350880,
|
| 1662 |
+
29: 133120,
|
| 1663 |
+
30: 2080,
|
| 1664 |
+
31: 134217728,
|
| 1665 |
+
2147483664: 131072,
|
| 1666 |
+
2147483665: 2048,
|
| 1667 |
+
2147483666: 134348832,
|
| 1668 |
+
2147483667: 133152,
|
| 1669 |
+
2147483668: 32,
|
| 1670 |
+
2147483669: 134348800,
|
| 1671 |
+
2147483670: 134217728,
|
| 1672 |
+
2147483671: 134219808,
|
| 1673 |
+
2147483672: 134350880,
|
| 1674 |
+
2147483673: 134217760,
|
| 1675 |
+
2147483674: 134219776,
|
| 1676 |
+
2147483675: 0,
|
| 1677 |
+
2147483676: 133120,
|
| 1678 |
+
2147483677: 2080,
|
| 1679 |
+
2147483678: 131104,
|
| 1680 |
+
2147483679: 134350848
|
| 1681 |
+
}],
|
| 1682 |
+
u = [4160749569, 528482304, 33030144, 2064384, 129024, 8064, 504, 2147483679],
|
| 1683 |
+
o = i.DES = r.extend({
|
| 1684 |
+
_doReset: function() {
|
| 1685 |
+
for (var t = this._key.words, e = [], r = 0; r < 56; r++) {
|
| 1686 |
+
var i = h[r] - 1;
|
| 1687 |
+
e[r] = t[i >>> 5] >>> 31 - i % 32 & 1
|
| 1688 |
+
}
|
| 1689 |
+
for (var n = this._subKeys = [], o = 0; o < 16; o++) {
|
| 1690 |
+
var s = n[o] = [],
|
| 1691 |
+
c = f[o];
|
| 1692 |
+
for (r = 0; r < 24; r++) s[r / 6 | 0] |= e[(l[r] - 1 + c) % 28] << 31 - r % 6, s[4 + (r / 6 | 0)] |= e[28 + (l[r + 24] - 1 + c) % 28] << 31 - r % 6;
|
| 1693 |
+
s[0] = s[0] << 1 | s[0] >>> 31;
|
| 1694 |
+
for (r = 1; r < 7; r++) s[r] = s[r] >>> 4 * (r - 1) + 3;
|
| 1695 |
+
s[7] = s[7] << 5 | s[7] >>> 27
|
| 1696 |
+
}
|
| 1697 |
+
var a = this._invSubKeys = [];
|
| 1698 |
+
for (r = 0; r < 16; r++) a[r] = n[15 - r]
|
| 1699 |
+
},
|
| 1700 |
+
encryptBlock: function(t, e) {
|
| 1701 |
+
this._doCryptBlock(t, e, this._subKeys)
|
| 1702 |
+
},
|
| 1703 |
+
decryptBlock: function(t, e) {
|
| 1704 |
+
this._doCryptBlock(t, e, this._invSubKeys)
|
| 1705 |
+
},
|
| 1706 |
+
_doCryptBlock: function(t, e, r) {
|
| 1707 |
+
this._lBlock = t[e], this._rBlock = t[e + 1], p.call(this, 4, 252645135), p.call(this, 16, 65535), _.call(this, 2, 858993459), _.call(this, 8, 16711935), p.call(this, 1, 1431655765);
|
| 1708 |
+
for (var i = 0; i < 16; i++) {
|
| 1709 |
+
for (var n = r[i], o = this._lBlock, s = this._rBlock, c = 0, a = 0; a < 8; a++) c |= d[a][((s ^ n[a]) & u[a]) >>> 0];
|
| 1710 |
+
this._lBlock = s, this._rBlock = o ^ c
|
| 1711 |
+
}
|
| 1712 |
+
var h = this._lBlock;
|
| 1713 |
+
this._lBlock = this._rBlock, this._rBlock = h, p.call(this, 1, 1431655765), _.call(this, 8, 16711935), _.call(this, 2, 858993459), p.call(this, 16, 65535), p.call(this, 4, 252645135), t[e] = this._lBlock, t[e + 1] = this._rBlock
|
| 1714 |
+
},
|
| 1715 |
+
keySize: 2,
|
| 1716 |
+
ivSize: 2,
|
| 1717 |
+
blockSize: 2
|
| 1718 |
+
});
|
| 1719 |
+
|
| 1720 |
+
function p(t, e) {
|
| 1721 |
+
var r = (this._lBlock >>> t ^ this._rBlock) & e;
|
| 1722 |
+
this._rBlock ^= r, this._lBlock ^= r << t
|
| 1723 |
+
}
|
| 1724 |
+
|
| 1725 |
+
function _(t, e) {
|
| 1726 |
+
var r = (this._rBlock >>> t ^ this._lBlock) & e;
|
| 1727 |
+
this._lBlock ^= r, this._rBlock ^= r << t
|
| 1728 |
+
}
|
| 1729 |
+
t.DES = r._createHelper(o);
|
| 1730 |
+
var s = i.TripleDES = r.extend({
|
| 1731 |
+
_doReset: function() {
|
| 1732 |
+
var t = this._key.words;
|
| 1733 |
+
if (2 !== t.length && 4 !== t.length && t.length < 6) throw new Error("Invalid key length - 3DES requires the key length to be 64, 128, 192 or >192.");
|
| 1734 |
+
var e = t.slice(0, 2),
|
| 1735 |
+
r = t.length < 4 ? t.slice(0, 2) : t.slice(2, 4),
|
| 1736 |
+
i = t.length < 6 ? t.slice(0, 2) : t.slice(4, 6);
|
| 1737 |
+
this._des1 = o.createEncryptor(n.create(e)), this._des2 = o.createEncryptor(n.create(r)), this._des3 = o.createEncryptor(n.create(i))
|
| 1738 |
+
},
|
| 1739 |
+
encryptBlock: function(t, e) {
|
| 1740 |
+
this._des1.encryptBlock(t, e), this._des2.decryptBlock(t, e), this._des3.encryptBlock(t, e)
|
| 1741 |
+
},
|
| 1742 |
+
decryptBlock: function(t, e) {
|
| 1743 |
+
this._des3.decryptBlock(t, e), this._des2.encryptBlock(t, e), this._des1.decryptBlock(t, e)
|
| 1744 |
+
},
|
| 1745 |
+
keySize: 6,
|
| 1746 |
+
ivSize: 2,
|
| 1747 |
+
blockSize: 2
|
| 1748 |
+
});
|
| 1749 |
+
t.TripleDES = r._createHelper(s)
|
| 1750 |
+
}(),
|
| 1751 |
+
function() {
|
| 1752 |
+
var t = bt,
|
| 1753 |
+
e = t.lib.StreamCipher,
|
| 1754 |
+
r = t.algo,
|
| 1755 |
+
i = r.RC4 = e.extend({
|
| 1756 |
+
_doReset: function() {
|
| 1757 |
+
for (var t = this._key, e = t.words, r = t.sigBytes, i = this._S = [], n = 0; n < 256; n++) i[n] = n;
|
| 1758 |
+
n = 0;
|
| 1759 |
+
for (var o = 0; n < 256; n++) {
|
| 1760 |
+
var s = n % r,
|
| 1761 |
+
c = e[s >>> 2] >>> 24 - s % 4 * 8 & 255;
|
| 1762 |
+
o = (o + i[n] + c) % 256;
|
| 1763 |
+
var a = i[n];
|
| 1764 |
+
i[n] = i[o], i[o] = a
|
| 1765 |
+
}
|
| 1766 |
+
this._i = this._j = 0
|
| 1767 |
+
},
|
| 1768 |
+
_doProcessBlock: function(t, e) {
|
| 1769 |
+
t[e] ^= n.call(this)
|
| 1770 |
+
},
|
| 1771 |
+
keySize: 8,
|
| 1772 |
+
ivSize: 0
|
| 1773 |
+
});
|
| 1774 |
+
|
| 1775 |
+
function n() {
|
| 1776 |
+
for (var t = this._S, e = this._i, r = this._j, i = 0, n = 0; n < 4; n++) {
|
| 1777 |
+
r = (r + t[e = (e + 1) % 256]) % 256;
|
| 1778 |
+
var o = t[e];
|
| 1779 |
+
t[e] = t[r], t[r] = o, i |= t[(t[e] + t[r]) % 256] << 24 - 8 * n
|
| 1780 |
+
}
|
| 1781 |
+
return this._i = e, this._j = r, i
|
| 1782 |
+
}
|
| 1783 |
+
t.RC4 = e._createHelper(i);
|
| 1784 |
+
var o = r.RC4Drop = i.extend({
|
| 1785 |
+
cfg: i.cfg.extend({
|
| 1786 |
+
drop: 192
|
| 1787 |
+
}),
|
| 1788 |
+
_doReset: function() {
|
| 1789 |
+
i._doReset.call(this);
|
| 1790 |
+
for (var t = this.cfg.drop; 0 < t; t--) n.call(this)
|
| 1791 |
+
}
|
| 1792 |
+
});
|
| 1793 |
+
t.RC4Drop = e._createHelper(o)
|
| 1794 |
+
}(), bt.mode.CTRGladman = (ot = bt.lib.BlockCipherMode.extend(), st = ot.Encryptor = ot.extend({
|
| 1795 |
+
processBlock: function(t, e) {
|
| 1796 |
+
var r, i = this._cipher,
|
| 1797 |
+
n = i.blockSize,
|
| 1798 |
+
o = this._iv,
|
| 1799 |
+
s = this._counter;
|
| 1800 |
+
o && (s = this._counter = o.slice(0), this._iv = void 0), 0 === ((r = s)[0] = Et(r[0])) && (r[1] = Et(r[1]));
|
| 1801 |
+
var c = s.slice(0);
|
| 1802 |
+
i.encryptBlock(c, 0);
|
| 1803 |
+
for (var a = 0; a < n; a++) t[e + a] ^= c[a]
|
| 1804 |
+
}
|
| 1805 |
+
}), ot.Decryptor = st, ot), at = (ct = bt).lib.StreamCipher, ht = ct.algo, lt = [], ft = [], dt = [], ut = ht.Rabbit = at.extend({
|
| 1806 |
+
_doReset: function() {
|
| 1807 |
+
for (var t = this._key.words, e = this.cfg.iv, r = 0; r < 4; r++) t[r] = 16711935 & (t[r] << 8 | t[r] >>> 24) | 4278255360 & (t[r] << 24 | t[r] >>> 8);
|
| 1808 |
+
var i = this._X = [t[0], t[3] << 16 | t[2] >>> 16, t[1], t[0] << 16 | t[3] >>> 16, t[2], t[1] << 16 | t[0] >>> 16, t[3], t[2] << 16 | t[1] >>> 16],
|
| 1809 |
+
n = this._C = [t[2] << 16 | t[2] >>> 16, 4294901760 & t[0] | 65535 & t[1], t[3] << 16 | t[3] >>> 16, 4294901760 & t[1] | 65535 & t[2], t[0] << 16 | t[0] >>> 16, 4294901760 & t[2] | 65535 & t[3], t[1] << 16 | t[1] >>> 16, 4294901760 & t[3] | 65535 & t[0]];
|
| 1810 |
+
for (r = this._b = 0; r < 4; r++) Rt.call(this);
|
| 1811 |
+
for (r = 0; r < 8; r++) n[r] ^= i[r + 4 & 7];
|
| 1812 |
+
if (e) {
|
| 1813 |
+
var o = e.words,
|
| 1814 |
+
s = o[0],
|
| 1815 |
+
c = o[1],
|
| 1816 |
+
a = 16711935 & (s << 8 | s >>> 24) | 4278255360 & (s << 24 | s >>> 8),
|
| 1817 |
+
h = 16711935 & (c << 8 | c >>> 24) | 4278255360 & (c << 24 | c >>> 8),
|
| 1818 |
+
l = a >>> 16 | 4294901760 & h,
|
| 1819 |
+
f = h << 16 | 65535 & a;
|
| 1820 |
+
n[0] ^= a, n[1] ^= l, n[2] ^= h, n[3] ^= f, n[4] ^= a, n[5] ^= l, n[6] ^= h, n[7] ^= f;
|
| 1821 |
+
for (r = 0; r < 4; r++) Rt.call(this)
|
| 1822 |
+
}
|
| 1823 |
+
},
|
| 1824 |
+
_doProcessBlock: function(t, e) {
|
| 1825 |
+
var r = this._X;
|
| 1826 |
+
Rt.call(this), lt[0] = r[0] ^ r[5] >>> 16 ^ r[3] << 16, lt[1] = r[2] ^ r[7] >>> 16 ^ r[5] << 16, lt[2] = r[4] ^ r[1] >>> 16 ^ r[7] << 16, lt[3] = r[6] ^ r[3] >>> 16 ^ r[1] << 16;
|
| 1827 |
+
for (var i = 0; i < 4; i++) lt[i] = 16711935 & (lt[i] << 8 | lt[i] >>> 24) | 4278255360 & (lt[i] << 24 | lt[i] >>> 8), t[e + i] ^= lt[i]
|
| 1828 |
+
},
|
| 1829 |
+
blockSize: 4,
|
| 1830 |
+
ivSize: 2
|
| 1831 |
+
}), ct.Rabbit = at._createHelper(ut), bt.mode.CTR = (pt = bt.lib.BlockCipherMode.extend(), _t = pt.Encryptor = pt.extend({
|
| 1832 |
+
processBlock: function(t, e) {
|
| 1833 |
+
var r = this._cipher,
|
| 1834 |
+
i = r.blockSize,
|
| 1835 |
+
n = this._iv,
|
| 1836 |
+
o = this._counter;
|
| 1837 |
+
n && (o = this._counter = n.slice(0), this._iv = void 0);
|
| 1838 |
+
var s = o.slice(0);
|
| 1839 |
+
r.encryptBlock(s, 0), o[i - 1] = o[i - 1] + 1 | 0;
|
| 1840 |
+
for (var c = 0; c < i; c++) t[e + c] ^= s[c]
|
| 1841 |
+
}
|
| 1842 |
+
}), pt.Decryptor = _t, pt), yt = (vt = bt).lib.StreamCipher, gt = vt.algo, Bt = [], wt = [], kt = [], St = gt.RabbitLegacy = yt.extend({
|
| 1843 |
+
_doReset: function() {
|
| 1844 |
+
for (var t = this._key.words, e = this.cfg.iv, r = this._X = [t[0], t[3] << 16 | t[2] >>> 16, t[1], t[0] << 16 | t[3] >>> 16, t[2], t[1] << 16 | t[0] >>> 16, t[3], t[2] << 16 | t[1] >>> 16], i = this._C = [t[2] << 16 | t[2] >>> 16, 4294901760 & t[0] | 65535 & t[1], t[3] << 16 | t[3] >>> 16, 4294901760 & t[1] | 65535 & t[2], t[0] << 16 | t[0] >>> 16, 4294901760 & t[2] | 65535 & t[3], t[1] << 16 | t[1] >>> 16, 4294901760 & t[3] | 65535 & t[0]], n = this._b = 0; n < 4; n++) Mt.call(this);
|
| 1845 |
+
for (n = 0; n < 8; n++) i[n] ^= r[n + 4 & 7];
|
| 1846 |
+
if (e) {
|
| 1847 |
+
var o = e.words,
|
| 1848 |
+
s = o[0],
|
| 1849 |
+
c = o[1],
|
| 1850 |
+
a = 16711935 & (s << 8 | s >>> 24) | 4278255360 & (s << 24 | s >>> 8),
|
| 1851 |
+
h = 16711935 & (c << 8 | c >>> 24) | 4278255360 & (c << 24 | c >>> 8),
|
| 1852 |
+
l = a >>> 16 | 4294901760 & h,
|
| 1853 |
+
f = h << 16 | 65535 & a;
|
| 1854 |
+
i[0] ^= a, i[1] ^= l, i[2] ^= h, i[3] ^= f, i[4] ^= a, i[5] ^= l, i[6] ^= h, i[7] ^= f;
|
| 1855 |
+
for (n = 0; n < 4; n++) Mt.call(this)
|
| 1856 |
+
}
|
| 1857 |
+
},
|
| 1858 |
+
_doProcessBlock: function(t, e) {
|
| 1859 |
+
var r = this._X;
|
| 1860 |
+
Mt.call(this), Bt[0] = r[0] ^ r[5] >>> 16 ^ r[3] << 16, Bt[1] = r[2] ^ r[7] >>> 16 ^ r[5] << 16, Bt[2] = r[4] ^ r[1] >>> 16 ^ r[7] << 16, Bt[3] = r[6] ^ r[3] >>> 16 ^ r[1] << 16;
|
| 1861 |
+
for (var i = 0; i < 4; i++) Bt[i] = 16711935 & (Bt[i] << 8 | Bt[i] >>> 24) | 4278255360 & (Bt[i] << 24 | Bt[i] >>> 8), t[e + i] ^= Bt[i]
|
| 1862 |
+
},
|
| 1863 |
+
blockSize: 4,
|
| 1864 |
+
ivSize: 2
|
| 1865 |
+
}), vt.RabbitLegacy = yt._createHelper(St), bt.pad.ZeroPadding = {
|
| 1866 |
+
pad: function(t, e) {
|
| 1867 |
+
var r = 4 * e;
|
| 1868 |
+
t.clamp(), t.sigBytes += r - (t.sigBytes % r || r)
|
| 1869 |
+
},
|
| 1870 |
+
unpad: function(t) {
|
| 1871 |
+
var e = t.words,
|
| 1872 |
+
r = t.sigBytes - 1;
|
| 1873 |
+
for (r = t.sigBytes - 1; 0 <= r; r--)
|
| 1874 |
+
if (e[r >>> 2] >>> 24 - r % 4 * 8 & 255) {
|
| 1875 |
+
t.sigBytes = r + 1;
|
| 1876 |
+
break
|
| 1877 |
+
}
|
| 1878 |
+
}
|
| 1879 |
+
}, bt
|
| 1880 |
+
});
|
js_free-online-image-upscaler.js
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
js_quene.js
ADDED
|
@@ -0,0 +1,63 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
const queneDropZone = document.getElementById('QueneDropzone');
|
| 2 |
+
const nextFileButton = document.getElementById('nextFileButton');
|
| 3 |
+
|
| 4 |
+
let droppedFiles = [];
|
| 5 |
+
let currentIndex = 0;
|
| 6 |
+
|
| 7 |
+
['dragenter', 'dragover', 'dragleave', 'drop'].forEach(eventName => {
|
| 8 |
+
queneDropZone.addEventListener(eventName, e => {
|
| 9 |
+
e.preventDefault();
|
| 10 |
+
e.stopPropagation();
|
| 11 |
+
}, false);
|
| 12 |
+
});
|
| 13 |
+
|
| 14 |
+
queneDropZone.addEventListener('drop', (e) => {
|
| 15 |
+
|
| 16 |
+
const newFiles = Array.from(e.dataTransfer.files);
|
| 17 |
+
droppedFiles.push(...newFiles);
|
| 18 |
+
|
| 19 |
+
queneDropZone.innerHTML =`Filecount: ${droppedFiles.length}`;
|
| 20 |
+
console.log(`Added ${newFiles.length} new file(s). Total in queue: ${droppedFiles.length}.`);
|
| 21 |
+
|
| 22 |
+
});
|
| 23 |
+
|
| 24 |
+
function startNextImageInQuene(){
|
| 25 |
+
|
| 26 |
+
if (droppedFiles.length === 0) {
|
| 27 |
+
console.log('No files loaded. Drop some files first.');
|
| 28 |
+
queneDropZone.innerHTML ='Add To Quene';
|
| 29 |
+
return;
|
| 30 |
+
}
|
| 31 |
+
|
| 32 |
+
if (currentIndex >= droppedFiles.length) {
|
| 33 |
+
console.log('No more files. Queue is empty. Counter reset.');
|
| 34 |
+
queneDropZone.innerHTML ='Add To Quene';
|
| 35 |
+
currentIndex = 0;
|
| 36 |
+
droppedFiles = [];
|
| 37 |
+
return;
|
| 38 |
+
}
|
| 39 |
+
|
| 40 |
+
file = droppedFiles[currentIndex];
|
| 41 |
+
|
| 42 |
+
dataTransfer = new DataTransfer();
|
| 43 |
+
dataTransfer.items.add(file);
|
| 44 |
+
|
| 45 |
+
dropEvent = new DragEvent("drop", {
|
| 46 |
+
dataTransfer,
|
| 47 |
+
bubbles: true,
|
| 48 |
+
cancelable: true
|
| 49 |
+
});
|
| 50 |
+
|
| 51 |
+
dropZone = document.querySelector("#drag-zone2");
|
| 52 |
+
dropZone.dispatchEvent(dropEvent);
|
| 53 |
+
|
| 54 |
+
console.log(`File ${currentIndex + 1} of ${droppedFiles.length} Name: ${file.name}`);
|
| 55 |
+
|
| 56 |
+
currentIndex++;
|
| 57 |
+
|
| 58 |
+
queneDropZone.innerHTML =`Filecount: ${droppedFiles.length - currentIndex +1}`;
|
| 59 |
+
};
|
| 60 |
+
|
| 61 |
+
nextFileButton.addEventListener('click', () => {
|
| 62 |
+
startNextImageInQuene();
|
| 63 |
+
});
|
js_spark-md5.min.js
ADDED
|
@@ -0,0 +1,473 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
(function(factory) {
|
| 2 |
+
if (typeof exports === "object") {
|
| 3 |
+
module.exports = factory()
|
| 4 |
+
} else if (typeof define === "function" && define.amd) {
|
| 5 |
+
define(factory)
|
| 6 |
+
} else {
|
| 7 |
+
var glob;
|
| 8 |
+
try {
|
| 9 |
+
glob = window
|
| 10 |
+
} catch (e) {
|
| 11 |
+
glob = self
|
| 12 |
+
}
|
| 13 |
+
glob.SparkMD5 = factory()
|
| 14 |
+
}
|
| 15 |
+
})(function(undefined) {
|
| 16 |
+
"use strict";
|
| 17 |
+
var add32 = function(a, b) {
|
| 18 |
+
return a + b & 4294967295
|
| 19 |
+
},
|
| 20 |
+
hex_chr = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f"];
|
| 21 |
+
|
| 22 |
+
function cmn(q, a, b, x, s, t) {
|
| 23 |
+
a = add32(add32(a, q), add32(x, t));
|
| 24 |
+
return add32(a << s | a >>> 32 - s, b)
|
| 25 |
+
}
|
| 26 |
+
|
| 27 |
+
function md5cycle(x, k) {
|
| 28 |
+
var a = x[0],
|
| 29 |
+
b = x[1],
|
| 30 |
+
c = x[2],
|
| 31 |
+
d = x[3];
|
| 32 |
+
a += (b & c | ~b & d) + k[0] - 680876936 | 0;
|
| 33 |
+
a = (a << 7 | a >>> 25) + b | 0;
|
| 34 |
+
d += (a & b | ~a & c) + k[1] - 389564586 | 0;
|
| 35 |
+
d = (d << 12 | d >>> 20) + a | 0;
|
| 36 |
+
c += (d & a | ~d & b) + k[2] + 606105819 | 0;
|
| 37 |
+
c = (c << 17 | c >>> 15) + d | 0;
|
| 38 |
+
b += (c & d | ~c & a) + k[3] - 1044525330 | 0;
|
| 39 |
+
b = (b << 22 | b >>> 10) + c | 0;
|
| 40 |
+
a += (b & c | ~b & d) + k[4] - 176418897 | 0;
|
| 41 |
+
a = (a << 7 | a >>> 25) + b | 0;
|
| 42 |
+
d += (a & b | ~a & c) + k[5] + 1200080426 | 0;
|
| 43 |
+
d = (d << 12 | d >>> 20) + a | 0;
|
| 44 |
+
c += (d & a | ~d & b) + k[6] - 1473231341 | 0;
|
| 45 |
+
c = (c << 17 | c >>> 15) + d | 0;
|
| 46 |
+
b += (c & d | ~c & a) + k[7] - 45705983 | 0;
|
| 47 |
+
b = (b << 22 | b >>> 10) + c | 0;
|
| 48 |
+
a += (b & c | ~b & d) + k[8] + 1770035416 | 0;
|
| 49 |
+
a = (a << 7 | a >>> 25) + b | 0;
|
| 50 |
+
d += (a & b | ~a & c) + k[9] - 1958414417 | 0;
|
| 51 |
+
d = (d << 12 | d >>> 20) + a | 0;
|
| 52 |
+
c += (d & a | ~d & b) + k[10] - 42063 | 0;
|
| 53 |
+
c = (c << 17 | c >>> 15) + d | 0;
|
| 54 |
+
b += (c & d | ~c & a) + k[11] - 1990404162 | 0;
|
| 55 |
+
b = (b << 22 | b >>> 10) + c | 0;
|
| 56 |
+
a += (b & c | ~b & d) + k[12] + 1804603682 | 0;
|
| 57 |
+
a = (a << 7 | a >>> 25) + b | 0;
|
| 58 |
+
d += (a & b | ~a & c) + k[13] - 40341101 | 0;
|
| 59 |
+
d = (d << 12 | d >>> 20) + a | 0;
|
| 60 |
+
c += (d & a | ~d & b) + k[14] - 1502002290 | 0;
|
| 61 |
+
c = (c << 17 | c >>> 15) + d | 0;
|
| 62 |
+
b += (c & d | ~c & a) + k[15] + 1236535329 | 0;
|
| 63 |
+
b = (b << 22 | b >>> 10) + c | 0;
|
| 64 |
+
a += (b & d | c & ~d) + k[1] - 165796510 | 0;
|
| 65 |
+
a = (a << 5 | a >>> 27) + b | 0;
|
| 66 |
+
d += (a & c | b & ~c) + k[6] - 1069501632 | 0;
|
| 67 |
+
d = (d << 9 | d >>> 23) + a | 0;
|
| 68 |
+
c += (d & b | a & ~b) + k[11] + 643717713 | 0;
|
| 69 |
+
c = (c << 14 | c >>> 18) + d | 0;
|
| 70 |
+
b += (c & a | d & ~a) + k[0] - 373897302 | 0;
|
| 71 |
+
b = (b << 20 | b >>> 12) + c | 0;
|
| 72 |
+
a += (b & d | c & ~d) + k[5] - 701558691 | 0;
|
| 73 |
+
a = (a << 5 | a >>> 27) + b | 0;
|
| 74 |
+
d += (a & c | b & ~c) + k[10] + 38016083 | 0;
|
| 75 |
+
d = (d << 9 | d >>> 23) + a | 0;
|
| 76 |
+
c += (d & b | a & ~b) + k[15] - 660478335 | 0;
|
| 77 |
+
c = (c << 14 | c >>> 18) + d | 0;
|
| 78 |
+
b += (c & a | d & ~a) + k[4] - 405537848 | 0;
|
| 79 |
+
b = (b << 20 | b >>> 12) + c | 0;
|
| 80 |
+
a += (b & d | c & ~d) + k[9] + 568446438 | 0;
|
| 81 |
+
a = (a << 5 | a >>> 27) + b | 0;
|
| 82 |
+
d += (a & c | b & ~c) + k[14] - 1019803690 | 0;
|
| 83 |
+
d = (d << 9 | d >>> 23) + a | 0;
|
| 84 |
+
c += (d & b | a & ~b) + k[3] - 187363961 | 0;
|
| 85 |
+
c = (c << 14 | c >>> 18) + d | 0;
|
| 86 |
+
b += (c & a | d & ~a) + k[8] + 1163531501 | 0;
|
| 87 |
+
b = (b << 20 | b >>> 12) + c | 0;
|
| 88 |
+
a += (b & d | c & ~d) + k[13] - 1444681467 | 0;
|
| 89 |
+
a = (a << 5 | a >>> 27) + b | 0;
|
| 90 |
+
d += (a & c | b & ~c) + k[2] - 51403784 | 0;
|
| 91 |
+
d = (d << 9 | d >>> 23) + a | 0;
|
| 92 |
+
c += (d & b | a & ~b) + k[7] + 1735328473 | 0;
|
| 93 |
+
c = (c << 14 | c >>> 18) + d | 0;
|
| 94 |
+
b += (c & a | d & ~a) + k[12] - 1926607734 | 0;
|
| 95 |
+
b = (b << 20 | b >>> 12) + c | 0;
|
| 96 |
+
a += (b ^ c ^ d) + k[5] - 378558 | 0;
|
| 97 |
+
a = (a << 4 | a >>> 28) + b | 0;
|
| 98 |
+
d += (a ^ b ^ c) + k[8] - 2022574463 | 0;
|
| 99 |
+
d = (d << 11 | d >>> 21) + a | 0;
|
| 100 |
+
c += (d ^ a ^ b) + k[11] + 1839030562 | 0;
|
| 101 |
+
c = (c << 16 | c >>> 16) + d | 0;
|
| 102 |
+
b += (c ^ d ^ a) + k[14] - 35309556 | 0;
|
| 103 |
+
b = (b << 23 | b >>> 9) + c | 0;
|
| 104 |
+
a += (b ^ c ^ d) + k[1] - 1530992060 | 0;
|
| 105 |
+
a = (a << 4 | a >>> 28) + b | 0;
|
| 106 |
+
d += (a ^ b ^ c) + k[4] + 1272893353 | 0;
|
| 107 |
+
d = (d << 11 | d >>> 21) + a | 0;
|
| 108 |
+
c += (d ^ a ^ b) + k[7] - 155497632 | 0;
|
| 109 |
+
c = (c << 16 | c >>> 16) + d | 0;
|
| 110 |
+
b += (c ^ d ^ a) + k[10] - 1094730640 | 0;
|
| 111 |
+
b = (b << 23 | b >>> 9) + c | 0;
|
| 112 |
+
a += (b ^ c ^ d) + k[13] + 681279174 | 0;
|
| 113 |
+
a = (a << 4 | a >>> 28) + b | 0;
|
| 114 |
+
d += (a ^ b ^ c) + k[0] - 358537222 | 0;
|
| 115 |
+
d = (d << 11 | d >>> 21) + a | 0;
|
| 116 |
+
c += (d ^ a ^ b) + k[3] - 722521979 | 0;
|
| 117 |
+
c = (c << 16 | c >>> 16) + d | 0;
|
| 118 |
+
b += (c ^ d ^ a) + k[6] + 76029189 | 0;
|
| 119 |
+
b = (b << 23 | b >>> 9) + c | 0;
|
| 120 |
+
a += (b ^ c ^ d) + k[9] - 640364487 | 0;
|
| 121 |
+
a = (a << 4 | a >>> 28) + b | 0;
|
| 122 |
+
d += (a ^ b ^ c) + k[12] - 421815835 | 0;
|
| 123 |
+
d = (d << 11 | d >>> 21) + a | 0;
|
| 124 |
+
c += (d ^ a ^ b) + k[15] + 530742520 | 0;
|
| 125 |
+
c = (c << 16 | c >>> 16) + d | 0;
|
| 126 |
+
b += (c ^ d ^ a) + k[2] - 995338651 | 0;
|
| 127 |
+
b = (b << 23 | b >>> 9) + c | 0;
|
| 128 |
+
a += (c ^ (b | ~d)) + k[0] - 198630844 | 0;
|
| 129 |
+
a = (a << 6 | a >>> 26) + b | 0;
|
| 130 |
+
d += (b ^ (a | ~c)) + k[7] + 1126891415 | 0;
|
| 131 |
+
d = (d << 10 | d >>> 22) + a | 0;
|
| 132 |
+
c += (a ^ (d | ~b)) + k[14] - 1416354905 | 0;
|
| 133 |
+
c = (c << 15 | c >>> 17) + d | 0;
|
| 134 |
+
b += (d ^ (c | ~a)) + k[5] - 57434055 | 0;
|
| 135 |
+
b = (b << 21 | b >>> 11) + c | 0;
|
| 136 |
+
a += (c ^ (b | ~d)) + k[12] + 1700485571 | 0;
|
| 137 |
+
a = (a << 6 | a >>> 26) + b | 0;
|
| 138 |
+
d += (b ^ (a | ~c)) + k[3] - 1894986606 | 0;
|
| 139 |
+
d = (d << 10 | d >>> 22) + a | 0;
|
| 140 |
+
c += (a ^ (d | ~b)) + k[10] - 1051523 | 0;
|
| 141 |
+
c = (c << 15 | c >>> 17) + d | 0;
|
| 142 |
+
b += (d ^ (c | ~a)) + k[1] - 2054922799 | 0;
|
| 143 |
+
b = (b << 21 | b >>> 11) + c | 0;
|
| 144 |
+
a += (c ^ (b | ~d)) + k[8] + 1873313359 | 0;
|
| 145 |
+
a = (a << 6 | a >>> 26) + b | 0;
|
| 146 |
+
d += (b ^ (a | ~c)) + k[15] - 30611744 | 0;
|
| 147 |
+
d = (d << 10 | d >>> 22) + a | 0;
|
| 148 |
+
c += (a ^ (d | ~b)) + k[6] - 1560198380 | 0;
|
| 149 |
+
c = (c << 15 | c >>> 17) + d | 0;
|
| 150 |
+
b += (d ^ (c | ~a)) + k[13] + 1309151649 | 0;
|
| 151 |
+
b = (b << 21 | b >>> 11) + c | 0;
|
| 152 |
+
a += (c ^ (b | ~d)) + k[4] - 145523070 | 0;
|
| 153 |
+
a = (a << 6 | a >>> 26) + b | 0;
|
| 154 |
+
d += (b ^ (a | ~c)) + k[11] - 1120210379 | 0;
|
| 155 |
+
d = (d << 10 | d >>> 22) + a | 0;
|
| 156 |
+
c += (a ^ (d | ~b)) + k[2] + 718787259 | 0;
|
| 157 |
+
c = (c << 15 | c >>> 17) + d | 0;
|
| 158 |
+
b += (d ^ (c | ~a)) + k[9] - 343485551 | 0;
|
| 159 |
+
b = (b << 21 | b >>> 11) + c | 0;
|
| 160 |
+
x[0] = a + x[0] | 0;
|
| 161 |
+
x[1] = b + x[1] | 0;
|
| 162 |
+
x[2] = c + x[2] | 0;
|
| 163 |
+
x[3] = d + x[3] | 0
|
| 164 |
+
}
|
| 165 |
+
|
| 166 |
+
function md5blk(s) {
|
| 167 |
+
var md5blks = [],
|
| 168 |
+
i;
|
| 169 |
+
for (i = 0; i < 64; i += 4) {
|
| 170 |
+
md5blks[i >> 2] = s.charCodeAt(i) + (s.charCodeAt(i + 1) << 8) + (s.charCodeAt(i + 2) << 16) + (s.charCodeAt(i + 3) << 24)
|
| 171 |
+
}
|
| 172 |
+
return md5blks
|
| 173 |
+
}
|
| 174 |
+
|
| 175 |
+
function md5blk_array(a) {
|
| 176 |
+
var md5blks = [],
|
| 177 |
+
i;
|
| 178 |
+
for (i = 0; i < 64; i += 4) {
|
| 179 |
+
md5blks[i >> 2] = a[i] + (a[i + 1] << 8) + (a[i + 2] << 16) + (a[i + 3] << 24)
|
| 180 |
+
}
|
| 181 |
+
return md5blks
|
| 182 |
+
}
|
| 183 |
+
|
| 184 |
+
function md51(s) {
|
| 185 |
+
var n = s.length,
|
| 186 |
+
state = [1732584193, -271733879, -1732584194, 271733878],
|
| 187 |
+
i, length, tail, tmp, lo, hi;
|
| 188 |
+
for (i = 64; i <= n; i += 64) {
|
| 189 |
+
md5cycle(state, md5blk(s.substring(i - 64, i)))
|
| 190 |
+
}
|
| 191 |
+
s = s.substring(i - 64);
|
| 192 |
+
length = s.length;
|
| 193 |
+
tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
|
| 194 |
+
for (i = 0; i < length; i += 1) {
|
| 195 |
+
tail[i >> 2] |= s.charCodeAt(i) << (i % 4 << 3)
|
| 196 |
+
}
|
| 197 |
+
tail[i >> 2] |= 128 << (i % 4 << 3);
|
| 198 |
+
if (i > 55) {
|
| 199 |
+
md5cycle(state, tail);
|
| 200 |
+
for (i = 0; i < 16; i += 1) {
|
| 201 |
+
tail[i] = 0
|
| 202 |
+
}
|
| 203 |
+
}
|
| 204 |
+
tmp = n * 8;
|
| 205 |
+
tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);
|
| 206 |
+
lo = parseInt(tmp[2], 16);
|
| 207 |
+
hi = parseInt(tmp[1], 16) || 0;
|
| 208 |
+
tail[14] = lo;
|
| 209 |
+
tail[15] = hi;
|
| 210 |
+
md5cycle(state, tail);
|
| 211 |
+
return state
|
| 212 |
+
}
|
| 213 |
+
|
| 214 |
+
function md51_array(a) {
|
| 215 |
+
var n = a.length,
|
| 216 |
+
state = [1732584193, -271733879, -1732584194, 271733878],
|
| 217 |
+
i, length, tail, tmp, lo, hi;
|
| 218 |
+
for (i = 64; i <= n; i += 64) {
|
| 219 |
+
md5cycle(state, md5blk_array(a.subarray(i - 64, i)))
|
| 220 |
+
}
|
| 221 |
+
a = i - 64 < n ? a.subarray(i - 64) : new Uint8Array(0);
|
| 222 |
+
length = a.length;
|
| 223 |
+
tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
|
| 224 |
+
for (i = 0; i < length; i += 1) {
|
| 225 |
+
tail[i >> 2] |= a[i] << (i % 4 << 3)
|
| 226 |
+
}
|
| 227 |
+
tail[i >> 2] |= 128 << (i % 4 << 3);
|
| 228 |
+
if (i > 55) {
|
| 229 |
+
md5cycle(state, tail);
|
| 230 |
+
for (i = 0; i < 16; i += 1) {
|
| 231 |
+
tail[i] = 0
|
| 232 |
+
}
|
| 233 |
+
}
|
| 234 |
+
tmp = n * 8;
|
| 235 |
+
tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);
|
| 236 |
+
lo = parseInt(tmp[2], 16);
|
| 237 |
+
hi = parseInt(tmp[1], 16) || 0;
|
| 238 |
+
tail[14] = lo;
|
| 239 |
+
tail[15] = hi;
|
| 240 |
+
md5cycle(state, tail);
|
| 241 |
+
return state
|
| 242 |
+
}
|
| 243 |
+
|
| 244 |
+
function rhex(n) {
|
| 245 |
+
var s = "",
|
| 246 |
+
j;
|
| 247 |
+
for (j = 0; j < 4; j += 1) {
|
| 248 |
+
s += hex_chr[n >> j * 8 + 4 & 15] + hex_chr[n >> j * 8 & 15]
|
| 249 |
+
}
|
| 250 |
+
return s
|
| 251 |
+
}
|
| 252 |
+
|
| 253 |
+
function hex(x) {
|
| 254 |
+
var i;
|
| 255 |
+
for (i = 0; i < x.length; i += 1) {
|
| 256 |
+
x[i] = rhex(x[i])
|
| 257 |
+
}
|
| 258 |
+
return x.join("")
|
| 259 |
+
}
|
| 260 |
+
if (hex(md51("hello")) !== "5d41402abc4b2a76b9719d911017c592") {
|
| 261 |
+
add32 = function(x, y) {
|
| 262 |
+
var lsw = (x & 65535) + (y & 65535),
|
| 263 |
+
msw = (x >> 16) + (y >> 16) + (lsw >> 16);
|
| 264 |
+
return msw << 16 | lsw & 65535
|
| 265 |
+
}
|
| 266 |
+
}
|
| 267 |
+
if (typeof ArrayBuffer !== "undefined" && !ArrayBuffer.prototype.slice) {
|
| 268 |
+
(function() {
|
| 269 |
+
function clamp(val, length) {
|
| 270 |
+
val = val | 0 || 0;
|
| 271 |
+
if (val < 0) {
|
| 272 |
+
return Math.max(val + length, 0)
|
| 273 |
+
}
|
| 274 |
+
return Math.min(val, length)
|
| 275 |
+
}
|
| 276 |
+
ArrayBuffer.prototype.slice = function(from, to) {
|
| 277 |
+
var length = this.byteLength,
|
| 278 |
+
begin = clamp(from, length),
|
| 279 |
+
end = length,
|
| 280 |
+
num, target, targetArray, sourceArray;
|
| 281 |
+
if (to !== undefined) {
|
| 282 |
+
end = clamp(to, length)
|
| 283 |
+
}
|
| 284 |
+
if (begin > end) {
|
| 285 |
+
return new ArrayBuffer(0)
|
| 286 |
+
}
|
| 287 |
+
num = end - begin;
|
| 288 |
+
target = new ArrayBuffer(num);
|
| 289 |
+
targetArray = new Uint8Array(target);
|
| 290 |
+
sourceArray = new Uint8Array(this, begin, num);
|
| 291 |
+
targetArray.set(sourceArray);
|
| 292 |
+
return target
|
| 293 |
+
}
|
| 294 |
+
})()
|
| 295 |
+
}
|
| 296 |
+
|
| 297 |
+
function toUtf8(str) {
|
| 298 |
+
if (/[\u0080-\uFFFF]/.test(str)) {
|
| 299 |
+
str = unescape(encodeURIComponent(str))
|
| 300 |
+
}
|
| 301 |
+
return str
|
| 302 |
+
}
|
| 303 |
+
|
| 304 |
+
function utf8Str2ArrayBuffer(str, returnUInt8Array) {
|
| 305 |
+
var length = str.length,
|
| 306 |
+
buff = new ArrayBuffer(length),
|
| 307 |
+
arr = new Uint8Array(buff),
|
| 308 |
+
i;
|
| 309 |
+
for (i = 0; i < length; i += 1) {
|
| 310 |
+
arr[i] = str.charCodeAt(i)
|
| 311 |
+
}
|
| 312 |
+
return returnUInt8Array ? arr : buff
|
| 313 |
+
}
|
| 314 |
+
|
| 315 |
+
function arrayBuffer2Utf8Str(buff) {
|
| 316 |
+
return String.fromCharCode.apply(null, new Uint8Array(buff))
|
| 317 |
+
}
|
| 318 |
+
|
| 319 |
+
function concatenateArrayBuffers(first, second, returnUInt8Array) {
|
| 320 |
+
var result = new Uint8Array(first.byteLength + second.byteLength);
|
| 321 |
+
result.set(new Uint8Array(first));
|
| 322 |
+
result.set(new Uint8Array(second), first.byteLength);
|
| 323 |
+
return returnUInt8Array ? result : result.buffer
|
| 324 |
+
}
|
| 325 |
+
|
| 326 |
+
function hexToBinaryString(hex) {
|
| 327 |
+
var bytes = [],
|
| 328 |
+
length = hex.length,
|
| 329 |
+
x;
|
| 330 |
+
for (x = 0; x < length - 1; x += 2) {
|
| 331 |
+
bytes.push(parseInt(hex.substr(x, 2), 16))
|
| 332 |
+
}
|
| 333 |
+
return String.fromCharCode.apply(String, bytes)
|
| 334 |
+
}
|
| 335 |
+
|
| 336 |
+
function SparkMD5() {
|
| 337 |
+
this.reset()
|
| 338 |
+
}
|
| 339 |
+
SparkMD5.prototype.append = function(str) {
|
| 340 |
+
this.appendBinary(toUtf8(str));
|
| 341 |
+
return this
|
| 342 |
+
};
|
| 343 |
+
SparkMD5.prototype.appendBinary = function(contents) {
|
| 344 |
+
this._buff += contents;
|
| 345 |
+
this._length += contents.length;
|
| 346 |
+
var length = this._buff.length,
|
| 347 |
+
i;
|
| 348 |
+
for (i = 64; i <= length; i += 64) {
|
| 349 |
+
md5cycle(this._hash, md5blk(this._buff.substring(i - 64, i)))
|
| 350 |
+
}
|
| 351 |
+
this._buff = this._buff.substring(i - 64);
|
| 352 |
+
return this
|
| 353 |
+
};
|
| 354 |
+
SparkMD5.prototype.end = function(raw) {
|
| 355 |
+
var buff = this._buff,
|
| 356 |
+
length = buff.length,
|
| 357 |
+
i, tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
| 358 |
+
ret;
|
| 359 |
+
for (i = 0; i < length; i += 1) {
|
| 360 |
+
tail[i >> 2] |= buff.charCodeAt(i) << (i % 4 << 3)
|
| 361 |
+
}
|
| 362 |
+
this._finish(tail, length);
|
| 363 |
+
ret = hex(this._hash);
|
| 364 |
+
if (raw) {
|
| 365 |
+
ret = hexToBinaryString(ret)
|
| 366 |
+
}
|
| 367 |
+
this.reset();
|
| 368 |
+
return ret
|
| 369 |
+
};
|
| 370 |
+
SparkMD5.prototype.reset = function() {
|
| 371 |
+
this._buff = "";
|
| 372 |
+
this._length = 0;
|
| 373 |
+
this._hash = [1732584193, -271733879, -1732584194, 271733878];
|
| 374 |
+
return this
|
| 375 |
+
};
|
| 376 |
+
SparkMD5.prototype.getState = function() {
|
| 377 |
+
return {
|
| 378 |
+
buff: this._buff,
|
| 379 |
+
length: this._length,
|
| 380 |
+
hash: this._hash.slice()
|
| 381 |
+
}
|
| 382 |
+
};
|
| 383 |
+
SparkMD5.prototype.setState = function(state) {
|
| 384 |
+
this._buff = state.buff;
|
| 385 |
+
this._length = state.length;
|
| 386 |
+
this._hash = state.hash;
|
| 387 |
+
return this
|
| 388 |
+
};
|
| 389 |
+
SparkMD5.prototype.destroy = function() {
|
| 390 |
+
delete this._hash;
|
| 391 |
+
delete this._buff;
|
| 392 |
+
delete this._length
|
| 393 |
+
};
|
| 394 |
+
SparkMD5.prototype._finish = function(tail, length) {
|
| 395 |
+
var i = length,
|
| 396 |
+
tmp, lo, hi;
|
| 397 |
+
tail[i >> 2] |= 128 << (i % 4 << 3);
|
| 398 |
+
if (i > 55) {
|
| 399 |
+
md5cycle(this._hash, tail);
|
| 400 |
+
for (i = 0; i < 16; i += 1) {
|
| 401 |
+
tail[i] = 0
|
| 402 |
+
}
|
| 403 |
+
}
|
| 404 |
+
tmp = this._length * 8;
|
| 405 |
+
tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);
|
| 406 |
+
lo = parseInt(tmp[2], 16);
|
| 407 |
+
hi = parseInt(tmp[1], 16) || 0;
|
| 408 |
+
tail[14] = lo;
|
| 409 |
+
tail[15] = hi;
|
| 410 |
+
md5cycle(this._hash, tail)
|
| 411 |
+
};
|
| 412 |
+
SparkMD5.hash = function(str, raw) {
|
| 413 |
+
return SparkMD5.hashBinary(toUtf8(str), raw)
|
| 414 |
+
};
|
| 415 |
+
SparkMD5.hashBinary = function(content, raw) {
|
| 416 |
+
var hash = md51(content),
|
| 417 |
+
ret = hex(hash);
|
| 418 |
+
return raw ? hexToBinaryString(ret) : ret
|
| 419 |
+
};
|
| 420 |
+
SparkMD5.ArrayBuffer = function() {
|
| 421 |
+
this.reset()
|
| 422 |
+
};
|
| 423 |
+
SparkMD5.ArrayBuffer.prototype.append = function(arr) {
|
| 424 |
+
var buff = concatenateArrayBuffers(this._buff.buffer, arr, true),
|
| 425 |
+
length = buff.length,
|
| 426 |
+
i;
|
| 427 |
+
this._length += arr.byteLength;
|
| 428 |
+
for (i = 64; i <= length; i += 64) {
|
| 429 |
+
md5cycle(this._hash, md5blk_array(buff.subarray(i - 64, i)))
|
| 430 |
+
}
|
| 431 |
+
this._buff = i - 64 < length ? new Uint8Array(buff.buffer.slice(i - 64)) : new Uint8Array(0);
|
| 432 |
+
return this
|
| 433 |
+
};
|
| 434 |
+
SparkMD5.ArrayBuffer.prototype.end = function(raw) {
|
| 435 |
+
var buff = this._buff,
|
| 436 |
+
length = buff.length,
|
| 437 |
+
tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
| 438 |
+
i, ret;
|
| 439 |
+
for (i = 0; i < length; i += 1) {
|
| 440 |
+
tail[i >> 2] |= buff[i] << (i % 4 << 3)
|
| 441 |
+
}
|
| 442 |
+
this._finish(tail, length);
|
| 443 |
+
ret = hex(this._hash);
|
| 444 |
+
if (raw) {
|
| 445 |
+
ret = hexToBinaryString(ret)
|
| 446 |
+
}
|
| 447 |
+
this.reset();
|
| 448 |
+
return ret
|
| 449 |
+
};
|
| 450 |
+
SparkMD5.ArrayBuffer.prototype.reset = function() {
|
| 451 |
+
this._buff = new Uint8Array(0);
|
| 452 |
+
this._length = 0;
|
| 453 |
+
this._hash = [1732584193, -271733879, -1732584194, 271733878];
|
| 454 |
+
return this
|
| 455 |
+
};
|
| 456 |
+
SparkMD5.ArrayBuffer.prototype.getState = function() {
|
| 457 |
+
var state = SparkMD5.prototype.getState.call(this);
|
| 458 |
+
state.buff = arrayBuffer2Utf8Str(state.buff);
|
| 459 |
+
return state
|
| 460 |
+
};
|
| 461 |
+
SparkMD5.ArrayBuffer.prototype.setState = function(state) {
|
| 462 |
+
state.buff = utf8Str2ArrayBuffer(state.buff, true);
|
| 463 |
+
return SparkMD5.prototype.setState.call(this, state)
|
| 464 |
+
};
|
| 465 |
+
SparkMD5.ArrayBuffer.prototype.destroy = SparkMD5.prototype.destroy;
|
| 466 |
+
SparkMD5.ArrayBuffer.prototype._finish = SparkMD5.prototype._finish;
|
| 467 |
+
SparkMD5.ArrayBuffer.hash = function(arr, raw) {
|
| 468 |
+
var hash = md51_array(new Uint8Array(arr)),
|
| 469 |
+
ret = hex(hash);
|
| 470 |
+
return raw ? hexToBinaryString(ret) : ret
|
| 471 |
+
};
|
| 472 |
+
return SparkMD5
|
| 473 |
+
});
|
js_translation.js
ADDED
|
@@ -0,0 +1,747 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
!(function(global, jQuery) {
|
| 2 |
+
var $ = jQuery;
|
| 3 |
+
global.aiss || (global.aiss = {});
|
| 4 |
+
var tr = window.translation = global.aiss.i18n = {
|
| 5 |
+
langs: {
|
| 6 |
+
"en": {
|
| 7 |
+
"launcher_step_1": ["Step", "Please", " ", " first."],
|
| 8 |
+
"launcher_step_2": ["Step", "Install", "", "after downloading."],
|
| 9 |
+
"launcher_submit": "Submit",
|
| 10 |
+
"launcher_no_file": "No File Selected!",
|
| 11 |
+
"launcher_video_format": "Video Format",
|
| 12 |
+
"launcher_audio_format": "Audio Format",
|
| 13 |
+
"launcher_install_guide": "Install",
|
| 14 |
+
"launcher_feedback": "Feedback",
|
| 15 |
+
"launcher_retry": "Retry",
|
| 16 |
+
"launcher_download": "download",
|
| 17 |
+
"launcher_error_1010": "This service is not supported by the current browser or version (error code: 1010). Please upgrade your browser or try a different browser.",
|
| 18 |
+
"system_support": "This online service is only available on the computer. Please use desktop browser to access.",
|
| 19 |
+
"launching_agent": "Launching…",
|
| 20 |
+
"launcher_error_1011": "Communication is abnormally down (error code: 1011). Click Retry to try again, or you can send us feedback to solve the problem.",
|
| 21 |
+
"service_activated": "Service activated!",
|
| 22 |
+
"service_closed": "Service is closed!",
|
| 23 |
+
"launcher_proccess": "Updating...",
|
| 24 |
+
"launcher_error_1001": "An exception occurred during environment configuration (error code: 1001). Please refresh the page to try again, or give us feedback to resolve the issue.",
|
| 25 |
+
"launcher_error_1002": "An exception occurred during environment configuration (error code: 1002). Please refresh the page to try again, or give us feedback to resolve the issue.",
|
| 26 |
+
"launcher_error_1003": "Unstable network connection (error code: 1003). Click Retry to try again, or you can send us feedback to solve the problem.",
|
| 27 |
+
"launcher_error_1000": "An exception occurred during environment configuration (error code: 1000). Please refresh the page to try again, or give us feedback to resolve the issue.",
|
| 28 |
+
"launcher_error_1004": "Configuration failed (error code: 1004). Click Retry to reconfigure, or you can send us feedback to solve the problem.",
|
| 29 |
+
"launcher_updated": ["The service is updated, please click Update Now to download and install.", "Update Now"],
|
| 30 |
+
"launcher_launching": "Launching service...",
|
| 31 |
+
"launcher_error_1012": "The main process service failed to load (error code: 1012). Click Retry to reload, or you can send us feedback to solve the problem.",
|
| 32 |
+
"launcher_error_1005": "An exception occurred during environment configuration (error code: 1005). Please refresh the page to try again, or give us feedback to resolve the issue.",
|
| 33 |
+
"launcher_error_1007": "An exception occurred during environment configuration (error code: 1007). Please refresh the page to try again, or give us feedback to resolve the issue.",
|
| 34 |
+
"launcher_error_1006": "An exception occurred during environment configuration (error code: 1006). Please refresh the page to try again, or give us feedback to resolve the issue.",
|
| 35 |
+
"launcher_error_1008": "An exception occurred during environment configuration (error code: 1008). Please refresh the page to try again, or give us feedback to resolve the issue.",
|
| 36 |
+
"feedback_zoon": ["Thanks for your feedback. Please leave your problem and we will respond to you within 24 hours.", "Email:", "Enter your email here!", "Contents:", "Leave any problem or suggestion you encountered here.", "Thank You!", "Your Feedback has been submitted successfully.", "Start Recording", "Leave Your Comment"],
|
| 37 |
+
"launcher_feedbacktip": "Enter your email here!",
|
| 38 |
+
"screen_recorder_feedback": ["Email is empty!", "Please enter a valid email!", "Please Enter Content!"],
|
| 39 |
+
"video_converter_convert": "Convert",
|
| 40 |
+
"video_converter_add": "Add File",
|
| 41 |
+
"video_converter_stop": "Stop",
|
| 42 |
+
"video_converter_stop_info": "Are you sure to stop converting?",
|
| 43 |
+
"video_converter_complete": "Conversion complete!",
|
| 44 |
+
"video_converter_ok": "OK",
|
| 45 |
+
"video_converter_exit": "Are you sure you want to exit Video Converter?",
|
| 46 |
+
"audio_converter_exit": "Are you sure you want to exit Audio Converter?",
|
| 47 |
+
"video_converter_general_info": "General Info",
|
| 48 |
+
"video_converter_name_info": "Name:",
|
| 49 |
+
"video_converter_format_info": "Format:",
|
| 50 |
+
"video_converter_size_info": "Size:",
|
| 51 |
+
"video_converter_duration_info": "Duration:",
|
| 52 |
+
"video_converter_video_stream_info": "Video Stream",
|
| 53 |
+
"video_converter_encoder_info": "Encoder:",
|
| 54 |
+
"video_converter_video_bitrate_info": "Video Bitrate:",
|
| 55 |
+
"video_converter_resolution_info": "Resolution:",
|
| 56 |
+
"video_converter_frame_rate_info": "Frame Rate:",
|
| 57 |
+
"video_converter_audio_stream_info": "Audio Stream",
|
| 58 |
+
"video_converter_encoder_info": "Encoder:",
|
| 59 |
+
"video_converter_sample_rate_info": "Sample Rate:",
|
| 60 |
+
"video_converter_channel_info": "Channel:",
|
| 61 |
+
"video_converter_audio_bitrate_info": "Audio Bitrate:",
|
| 62 |
+
"video_converter_video_settings": "Video Settings",
|
| 63 |
+
"video_converter_audio_settings": "Audio Settings",
|
| 64 |
+
"video_converter_audio_encoder_settings": "Audio Encoder:",
|
| 65 |
+
"video_converter_video_encoder_settings": "Video Encoder:",
|
| 66 |
+
"video_converter_bitrate_settings": "Bitrate:",
|
| 67 |
+
"video_converter_default_settings": "Default",
|
| 68 |
+
"video_converter_cancel_settings": "Cancel",
|
| 69 |
+
"video_converter_same": "Same as resource",
|
| 70 |
+
"video_compressor_exit": "Are you sure you want to exit Video Compress?",
|
| 71 |
+
"video_joiner_exit": "Are you sure you want to exit Video merger?",
|
| 72 |
+
"video_joiner_comfirm_merge": "We don't support merging trackless video. After clicking \"OK\", we will automatically filter out the trackless video for you. You can also download the desktop version to merge the trackless video.",
|
| 73 |
+
"video_joiner_format_video": "Videos with Sound track",
|
| 74 |
+
"video_joiner_format_audio": "Videos without Sound track",
|
| 75 |
+
"video_compressor_add": "Add Files to Compress",
|
| 76 |
+
"video_compressor_change_file": "Change Source File",
|
| 77 |
+
"video_compressor_successfully": "Compression successfully!",
|
| 78 |
+
"video_compressor_failed": "Compression failed, please retry!",
|
| 79 |
+
"video_compressor_file_error": "An error has occurred while reading the uploaded file. Please try another one.",
|
| 80 |
+
"video_compressor_yes": "Yes",
|
| 81 |
+
"video_compressor_no": "No",
|
| 82 |
+
"video_compressor_source": "Source",
|
| 83 |
+
"video_compressor_output": "Output",
|
| 84 |
+
"video_compressor_oversize": "The uploaded video resolution exceeds the highest limit of 1920*1080. Download the desktop version and compress the videos with higher resolutions.",
|
| 85 |
+
"video_compressor_continue": "continue",
|
| 86 |
+
"video_compressor_desktop": "Download Desktop Version",
|
| 87 |
+
"video_compressor_replace": "Are you sure you want to replace current video to compress other?",
|
| 88 |
+
"video_compressor_stop_compress": "Are you sure you want to stop compress progress?",
|
| 89 |
+
"video_compressor_stop": "Stop",
|
| 90 |
+
"video_joiner_stop": "Are you sure you want to stop merging?",
|
| 91 |
+
"video_compressor_compress": "Compress",
|
| 92 |
+
"video_compressor_compressing": "Compressing",
|
| 93 |
+
"video_compressor_reload": "The file you uploaded is corrupted. Please select another one file for upload.",
|
| 94 |
+
"video_compressor_desktop_download": "Install Desktop Version",
|
| 95 |
+
"video_joiner_merging": "Merging videos",
|
| 96 |
+
"video_joiner_merge": "Merge Now",
|
| 97 |
+
"video_joiner_join_failed": "Join Failed",
|
| 98 |
+
"video_joiner_join_success": "Join Successfully",
|
| 99 |
+
"video_joiner_insert": "Insert new",
|
| 100 |
+
"video_joiner_to_merge": "Add files to Merge",
|
| 101 |
+
"video_joiner": "Online Video Merger",
|
| 102 |
+
"browser_support_image_compressor": "Your browser is to old. Please update it to support compress photo.",
|
| 103 |
+
"image_compressor_upload": "upload",
|
| 104 |
+
"image_compressor_finished": "Finished",
|
| 105 |
+
"image_compressor_error": "Error!",
|
| 106 |
+
"image_compressor_max-size": "Size large than 5 MB",
|
| 107 |
+
"image_compressor_max_number": "You can only upload 40 images today.",
|
| 108 |
+
"pdf_compressor_max_number": "You can only add up to 10 files today.",
|
| 109 |
+
"image_compressor_failed": "Fail",
|
| 110 |
+
"heic_converter_max_size": "You can only add up to 5 MB per file.",
|
| 111 |
+
"image_compressor_download": "Download",
|
| 112 |
+
"image_compressor_converting": "Converting",
|
| 113 |
+
"image_compressor_delete": "Delete",
|
| 114 |
+
"pdf_compressor_refreshing": "There may be an error,try refreshing?",
|
| 115 |
+
"pdf_compressor_try_again": "Error! Please refresh page and try again.",
|
| 116 |
+
"pdf_compressor_updata_error": "Upload process error",
|
| 117 |
+
"pdf_compressor_over_size": "File size too big",
|
| 118 |
+
"pdf_compressor__not_allowed": "This extension is not allowed",
|
| 119 |
+
"pdf_compressor_one_only": "Can only upload one",
|
| 120 |
+
"browser_support_pdf_compressor": "Your browser is to old. Please update it to support compress PDF Files.",
|
| 121 |
+
'over_size_message': 'The image you uploaded is over 10M. We will compress your file for uploading. Please click “Confirm†to continue uploading.',
|
| 122 |
+
'file_type_error': 'The file you uploaded is not an image! Please try to upload again.',
|
| 123 |
+
'image_type_error': 'The image format is not supported. We only supports JPG, JPEG, PNG and GIF. We will covert your image format for recognition. Please click “Confirm†to continue uploading.',
|
| 124 |
+
'upload_error': 'Upload Error! (Error Code: 2000) Please try again.',
|
| 125 |
+
'network_error': 'Network Error! (Error Code: 2001) Please try again.',
|
| 126 |
+
'recognition_error': 'Recognition Error! (Error Code: 2002) Please try again.',
|
| 127 |
+
'image_compress_fail': 'The image is too large to compress!',
|
| 128 |
+
'image_transfer_fail': 'Failed to convert the image. Please upload another one.',
|
| 129 |
+
'original_image': 'Original',
|
| 130 |
+
'preview_image': 'Preview',
|
| 131 |
+
"browser_support_heic_converter": "Your web browser is outdated. Please update the latest version.",
|
| 132 |
+
"video_converter_title": "Install desktop version to enjoy more output formats and power edit functions.",
|
| 133 |
+
"watermark_remove_over_size": "The image you uploaded is over 10M. It is recommended that you use our Free Online Image Compressor. Click to <a class='jump-link' href='/free-image-compressor/'>learn more</a>",
|
| 134 |
+
"watermark_remove_file_type_error": "The file you uploaded is not a picture, please upload again.",
|
| 135 |
+
"watermark_remove_image_type_error": "The Image format is not supported. We only support JPG, JPEG, PNG and BMP. ",
|
| 136 |
+
"watermark_remove_upload_error": "Recognition error (error code: 2001), please try again...",
|
| 137 |
+
"watermark_remove_processing": "Processing image...",
|
| 138 |
+
"watermark_remove_not_save": "You haven't removed the selected watermark yet. Are you sure to crop the picture without removing the watermark? If so, the currently selected watermark area will not be saved.",
|
| 139 |
+
"watermark_remove_back_home": "Current status will not be saved. Are you sure you want to go back to Home?",
|
| 140 |
+
"watermark_remove_new_image": "Current status will not be saved. Are you sure you want to choose a new image?",
|
| 141 |
+
"watermark_select": "Select",
|
| 142 |
+
"watermark_select_area": "Please select the watermark area you want to erase before clicking Remove",
|
| 143 |
+
"image_enhancer_oversize": "The image you uploaded is over 10M. It is recommended that you use our Free Online Image Compressor. Click to <a class='jump-link' href='/free-image-compressor/'>learn more</a>",
|
| 144 |
+
"image_enhancer_overresolution": "The uploaded image is over 3000*3000px. Please choose another image and try again.",
|
| 145 |
+
"image_enhancer_processing": "Loading...",
|
| 146 |
+
"image_enhancer_maxsolution": "Images can be upscaled up to 3000*3000px. Continue to upload?",
|
| 147 |
+
"image_enhancer_maxsolution_alert": "Max Rez 4096x4096",
|
| 148 |
+
"image_enhancer_change": "Switch display of original image",
|
| 149 |
+
"image_enhancer_show": "Original picture",
|
| 150 |
+
"image_enhancer_output": "Output",
|
| 151 |
+
"image_enhancer_zoom": "Magnification",
|
| 152 |
+
"image_enhancer_close": "Close window",
|
| 153 |
+
"frequently": "You upload images too frequently, please try again later."
|
| 154 |
+
},
|
| 155 |
+
"jp": {
|
| 156 |
+
"launcher_step_1": ["Step", "ã¾ãš", " ", "をダウンãƒãƒ¼ãƒ‰ã—ã¦ãã ã•ã„。"],
|
| 157 |
+
"launcher_step_2": ["Step", "", "", "をダウンãƒãƒ¼ãƒ‰ã—ãŸã‚‰ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã—ã¾ã™ã€‚"],
|
| 158 |
+
"launcher_submit": "æå‡º",
|
| 159 |
+
"launcher_no_file": "ãƒ•ã‚¡ã‚¤ãƒ«ã¯æ¤œå‡ºã•れã¾ã›ã‚“",
|
| 160 |
+
"launcher_video_format": "動画形å¼",
|
| 161 |
+
"launcher_audio_format": "音声形å¼",
|
| 162 |
+
"launcher_install_guide": "インストール",
|
| 163 |
+
"launcher_feedback": "フィードãƒãƒƒã‚¯",
|
| 164 |
+
"launcher_retry": "å†è©¦è¡Œ",
|
| 165 |
+
"launcher_download": "ダウンãƒãƒ¼ãƒ‰",
|
| 166 |
+
"launcher_error_1010": "サービスã¯ç¾åœ¨ã®ãƒ–ラウザã¾ãŸã¯ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã§ã¯ã‚µãƒãƒ¼ãƒˆã•れã¦ã„ã¾ã›ã‚“ (エラーコード: 1010). ブラウザをアップグレードã™ã‚‹ã‹ã€åˆ¥ã®ãƒ–ラウザをãŠè©¦ã—ã��ã ã•ã„。",
|
| 167 |
+
"system_support": "ã“ã®ã‚ªãƒ³ãƒ©ã‚¤ãƒ³ã‚µãƒ¼ãƒ“スã¯ã€ã‚³ãƒ³ãƒ”ューターã—ã‹åˆ©ç”¨ã§ãã¾ã›ã‚“。 デスクトップブラウザを使用ã—ã¦ã‚¢ã‚¯ã‚»ã‚¹ã—ã¦ãã ã•ã„。",
|
| 168 |
+
"launching_agent": "ãƒãƒ¼ãƒ‰ä¸â€¦",
|
| 169 |
+
"launcher_error_1011": "通信ãŒç•°å¸¸åœæ¢ã—ã¾ã—㟠(エラーコード: 1011)。å†è©¦è¡Œã™ã‚‹ã‹ã€ãƒ•ィードãƒãƒƒã‚¯ã‚’é€ä¿¡ã—ã¦å•題を解決ã—ã¦ãã ã•ã„。",
|
| 170 |
+
"service_activated": "ã‚µãƒ¼ãƒ“ã‚¹ãŒæœ‰åйã«ãªã‚Šã¾ã—ãŸï¼",
|
| 171 |
+
"service_closed": "サービスã¯åœæ¢ã•れã¦ã„ã¾ã™ï¼",
|
| 172 |
+
"launcher_proccess": "アップデート...",
|
| 173 |
+
"launcher_error_1001": "環境è¨å®šã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—㟠(エラーコード: 1001)。ページを更新ã—ã¦å†è©¦è¡Œã™ã‚‹ã‹ã€ãƒ•ィードãƒãƒƒã‚¯ã‚’é€ä¿¡ã—ã¦å•題を解決ã—ã¦ãã ã•ã„。",
|
| 174 |
+
"launcher_error_1002": ["環境è¨å®šã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—㟠(エラーコード: 1002)。ページを更新ã—ã¦å†è©¦è¡Œã™ã‚‹ã‹ã€ãƒ•ィードãƒãƒƒã‚¯ã‚’é€ä¿¡ã—ã¦å•題を解決ã—ã¦ãã ã•ã„。", "フィードãƒãƒƒã‚¯"],
|
| 175 |
+
"launcher_error_1003": "ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯æŽ¥ç¶šã‚¨ãƒ©ãƒ¼ (エラーコード: 1003)。å†è©¦è¡Œã™ã‚‹ã‹ã€ãƒ•ィードãƒãƒƒã‚¯ã‚’é€ä¿¡ã—ã¦å•題を解決ã—ã¦ãã ã•ã„。",
|
| 176 |
+
"launcher_error_1000": "環境è¨å®šã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—㟠(エラーコード: 1000)。ページを更新ã—ã¦å†è©¦è¡Œã™ã‚‹ã‹ã€ãƒ•ィードãƒãƒƒã‚¯ã‚’é€ä¿¡ã—ã¦å•題を解決ã—ã¦ãã ã•ã„。",
|
| 177 |
+
"launcher_error_1004": "è¨å®šã«å¤±æ•—ã—ã¾ã—㟠(エラーコード: 1004)。「å†è©¦è¡Œã€ã‚’クリックã—ã¦å†æ§‹æˆã™ã‚‹ã‹ã€ãƒ•ィードãƒãƒƒã‚¯ã‚’é€ä¿¡ã—ã¦å•題を解決ã§ãã¾ã™ã€‚",
|
| 178 |
+
"launcher_updated": ["ã‚µãƒ¼ãƒ“ã‚¹ãŒæ›´æ–°ã•れã¾ã—ãŸã€‚「ã™ãæ›´æ–°ã€ã‚’クリックã—ã¦ãƒ€ã‚¦ãƒ³ãƒãƒ¼ãƒ‰ã—ã¦ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã—ã¦ãã ã•ã„。", "ã™ãæ›´æ–°"],
|
| 179 |
+
"launcher_launching": "サービスãƒãƒ¼ãƒ‰ä¸...",
|
| 180 |
+
"launcher_error_1012": "メインプãƒã‚»ã‚¹ã‚µãƒ¼ãƒ“スをãƒãƒ¼ãƒ‰ã§ãã¾ã›ã‚“ (エラーコード: 1012)。「å†è©¦è¡Œã€ã‚’クリックã—ã¦ãƒãƒ¼ãƒ‰ã™ã‚‹ã‹ã€ãƒ•ィードãƒãƒƒã‚¯ã‚’é€ä¿¡ã—ã¦å•題を解決ã§ãã¾ã™ã€‚",
|
| 181 |
+
"launcher_error_1005": "環境è¨å®šã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—㟠(エラーコード: 1005)。ページを更新ã—ã¦å†è©¦è¡Œã™ã‚‹ã‹ã€ãƒ•ィードãƒãƒƒã‚¯ã‚’é€ä¿¡ã—ã¦å•題を解決ã—ã¦ãã ã•ã„。",
|
| 182 |
+
"launcher_error_1007": "環境è¨å®šã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—㟠(エラーコード: 1007)。ペã��¼ã‚¸ã‚’æ›´æ–°ã—ã¦å†è©¦è¡Œã™ã‚‹ã‹ã€ãƒ•ィードãƒãƒƒã‚¯ã‚’é€ä¿¡ã—ã¦å•題を解決ã—ã¦ãã ã•ã„。",
|
| 183 |
+
"launcher_error_1006": "環境è¨å®šã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—㟠(エラーコード: 1006)。ページを更新ã—ã¦å†è©¦è¡Œã™ã‚‹ã‹ã€ãƒ•ィードãƒãƒƒã‚¯ã‚’é€ä¿¡ã—ã¦å•題を解決ã—ã¦ãã ã•ã„。",
|
| 184 |
+
"launcher_error_1008": "環境è¨å®šã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸ(エラーコード: 1008)。ページを更新ã—ã¦å†è©¦è¡Œã™ã‚‹ã‹ã€ãƒ•ィードãƒãƒƒã‚¯ã‚’é€ä¿¡ã—ã¦å•題を解決ã—ã¦ãã ã•ã„。",
|
| 185 |
+
"feedback_zoon": ["ãŠå•ã„åˆã‚ã›ã„ãŸã ãã¾ã—ã¦ã€èª ã«ã‚りãŒã¨ã†å¾¡åº§ã„ã¾ã™ã€‚ ãŠé€ã‚Šã„ãŸã ãã¾ã—ãŸå†…容を確èªã•ã›ã¦é ‚ãã€ã”連絡を致ã—ã¾ã™ã®ã§ã€ã‚‚ã†ã—ã°ã‚‰ããŠå¾…ã¡ä¸‹ã•ã„ã¾ã›ã€‚", "メールアドレス:", "ã”利用ã®ãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’入力ã—ã¦ãã ã•ã„。", "ã”æ„è¦‹ãƒ»ã”æ„Ÿæƒ³:", "製å“ã¸ã®ã”æ„è¦‹ãƒ»ã”æ„Ÿæƒ³ã‚’ã“ã“ã«æ›¸ã„ã¦ã„ãŸã ã‘ã‚‹ã¨åŠ©ã‹ã‚Šã¾ã™ã€‚", "ã‚りãŒã¨ã†ã”ã–ã„ã¾ã™ã€‚", "フィードãƒãƒƒã‚¯ã¯æ£å¸¸ã«é€ä¿¡ã•れã¾ã—ãŸã€‚", "録画スタート", "æ„見をã„ãŸã ã‘ã¾ã—ょã†ã‹"],
|
| 186 |
+
"launcher_feedbacktip": "メールを入力ã—ã¦ãã ã•ã„!",
|
| 187 |
+
"screen_recorder_feedback": ["無効ãªãƒ¡ãƒ¼ãƒ«ã§ã™!", "有効ãªãƒ¡ãƒ¼ãƒ«ã‚’入力ã—ã¦ãã ã•ã„!", "コンテンツを入力ã—ã¦ãã ã•ã„!"],
|
| 188 |
+
"video_converter_convert": "変æ›",
|
| 189 |
+
"video_converter_add": "ãƒ•ã‚¡ã‚¤ãƒ«ã‚’è¿½åŠ ",
|
| 190 |
+
"video_converter_stop": "åœæ¢",
|
| 191 |
+
"video_converter_stop_info": "変æ›ã‚’終了ã—ã¾ã™ã‹?",
|
| 192 |
+
"video_converter_complete": "変æ›ã—ã¾ã—ãŸ!",
|
| 193 |
+
"video_converter_ok": "OK",
|
| 194 |
+
"video_converter_exit": "動画変æ›ã‹ã‚‰é€€å‡ºã—ã¾ã™ã‹?",
|
| 195 |
+
"audio_converter_exit": "オーディオ変æ›ã‹ã‚‰é€€å‡ºã—ã¾ã™ã‹?",
|
| 196 |
+
"video_converter_general_info": "è©³ç´°æƒ…å ±",
|
| 197 |
+
"video_converter_name_info": "ファイルå:",
|
| 198 |
+
"video_converter_format_info": "フォーマット:",
|
| 199 |
+
"video_converter_size_info": "サイズ:",
|
| 200 |
+
"video_converter_duration_info": "å†ç”Ÿæ™‚é–“:",
|
| 201 |
+
"video_converter_video_stream_info": "å‹•ç”»æƒ…å ±",
|
| 202 |
+
"video_converter_encoder_info": "エンコーダー:",
|
| 203 |
+
"video_converter_video_bitrate_info": "動画ビットレート:",
|
| 204 |
+
"video_converter_resolution_info": "è§£åƒåº¦:",
|
| 205 |
+
"video_converter_frame_rate_info": "フレームレート:",
|
| 206 |
+
"video_converter_audio_stream_info": "éŸ³å£°æƒ…å ±",
|
| 207 |
+
"video_converter_encoder_info": "エンコーダー:",
|
| 208 |
+
"video_converter_sample_rate_info": "サンプリングレート:",
|
| 209 |
+
"video_converter_channel_info": "ãƒãƒ£ãƒ³ãƒãƒ«:",
|
| 210 |
+
"video_converter_audio_bitrate_info": "音声ビットレート:",
|
| 211 |
+
"video_converter_video_settings": "å‹•ç”»è¨å®š",
|
| 212 |
+
"video_converter_audio_settings": "音声è¨å®š",
|
| 213 |
+
"video_converter_audio_encoder_settings": "音声エンコーダー:",
|
| 214 |
+
"video_converter_video_encoder_settings": "動画エンコーダー:",
|
| 215 |
+
"video_converter_bitrate_settings": "ビットレート:",
|
| 216 |
+
"video_converter_default_settings": "デフォルト",
|
| 217 |
+
"video_converter_cancel_settings": "å–り消ã—",
|
| 218 |
+
"video_converter_same": "ã‚ªãƒªã‚¸ãƒŠãƒ«ç¶æŒ",
|
| 219 |
+
"video_compressor_exit": "動画圧縮ã‹ã‚‰é€€å‡ºã—ã¾ã™ã‹?",
|
| 220 |
+
"video_joiner_exit": "å‹•ç”»çµåˆã‹ã‚‰é€€å‡ºã—ã¾ã™ã‹?",
|
| 221 |
+
"video_joiner_comfirm_merge": "オーディオトラックã®ãªã„ビデオã®çµåˆã¯ã‚µãƒãƒ¼ãƒˆã•れã¦ã„ã¾ã›ã‚“。 「OKã€ã‚’クリックã™ã‚‹ã¨ã€ã‚ªãƒ¼ãƒ‡ã‚£ã‚ªãƒˆãƒ©ãƒƒã‚¯ã®ãªã„ビデオãŒè‡ªå‹•çš„ã«é™¤å¤–ã•れã¾ã™ã€‚デスクトップ版をダウンãƒãƒ¼ãƒ‰ã—ã¦ã€ã‚ªãƒ¼ãƒ‡ã‚£ã‚ªãƒˆãƒ©ãƒƒã‚¯ã®ãªã„ビデオをçµåˆã—ã¾ã—ょã†ã€‚",
|
| 222 |
+
"video_joiner_format_video": "Videos with Sound track",
|
| 223 |
+
"video_joiner_format_audio": "Videos without Sound track",
|
| 224 |
+
"video_compressor_add": "プãƒã‚°ãƒ©ãƒ ã«ãƒ•ã‚¡ã‚¤ãƒ«ã‚’è¿½åŠ ã—ã¾ã™",
|
| 225 |
+
"video_compressor_change_file": "ソースファイルを変更ã—ã¾ã™",
|
| 226 |
+
"video_compressor_successfully": "圧縮ã—ã¾ã—ãŸ",
|
| 227 |
+
"video_compressor_failed": "圧縮ã«å¤±æ•—ã—ã¾ã—ãŸ",
|
| 228 |
+
"video_compressor_yes": "ã¯ã„",
|
| 229 |
+
"video_compressor_no": "ã„ã„ãˆ",
|
| 230 |
+
"video_compressor_source": "Source",
|
| 231 |
+
"video_compressor_output": "Output",
|
| 232 |
+
"video_compressor_oversize": "è¿½åŠ ã•れる動画ファイルã®è§£åƒåº¦ã¯1920*1080ã‚’è¶…ãˆã¾ã™ã€‚1920*1080è§£åƒåº¦ä»¥ä¸Šã®å‹•画ファイルを圧縮ã™ã‚‹ã«ã¯ã€ãƒ‡ã‚£ã‚¹ã‚¯ãƒˆãƒƒãƒ—版をダウンãƒãƒ¼ãƒ‰ã—ã¦ãã ã•ã„。",
|
| 233 |
+
"video_compressor_continue": "continue",
|
| 234 |
+
"video_compressor_desktop": "Download Desktop Version",
|
| 235 |
+
"video_compressor_replace": "今ã®å‹•ç”»ãƒ•ã‚¡ã‚¤ãƒ«ã‚’ç½®ãæ›ãˆã¾ã™ã‹?",
|
| 236 |
+
"video_compressor_stop_compress": "圧縮プãƒã›ãƒ¼ã‚¹ã‚’åœæ¢ã—ã¦ã‚‚よã‚ã—ã„ã§ã™ã‹?",
|
| 237 |
+
"video_compressor_stop": "åœæ¢",
|
| 238 |
+
"video_joiner_stop": "çµåˆã‚’åœæ¢ã—ã¦ã‚‚よã‚ã—ã„ã§ã™ã‹?",
|
| 239 |
+
"video_compressor_compress": "圧縮ã™ã‚‹",
|
| 240 |
+
"video_compressor_compressing": "圧縮ä¸",
|
| 241 |
+
"video_compressor_reload": "アップãƒãƒ¼ãƒ‰ã—ãŸãƒ•ァイルãŒç ´æã—ã¦ã„ã¾ã™ã€‚ 別ã®ãƒ•ã‚¡ã‚¤ãƒ«ã‚’é¸æŠžã—ã¦ãã ã•ã„。",
|
| 242 |
+
"video_compressor_file_error": "ファイルをãƒãƒ¼ãƒ‰ã™ã‚‹ä¸ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚å†è©¦è¡Œã—ã¦ãã ã•ã„。",
|
| 243 |
+
"video_compressor_desktop_download": "ディスクトップ版をインストール",
|
| 244 |
+
"video_joiner_merging": "ファイルをçµåˆä¸",
|
| 245 |
+
"video_joiner_merge": "ã™ãçµåˆ",
|
| 246 |
+
"video_joiner_join_failed": "çµåˆã«å¤±æ•—ã—ã¾ã—ãŸ",
|
| 247 |
+
"video_joiner_join_success": "æˆåŠŸã«çµåˆã—ã¾ã—ãŸ",
|
| 248 |
+
"video_joiner_insert": "ã™ã挿入",
|
| 249 |
+
"video_joiner_to_merge": "ファイルã‚��è¿½åŠ ",
|
| 250 |
+
"video_joiner": "オンライン å‹•ç”»çµåˆ",
|
| 251 |
+
"browser_support_image_compressor": "ブラウザãƒãƒ¼ã‚¸ãƒ§ãƒ³ã¯ä½Žãã€å†™çœŸã‚’圧縮ã™ã‚‹ãŸã‚ã«ã‚¢ãƒƒãƒ—デートã—ã¦ãã ã•ã„。",
|
| 252 |
+
"image_compressor_upload": "アップデート",
|
| 253 |
+
"image_compressor_finished": "完了",
|
| 254 |
+
"image_compressor_error": "エラー!",
|
| 255 |
+
"image_compressor_max-size": "5 MBã‚’è¶…ãˆã¾ã—ãŸ",
|
| 256 |
+
"image_compressor_max_number": "今日最大40写真ã ã‘サãƒãƒ¼ãƒˆã—ã¾ã™ã€‚",
|
| 257 |
+
"pdf_compressor_max_number": "今日10写真ã ã‘è¿½åŠ ã§ãã¾ã™ã€‚",
|
| 258 |
+
"image_compressor_failed": "失敗",
|
| 259 |
+
"heic_converter_max_size": "ファイルã”ã¨ã«æœ€å¤§5 MBã¾ã§è¿½åŠ ã§ãã¾ã™ã€‚",
|
| 260 |
+
"image_compressor_download": "ダウンãƒãƒ¼ãƒ‰",
|
| 261 |
+
"image_compressor_converting": "変æ›",
|
| 262 |
+
"image_compressor_delete": "削除",
|
| 263 |
+
"pdf_compressor_refreshing": "䏿˜Žã‚¨ãƒ©ãƒ¼ã§ã™ã€‚å†è©¦è¡Œã—ã¾ã—ょã†ã‹?",
|
| 264 |
+
"pdf_compressor_try_again": "ã‚¨ãƒ©ãƒ¼ï¼ ãƒšãƒ¼ã‚¸ã‚’æ›´æ–°ã—ã¦ã‚‚ã†ä¸€åº¦ãŠè©¦ã—ãã ã•ã„。",
|
| 265 |
+
"pdf_compressor_updata_error": "アップãƒãƒ¼ãƒ‰ãƒ—ãƒã‚»ã‚¹ã‚¨ãƒ©ãƒ¼",
|
| 266 |
+
"pdf_compressor_over_size": "ファイルサイズãŒå¤§ãã™ãŽã¾ã™",
|
| 267 |
+
"pdf_compressor__not_allowed": "ã“ã®æ‹¡å¼µåã¯ã‚µãƒãƒ¼ãƒˆã•れã¦ã„ã¾ã›ã‚“",
|
| 268 |
+
"pdf_compressor_one_only": "1ã¤ã®ã¿ã‚¢ãƒƒãƒ—ãƒãƒ¼ãƒ‰ã§ãã¾ã™",
|
| 269 |
+
"browser_support_pdf_compressor": "ãŠä½¿ã„ã®ãƒ–ラウザãƒãƒ¼ã‚¸ãƒ§ãƒ³ã¯ä½Žã„ã§ã™ã€‚ PDFファイルã®åœ§ç¸®ã‚’サãƒãƒ¼ãƒˆã™ã‚‹ã‚ˆã†ã«æ›´æ–°ã—ã¦ãã ã•ã„。",
|
| 270 |
+
'over_size_message': 'ç”»åƒã®ã‚µã‚¤ã‚ºã¯10Mã‚’è¶…ãˆã¾ã—ãŸã®ã§ã€ã“ã¡ã‚‰ã¯è‡ªå‹•çš„ã«ãƒ•ァイルを圧縮ã—ã¦å†åº¦ãƒãƒ¼ãƒ‰ã—ã¾ã™ã€‚「確èªã€ã‚’タップã—ã¦ç¶šã‘ã¾ã™',
|
| 271 |
+
'file_type_error': 'ãƒãƒ¼ãƒ‰ã™ã‚‹ãƒ•ァイルã¯ç”»åƒã§ã¯ã‚りã¾ã›ã‚“!ã‚‚ã†ä¸€åº¦ãƒãƒ¼ãƒ‰ã—ã¦ãã ã•ã„',
|
| 272 |
+
'image_type_error': 'サãƒãƒ¼ãƒˆã—ã¦ã„ãªã„ç”»åƒå½¢å¼ã§ã™ã€‚JPGï¼›JPEGï¼›PNGï¼›GIFã ã‘ã«å¯¾å¿œã—ã¾ã™ã®ã§ã€ã“ã®ç”»åƒã‚’自動的ã«å½¢å¼å¤‰æ›ã—ã¾ã™ã€‚「確èªã€ã‚’タップã—ã¦ç¶šã‘ã¾ã™',
|
| 273 |
+
'upload_error': 'ãƒãƒ¼ãƒ‰ã«ã‚¨ãƒ©ãƒ¼ã¯èµ·ã“ã—ã¾ã™(エラーコード: 2000)ã€å†è©¦è¡Œã—ã¦ãã ã•ã„……',
|
| 274 |
+
'network_error': 'ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ã‚¨ãƒ©ãƒ¼ã§ã™(エラーコード: 2001)ã€å†è©¦è¡Œã—ã¦ãã ã•ã„……',
|
| 275 |
+
'recognition_error': 'èªè˜ã‚¨ãƒ©ãƒ¼ã§ã™(エラーコード: 2002)ã€å†è©¦è¡Œã—ã¦ãã ã•ã„……',
|
| 276 |
+
'image_compress_fail': 'ç”»åƒã®ã‚µã‚¤ã‚ºãŒå¤šã™ãŽã¦ã€åœ§ç¸®ã«å¤±æ•—ã—ã¾ã—ãŸ',
|
| 277 |
+
'image_transfer_fail': 'ç”»åƒå½¢å¼ã‚’変æ›ã«å¤±æ•—ã—ã¾ã—ãŸã€‚ç”»åƒã‚’変æ›ã—ã¾ã—ょã†',
|
| 278 |
+
'original_image': 'オリジナル',
|
| 279 |
+
'preview_image': 'プレビュー',
|
| 280 |
+
"browser_support_heic_converter": "ブラウザãƒãƒ¼ã‚¸ãƒ§ãƒ³ã¯ä½Žã„ã§ã™ã€‚最新ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã«ã‚¢ãƒƒãƒ—デートã—ã¦ãã ã•ã„。",
|
| 281 |
+
"video_converter_title": "デスクトップãƒãƒ¼ã‚¸ãƒ§ãƒ³ã‚’インストールã—ã¦ã€ã‚ˆã‚Šå¤šãã®å‡ºåŠ›ãƒ•ã‚©ãƒ¼ãƒžãƒƒãƒˆã¨ãƒ‘ãƒ¯ãƒ¼ç·¨é›†æ©Ÿèƒ½ã‚’ãŠæ¥½ã—ã¿ãã ã•ã„。",
|
| 282 |
+
"watermark_remove_over_size": "ãƒãƒ¼ãƒ‰ã™ã‚‹ç”»åƒã®ã‚µã‚¤ã‚ºã¯æœ€å¤§10Mã§ã™ã€‚今ã®ç”»åƒã¯10Mã‚’è¶…ãˆã¾ã™ã®ã§ã€å¼Šç¤¾ã®ã‚ªãƒ³ãƒ©ã‚¤ãƒ³ç”»åƒåœ§ç¸®ãƒ„ールを使ã£ã¦ç”»åƒã®ã‚µã‚¤ã‚ºã‚’å°ã•ãã«ã™ã‚‹ã®ã‚’ãŠã‚¹ã‚¹ãƒ¡ã—ã¾ã™ã€‚<a class='jump-link' href='/free-image-compressor/'>ã™ã体験</a>",
|
| 283 |
+
"watermark_remove_file_type_error": "ãƒãƒ¼ãƒ‰ã•れãŸãƒ•ァイルã¯ç”»åƒã§ã¯ãªãã€ã‚‚ã†ä¸€åº¦é¸æŠžã—ã¦ãƒãƒ¼ãƒ‰ã—ã¾ã—ょã†!",
|
| 284 |
+
"watermark_remove_image_type_error": "今ã“ã®ç”»åƒã‚’サãƒãƒ¼ãƒˆã—ã¦ã„ã¾ã›ã‚“。サãƒãƒ¼ãƒˆç”»åƒã®å½¢å¼ã¯:JPGï¼›JPEGï¼›PNGï¼›BMP",
|
| 285 |
+
"watermark_remove_upload_error": "è˜åˆ¥ã‚¨ãƒ©ãƒ¼ï¼ˆã‚¨ãƒ©ãƒ¼ã‚³ãƒ¼ãƒ‰ï¼š2001)ã€å†è©¦è¡Œã—ã¦ãã ã•ã„...",
|
| 286 |
+
"watermark_remove_processing": "ç”»åƒã®èªè˜ã‚’ã™ã‚‹ä¸",
|
| 287 |
+
"watermark_remove_not_save": "変更ã¯ä¿å˜ã•れã¾ã›ã‚“。トリミングã—ã¾ã™ã‹?",
|
| 288 |
+
"watermark_remove_back_home": "変更ã¯ä¿å˜ã•れã¾ã›ã‚“ã€‚ãƒˆãƒƒãƒ—ãƒšãƒ¼ã‚¸ã«æˆ»ã‚Šã¾ã™ã‹ï¼Ÿ",
|
| 289 |
+
"watermark_remove_new_image": "変更ã¯ä¿å˜ã•れã¾ã›ã‚“。新ã—ã„ç”»åƒã‚’é¸æŠžã—ã¾ã™ã‹ï¼Ÿ",
|
| 290 |
+
"watermark_select": "é¸æŠžã—ã¦ãã ã•ã„",
|
| 291 |
+
"watermark_select_area": "処ç†ã—ãŸã„ç¯„å›²ã‚’é¸æŠžã—ã¦ãã ã•ã„",
|
| 292 |
+
"image_enhancer_oversize": "您ãƒãƒ¼ãƒ‰ã™ã‚‹ç”»åƒã®ã‚µã‚¤ã‚ºã¯æœ€å¤§10Mã§ã™ã€‚今ã®ç”»åƒã¯10Mã‚’è¶…ãˆã¾ã™ã®ã§ã€å¼Šç¤¾ã®ã‚ªãƒ³ãƒ©ã‚¤ãƒ³ç”»åƒåœ§ç¸®ãƒ„ールを使ã£ã¦ç”»åƒã®ã‚µã‚¤ã‚ºã‚’å°ã•ãã«ã™ã‚‹ã®ã‚’ãŠã‚¹ã‚¹ãƒ¡ã—ã¾ã™ã€‚<a class='jump-link' href='/free-image-compressor/'>ã™ã体験</a>",
|
| 293 |
+
"image_enhancer_overresolution": "ç”»åƒã¯3000px*3000pxã‚’è¶…ãˆã¾ã™ã®ã§ã€ ç”»åƒã‚’å†åº¦é¸æŠžã—ã¦ãƒãƒ¼ãƒ‰ã—ã¾ã—ょã†ã€‚",
|
| 294 |
+
"image_enhancer_maxsolution": "ç”»åƒã®ãƒ—レビューã¯3000x3000pxã¾ã§æ‹¡å¤§ã§ãã¾ã™ã€‚3000x3000px以下ã®ã‚µã‚¤ã‚ºã«ç¸®å°ã—ã¾ã™ã€‚",
|
| 295 |
+
"image_enhancer_maxsolution_alert": "ç”»åƒã®ãƒ—レビューã¯3000x3000pxã¾ã§æ‹¡å¤§ã§ãã¾ã™ã€‚3000x3000px以下ã®ã‚µã‚¤ã‚ºã«ç¸®å°ã—ã¾ã™ã€‚",
|
| 296 |
+
"image_enhancer_processing": "ãƒãƒ¼ãƒ‰ä¸...",
|
| 297 |
+
"image_enhancer_change": "オリジナルã«åˆ‡ã‚Šæ›¿ãˆ",
|
| 298 |
+
"image_enhancer_show": "オリジナル",
|
| 299 |
+
"image_enhancer_output": "出力",
|
| 300 |
+
"image_enhancer_zoom": "æ‹¡å¤§å€æ•°",
|
| 301 |
+
"image_enhancer_close": "é–‰ã˜ã‚‹",
|
| 302 |
+
},
|
| 303 |
+
"fr": {
|
| 304 |
+
"launcher_step_1": ["Étape", "Veuillez d'abord", "", "."],
|
| 305 |
+
"launcher_step_2": ["Étape", "Installez", "", "après téléchargement"],
|
| 306 |
+
"launcher_submit": "Soumettre",
|
| 307 |
+
"launcher_no_file": "Aucun fichier sélectionné!",
|
| 308 |
+
"launcher_video_format": "Format Vidéo",
|
| 309 |
+
"launcher_audio_format": "Format Audio",
|
| 310 |
+
"launcher_install_guide": "Installez",
|
| 311 |
+
"launcher_feedback": "Commentaire",
|
| 312 |
+
"launcher_retry": "Réessayer",
|
| 313 |
+
"launcher_download": "Télécharger",
|
| 314 |
+
"launcher_error_1010": "Ce service n\'est pas pris en charge par le navigateur ou la version actuelle (code d\'erreur: 1010). Veuillez mettre à niveau votre navigateur ou essayer un autre navigateur.",
|
| 315 |
+
"system_support": "Ce service en ligne n\'est disponible que sur ordinateur. Veuillez utiliser un navigateur de bureau pour y accéder.",
|
| 316 |
+
"launching_agent": "Lancement…",
|
| 317 |
+
"launcher_error_1011": "La communication est anormalement interrompue (code d\'erreur: 1011). Veullez cliquer sur Réessayer, ou nous envoyer des commentaires pour résoudre le problème.",
|
| 318 |
+
"service_activated": "Le service est activé!",
|
| 319 |
+
"service_closed": "Le service est fermé!",
|
| 320 |
+
"launcher_proccess": "Mise à jour...",
|
| 321 |
+
"launcher_error_1001": "Une exception s\'est produite lors de la configuration de l\'environnement (code d\'erreur: 1001). Veuillez actualiser la page pour réessayer ou nous envoyer vos commentaires pour résoudre le problème.",
|
| 322 |
+
"launcher_error_1002": "Une exception s\'est produite lors de la configuration de l\'environnement (code d\'erreur: 1002). Veuillez actualiser la page pour réessayer ou nous envoyer vos commentaires pour résoudre le problème.",
|
| 323 |
+
"launcher_error_1003": "Connexion réseau instable (code d\'erreur: 1003). Veuillez cliquer sur Réessayer, ou nous envoyer vos commentaires pour résoudre le problème.",
|
| 324 |
+
"launcher_error_1000": "Une exception s\'est produite lors de la configuration de l\'environnement (code d\'erreur: 1000). Veuillez actualiser la page pour réessayer ou nous envoyer vos commentaires pour résoudre le problème.",
|
| 325 |
+
"launcher_error_1004": "Échec de la configuration (code d\'erreur: 1004). Veuillez cliquer sur Réessayer, ou nous envoyer vos commentaires pour résoudre le problème.",
|
| 326 |
+
"launcher_updated": ["Le service est mis à jour, veuillez cliquer sur Mettre à jour pour le télécharger et installer.", "Mettre à jour"],
|
| 327 |
+
"launcher_launching": "Lancement du service ...",
|
| 328 |
+
"launcher_error_1012": "Échec du chargement du service de processus principal (code d\'erreur: 1012). Cliquez sur Réessayer, ou nous envoyer des commentaires pour résoudre le problème.",
|
| 329 |
+
"launcher_error_1005": "Une exception s\'est produite lors de la configuration de l\'environnement (code d\'erreur: 1005). Veuillez actualiser la page pour réessayer ou nous envoyer vos commentaires pour résoudre le problème.",
|
| 330 |
+
"launcher_error_1007": "Une exception s\'est produite lors de la configuration de l\'environnement (code d\'erreur: 1007). Veuillez actualiser la page pour réessayer ou nous envoyer vos commentaires pour résoudre le problème.",
|
| 331 |
+
"launcher_error_1006": "Une exception s\'est produite lors de la configuration de l\'environnement (code d\'erreur: 1006). Veuillez actualiser la page pour réessayer ou nous envoyer vos commentaires pour résoudre le problème.",
|
| 332 |
+
"launcher_error_1008": "Une exception s\'est produite lors de la configuration de l\'environnement (code d\'erreur: 1008). Veuillez actualiser la page pour réessayer ou nous envoyer vos commentaires pour résoudre le problème.",
|
| 333 |
+
"feedback_zoon": ["Merci pour vos commentaires. Veuillez entrer votre problème et nous vous répondrons dans les 24 heures.", "E-mail:", "Entrez votre e-mail ici!", "Contenu:", "Laissez ici votre problème ou suggestion que vous avez rencontré.", "Merci!", "Vos commentaires ont été soumis avec succès.", "Commencer l\'enregistrement", "Laissez vos commentaires"],
|
| 334 |
+
"launcher_feedbacktip": "Entrez votre e-mail ici!",
|
| 335 |
+
"screen_recorder_feedback": ["L\'e-mail est invalide!", "Veuillez entrer un e-mail valide!", "Veuillez entrer le contenu!"],
|
| 336 |
+
"video_converter_convert": "Convertir",
|
| 337 |
+
"video_converter_add": "Ajouter un fichier",
|
| 338 |
+
"video_converter_stop": "Arrêter",
|
| 339 |
+
"video_converter_stop_info": "Êtes-vous sûr d'arrêter la conversion?",
|
| 340 |
+
"video_converter_complete": "Conversion terminée!",
|
| 341 |
+
"video_converter_ok": "OK",
|
| 342 |
+
"video_converter_exit": "Êtes-vous sûr de quitter Convertisseur Vidéo?",
|
| 343 |
+
"audio_converter_exit": "Êtes-vous sûr de quitter Convertisseur Audio?",
|
| 344 |
+
"video_converter_general_info": "Info Générale",
|
| 345 |
+
"video_converter_name_info": "Nom:",
|
| 346 |
+
"video_converter_format_info": "Format:",
|
| 347 |
+
"video_converter_size_info": "Taille:",
|
| 348 |
+
"video_converter_duration_info": "Durée:",
|
| 349 |
+
"video_converter_video_stream_info": "Vidéo",
|
| 350 |
+
"video_converter_encoder_info": "Encodeur:",
|
| 351 |
+
"video_converter_video_bitrate_info": "Bitrate Vidéo:",
|
| 352 |
+
"video_converter_resolution_info": "Résolution:",
|
| 353 |
+
"video_converter_frame_rate_info": "Cadence de Diffusion:",
|
| 354 |
+
"video_converter_audio_stream_info": "Audio",
|
| 355 |
+
"video_converter_encoder_info": "Encodeur:",
|
| 356 |
+
"video_converter_sample_rate_info": "Échantillonnage:",
|
| 357 |
+
"video_converter_channel_info": "Canal:",
|
| 358 |
+
"video_converter_audio_bitrate_info": "Bitrate Audio:",
|
| 359 |
+
"video_converter_video_settings": "Paramètres Vidéo",
|
| 360 |
+
"video_converter_audio_settings": "Paramètres Audio",
|
| 361 |
+
"video_converter_audio_encoder_settings": "Encodeur Audio:",
|
| 362 |
+
"video_converter_video_encoder_settings": "Encodeur Vidéo:",
|
| 363 |
+
"video_converter_bitrate_settings": "Bitrate Audio:",
|
| 364 |
+
"video_converter_default_settings": "Par défaut",
|
| 365 |
+
"video_converter_cancel_settings": "Annuler",
|
| 366 |
+
"video_converter_same": "Même que la source",
|
| 367 |
+
"video_compressor_exit": "Êtes-vous sûr de quitter Compresseur Vidéo?",
|
| 368 |
+
"video_joiner_exit": "Êtes-vous sûr de quitter Fusionneur Vidéo?",
|
| 369 |
+
"video_joiner_comfirm_merge": "Nous ne prenons pas en charge la fusion de vidéos sans pistes audio. Après avoir cliqué sur \"OK\", nous filtrerons automatiquement les vidéos sans pistes audio pour vous, vous pouvez également télécharger la version de bureau pour fusionner des vidéos sans pistes audio.",
|
| 370 |
+
"video_joiner_format_video": "Videos with Sound track",
|
| 371 |
+
"video_joiner_format_audio": "Videos without Sound track",
|
| 372 |
+
"video_compressor_add": "Ajouter Fichier(s) Ã Compresser",
|
| 373 |
+
"video_compressor_change_file": "Changer le fichier source",
|
| 374 |
+
"video_compressor_successfully": "Compression réussie!",
|
| 375 |
+
"video_compressor_failed": "La compression a échoué!",
|
| 376 |
+
"video_compressor_yes": "Oui",
|
| 377 |
+
"video_compressor_no": "Non",
|
| 378 |
+
"video_compressor_source": "Source",
|
| 379 |
+
"video_compressor_output": "Sortie",
|
| 380 |
+
"video_compressor_oversize": "La résolution de la vidéo ajoutée dépasse 1920*1080. La compression en ligne prend en charge la vidéo de résolution maximale de 1920*1080. Si vous souhaitez compresser une vidéo de résolution supérieure, veuillez télécharger la version de bureau.",
|
| 381 |
+
"video_compressor_continue": "continue",
|
| 382 |
+
"video_compressor_desktop": "Installer la Version de Bureau",
|
| 383 |
+
"video_compressor_replace": "Êtes-vous sûr de remplacer la vidéo actuelle pour compresser d'autres vidéos?",
|
| 384 |
+
"video_compressor_stop_compress": "Êtes-vous sûr d'arrêter le progrès de compression?",
|
| 385 |
+
"video_compressor_stop": "Arrêter",
|
| 386 |
+
"video_joiner_stop": "Voulez-vous vraiment arrêter la fusion?",
|
| 387 |
+
"video_compressor_compress": "Compresser",
|
| 388 |
+
"video_compressor_compressing": "Compression",
|
| 389 |
+
"video_compressor_reload": "Le fichier que vous avez chargé est endommagé. Veuillez sélectionner un autre fichier à uploader.",
|
| 390 |
+
"video_compressor_file_error": "Une erreur s'est produite lors de la lecture du fichier chargé. Veuillez en choisir un autre.",
|
| 391 |
+
"video_compressor_desktop_download": "Installer la Version de Bureau",
|
| 392 |
+
"video_joiner_merging": "Fusionner des vidéos",
|
| 393 |
+
"video_joiner_merge": "Fusionner maintenant",
|
| 394 |
+
"video_joiner_join_failed": "La fusion a échoué",
|
| 395 |
+
"video_joiner_join_success": "Fusionné avec succès",
|
| 396 |
+
"video_joiner_insert": "Insérer un nouveau",
|
| 397 |
+
"video_joiner_to_merge": "Ajouter Fichier(s) Ã Fusionner",
|
| 398 |
+
"video_joiner": "Fusionneur Vidéo en Ligne Gratuit",
|
| 399 |
+
"browser_support_image_compressor": "Votre navigateur est trop ancien. Veuillez le mettre à jour pour continuer la compression de photo.",
|
| 400 |
+
"image_compressor_upload": "Importer",
|
| 401 |
+
"image_compressor_finished": "Terminé",
|
| 402 |
+
"image_compressor_error": "Erreur!",
|
| 403 |
+
"image_compressor_max-size": "La taille est supérieure à 5 Mo",
|
| 404 |
+
"image_compressor_max_number": "Vous ne pouvez charger que 40 images aujourd'hui.",
|
| 405 |
+
"pdf_compressor_max_number": "Vous ne pouvez ajouter que 10 fichiers aujourd'hui.",
|
| 406 |
+
"image_compressor_failed": "Échec",
|
| 407 |
+
"heic_converter_max_size": "Vous ne pouvez ajouter que 5 Mo par fichier.",
|
| 408 |
+
"image_compressor_download": "Télécharger",
|
| 409 |
+
"image_compressor_converting": "Conversion",
|
| 410 |
+
"image_compressor_delete": "Supprimer",
|
| 411 |
+
"pdf_compressor_refreshing": "Il y a peut-être une erreur, essayez d'actualiser la page?",
|
| 412 |
+
"pdf_compressor_try_again": "Erreur! Veuillez actualiser la page et réessayer.",
|
| 413 |
+
"pdf_compressor_updata_error": "Erreur de processus d'upload",
|
| 414 |
+
"pdf_compressor_over_size": "Taille de fichier trop grande",
|
| 415 |
+
"pdf_compressor__not_allowed": "Cette extension n'est pas autorisée",
|
| 416 |
+
"pdf_compressor_one_only": "Ne peut en uploader qu'un",
|
| 417 |
+
"browser_support_pdf_compressor": "Votre navigateur est trop ancien. Veuillez le mettre à jour pour continuer la compression des fichiers PDF.",
|
| 418 |
+
'over_size_message': 'La taille de l\'image que vous avez chargée dépasse 10 Mo, nous allons compresser votre fichier avant en charger, cliquez sur "OK" pour continuer',
|
| 419 |
+
'file_type_error': 'Le fichier que vous avez chargé n\'est pas une image! Veuillez sélectionner une image à nouveau',
|
| 420 |
+
'image_type_error': 'Le format d\'image que vous chargez n\'est pas pris en charge pour le moment. Les formats d\'image pris en charge incluent JPG; JPEG; PNG; GIF. Nous allons faire la conversion de votre fichier avant de l\'uploader. Cliquez sur "OK" pour continuer.',
|
| 421 |
+
'upload_error': 'Erreur de chargement (code d\'erreur: 2000), veuillez réessayer...',
|
| 422 |
+
'network_error': 'Le réseau est anormal (code d\'erreur: 2001), veuillez réessayer...',
|
| 423 |
+
'recognition_error': 'Erreur de reconnaissance (code d\'erreur: 2002), veuillez réessayer...',
|
| 424 |
+
'image_compress_fail': 'L\'image est trop grande, la compression a échoué',
|
| 425 |
+
'image_transfer_fail': 'La conversion du format d\'image a échoué, veuillez remplacer l\'image',
|
| 426 |
+
'original_image': 'Originale',
|
| 427 |
+
'preview_image': 'Aperçu',
|
| 428 |
+
"browser_support_heic_converter": "Votre navigateur Web est obsolète. Veuillez mettre à jour à la dernière version.",
|
| 429 |
+
"video_converter_title": "Installer la version de bureau pour profiter de plus de formats de sortie et de fonctions d'édition de puissance.",
|
| 430 |
+
},
|
| 431 |
+
"de": {
|
| 432 |
+
"launcher_step_1": ["Schritt", "", "Sie bitte zuerst den ", "."],
|
| 433 |
+
"launcher_step_2": ["Schritt", "Installieren", "Sie bitte nach dem Download den ", ""],
|
| 434 |
+
"launcher_submit": "Senden",
|
| 435 |
+
"launcher_no_file": "Keine Datei ausgewählt!",
|
| 436 |
+
"launcher_video_format": "Video Format",
|
| 437 |
+
"launcher_audio_format": "Audio Format",
|
| 438 |
+
"launcher_install_guide": "Installieren",
|
| 439 |
+
"launcher_feedback": "Feedback",
|
| 440 |
+
"launcher_retry": "Wiederholen",
|
| 441 |
+
"launcher_download": "Downloaden",
|
| 442 |
+
"launcher_error_1010": "Dieser Dienst wird vom aktuellen Browser oder der aktuellen Version nicht unterstützt (Fehlercode: 1010). Aktualisieren Sie bitte Ihren Browser oder versuchen Sie einen anderen Browser.",
|
| 443 |
+
"system_support": "Dieser Online-Dienst ist nur auf dem Computer verfügbar. Verwenden Sie bitte für den Zugriff einen Desktop-Browser.",
|
| 444 |
+
"launching_agent": "Wird gestartet…",
|
| 445 |
+
"launcher_error_1011": "Kommunikation ist abnormal gestört (Fehlercode: 1011). Klicken Sie auf Wiederholen, um es erneut zu versuchen, oder Sie können uns Feedback zur Lösung des Problems senden.",
|
| 446 |
+
"service_activated": "Dienst aktiviert!",
|
| 447 |
+
"service_closed": "Dienst deaktiviert!",
|
| 448 |
+
"launcher_proccess": "Wird aktualisiert...",
|
| 449 |
+
"launcher_error_1001": "Während der Umgebungskonfiguration ist eine Ausnahme aufgetreten (Fehlercode: 1001). Aktualisieren Sie bitte die Seite, um es erneut zu versuchen, oder geben Sie uns Feedback, um das Problem zu lösen.",
|
| 450 |
+
"launcher_error_1002": "Während der Umgebungskonfiguration ist eine Ausnahme aufgetreten (Fehlercode: 1002). Aktualisieren Sie bitte die Seite, um es erneut zu versuchen, oder geben Sie uns Feedback, um das Problem zu lösen.",
|
| 451 |
+
"launcher_error_1003": "Instabile Netzwerkverbindung (Fehlercode: 1003). Klicken Sie auf Wiederholen, um es erneut zu versuchen, oder Sie können uns Feedback zur Lösung des Problems senden.",
|
| 452 |
+
"launcher_error_1000": "Während der Umgebungskonfiguration ist eine Ausnahme aufgetreten (Fehlercode: 1000). Aktualisieren Sie bitte die Seite, um es erneut zu versuchen, oder geben Sie uns Feedback, um das Problem zu lösen.",
|
| 453 |
+
"launcher_error_1004": "Konfiguration fehlgeschlagen (Fehlercode: 1004). Klicken Sie auf Wiederholen, um es erneut zu konfigurieren, oder senden Sie uns Feedback, um das Problem zu lösen.",
|
| 454 |
+
"launcher_updated": ["Der Dienst ist aktualisiert, klicken Sie bitte auf Jetzt aktualisieren, um ihn herunterzuladen und zu installieren.", "Jetzt aktualisieren"],
|
| 455 |
+
"launcher_launching": "Dienst wird gestartet...",
|
| 456 |
+
"launcher_error_1012": "Der Hauptprozessdienst konnte nicht geladen werden (Fehlercode: 1012). Klicken Sie auf Wiederholen, um erneut zu laden, oder senden Sie uns eine Rückmeldung, um das Problem zu lösen.",
|
| 457 |
+
"launcher_error_1005": "Während der Umgebungskonfiguration ist eine Ausnahme aufgetreten (Fehlercode: 1005). Aktualisieren Sie bitte die Seite, um es erneut zu versuchen, oder geben Sie uns Feedback, um das Problem zu lösen.",
|
| 458 |
+
"launcher_error_1007": "Während der Umgebungskonfiguration ist eine Ausnahme aufgetreten (Fehlercode: 1007). Aktualisieren Sie bitte die Seite, um es erneut zu versuchen, oder geben Sie uns Feedback, um das Problem zu lösen.",
|
| 459 |
+
"launcher_error_1006": "Während der Umgebungskonfiguration ist eine Ausnahme aufgetreten (Fehlercode: 1006). Aktualisieren Sie bitte die Seite, um es erneut zu versuchen, oder geben Sie uns Feedback, um das Problem zu lösen.",
|
| 460 |
+
"launcher_error_1008": "Während der Umgebungskonfiguration ist eine Ausnahme aufgetreten (Fehlercode: 1008). Aktualisieren Sie bitte die Seite, um es erneut zu versuchen, oder geben Sie uns Feedback, um das Problem zu lösen.",
|
| 461 |
+
"feedback_zoon": ["Vielen Dank für Ihr Feedback. Senden Sie uns bitte Ihr Problem und wir werden Sie innerhalb von 24 Stunden antworten.", "Email:", "Geben Sie bitte hier Ihre E-Mail-Adresse ein!", "Contents:", "Geben Sie bitte hier Ihre Probleme oder Vorschläge ein!", "Vielen Dank!", "Ihr Feedback wurde erfolgreich gesendet.", "Aufnahme starten", "Ihre Kommentare schreiben"],
|
| 462 |
+
"launcher_feedbacktip": "Geben Sie bitte hier Ihre E-Mail-Adresse ein!",
|
| 463 |
+
"screen_recorder_feedback": ["Keine E-Mail-Adresse!", "Geben Sie bitte eine gültige E-Mail-Adresse ein!", "Geben Sie bitte den Inhalt ein!"],
|
| 464 |
+
"video_converter_convert": "Konvertieren",
|
| 465 |
+
"video_converter_add": "Datei hinzufügen",
|
| 466 |
+
"video_converter_stop": "Stoppen",
|
| 467 |
+
"video_converter_stop_info": "Möchten Sie die Konvertierung wirklich beenden?",
|
| 468 |
+
"video_converter_complete": "Erfolgreich umgewandelt!",
|
| 469 |
+
"video_converter_ok": "OK",
|
| 470 |
+
"video_converter_exit": "Möchten Sie Video Converter wirklich beenden?",
|
| 471 |
+
"audio_converter_exit": "Möchten Sie Audio Converter wirklich beenden?",
|
| 472 |
+
"video_converter_general_info": "Allgemeine Informationen",
|
| 473 |
+
"video_converter_name_info": "Name:",
|
| 474 |
+
"video_converter_format_info": "Format:",
|
| 475 |
+
"video_converter_size_info": "Größe:",
|
| 476 |
+
"video_converter_duration_info": "Dauer:",
|
| 477 |
+
"video_converter_video_stream_info": "Video-Stream",
|
| 478 |
+
"video_converter_encoder_info": "Encoder:",
|
| 479 |
+
"video_converter_video_bitrate_info": "Video-Bitrate:",
|
| 480 |
+
"video_converter_resolution_info": "Auflösung:",
|
| 481 |
+
"video_converter_frame_rate_info": "Bildfrequenz:",
|
| 482 |
+
"video_converter_audio_stream_info": "Audio-Stream",
|
| 483 |
+
"video_converter_encoder_info": "Encoder:",
|
| 484 |
+
"video_converter_sample_rate_info": "Abtastrate:",
|
| 485 |
+
"video_converter_channel_info": "Kanal:",
|
| 486 |
+
"video_converter_audio_bitrate_info": "Audio-Bitrate:",
|
| 487 |
+
"video_converter_video_settings": "Video-Einstellungen",
|
| 488 |
+
"video_converter_audio_settings": "Audio-Einstellungen",
|
| 489 |
+
"video_converter_audio_encoder_settings": "Encoder:",
|
| 490 |
+
"video_converter_video_encoder_settings": "Video Encoder:",
|
| 491 |
+
"video_converter_bitrate_settings": "Bitrate:",
|
| 492 |
+
"video_converter_default_settings": "Zurücksetzen",
|
| 493 |
+
"video_converter_cancel_settings": "Stornieren",
|
| 494 |
+
"video_converter_same": "Gleich wie die Quelle",
|
| 495 |
+
"video_compressor_exit": "Möchten Sie den Video Compressor beenden?",
|
| 496 |
+
"video_joiner_exit": "Möchten Sie den Video merger wirklich verlassen?",
|
| 497 |
+
"video_joiner_comfirm_merge": "Das Zusammenführen von Videos ohne Audiospuren wird nicht unterstützt. Nachdem Sie auf \"OK\" geklickt haben, filtern wir automatisch Videos ohne Audiospuren für Sie heraus. Sie können auch die Desktop-Version herunterladen, um Videos ohne Audiospuren zusammenzuführen.",
|
| 498 |
+
"video_joiner_format_video": "Videos with Sound track",
|
| 499 |
+
"video_joiner_format_audio": "Videos without Sound track",
|
| 500 |
+
"video_compressor_add": "Dateien hinzufügen",
|
| 501 |
+
"video_compressor_change_file": "Originale Datei ändern",
|
| 502 |
+
"video_compressor_successfully": "Komprimierung abgeschlossen!",
|
| 503 |
+
"video_compressor_failed": "Komprimierung fehlgeschlagen!",
|
| 504 |
+
"video_compressor_yes": "Ja",
|
| 505 |
+
"video_compressor_no": "Nein",
|
| 506 |
+
"video_compressor_source": "Quelle",
|
| 507 |
+
"video_compressor_output": "Ausgabe",
|
| 508 |
+
"video_compressor_oversize": "Die Auflösung des hinzugefügten Videos überschreitet 1920x1080. Aber der Online Video Compressor unterstützt eine maximale Auflösung von 1920x1080. Wenn Sie eine größere Auflösung komprimieren möchten, laden Sie bitte die Desktop-Version herunter.",
|
| 509 |
+
"video_compressor_continue": "continue",
|
| 510 |
+
"video_compressor_desktop": "Download Desktop Version",
|
| 511 |
+
"video_compressor_replace": "Möchten Sie das aktuelle Video von einem anderen ersetzen?",
|
| 512 |
+
"video_compressor_stop_compress": "Möchten Sie den Komprimierungsvorgang beenden?",
|
| 513 |
+
"video_compressor_stop": "Konvertiert",
|
| 514 |
+
"video_joiner_stop": "Möchten Sie die Zusammenführung wirklich beenden?",
|
| 515 |
+
"video_compressor_compress": "Komprimieren",
|
| 516 |
+
"video_compressor_compressing": "Wird komprimiert",
|
| 517 |
+
"video_compressor_reload": "Die hinzugefügte Datei ist beschädigt. Wählen Sie bitte eine andere.",
|
| 518 |
+
"video_compressor_file_error": "Beim Lesen der Datei ist ein Fehler aufgetreten. Bitte versuchen Sie es mit einer anderen.",
|
| 519 |
+
"video_compressor_desktop_download": "Desktop-Version installieren",
|
| 520 |
+
"video_joiner_merging": "Videos werden zusammengefügt",
|
| 521 |
+
"video_joiner_merge": "zusammenfügen",
|
| 522 |
+
"video_joiner_join_failed": "Zusammenfügen fehlgeschlagen",
|
| 523 |
+
"video_joiner_join_success": "Zusammenfügen erfolgreich",
|
| 524 |
+
"video_joiner_insert": "Neu einfügen",
|
| 525 |
+
"video_joiner_to_merge": "Dateien hinzufügen",
|
| 526 |
+
"video_joiner": "Online Video Joiner",
|
| 527 |
+
"browser_support_image_compressor": "Ihr Browser ist zu alt. Aktualisieren Sie bitte den Browser, um Ihr Bild zu komprimieren.",
|
| 528 |
+
"image_compressor_upload": "Hochladen",
|
| 529 |
+
"image_compressor_finished": "Abgeschlossen",
|
| 530 |
+
"image_compressor_error": "Fehler!",
|
| 531 |
+
"image_compressor_max-size": "Größe über 5 MB",
|
| 532 |
+
"image_compressor_max_number": "Heute können Sie nur 40 Bilder hochladen",
|
| 533 |
+
"pdf_compressor_max_number": "Heute können Sie maximal von 10 Dateien hinzufügen.",
|
| 534 |
+
"image_compressor_failed": "Fehlgeschlagen",
|
| 535 |
+
"heic_converter_max_size": "Jede Datei sollte nicht über 5 MB sein.",
|
| 536 |
+
"image_compressor_download": "Downloaden",
|
| 537 |
+
"image_compressor_converting": "Wird konvertiert",
|
| 538 |
+
"image_compressor_delete": "Löschen",
|
| 539 |
+
"pdf_compressor_refreshing": "Vielleicht ist ein Fehler aufgetreten, möchten Sie erneut versuchen?",
|
| 540 |
+
"pdf_compressor_try_again": "Fehler! Aktualisieren Sie die Seite und versuchen Sie es bitte erneut.",
|
| 541 |
+
"pdf_compressor_updata_error": "Fehler beim Hochladen",
|
| 542 |
+
"pdf_compressor_over_size": "Dateigröße zu groß",
|
| 543 |
+
"pdf_compressor__not_allowed": "Diese Erweiterung ist nicht erlaubt",
|
| 544 |
+
"pdf_compressor_one_only": "Nur eine Datei kann hochgeladen werden",
|
| 545 |
+
"browser_support_pdf_compressor": "Ihr Browser ist zu alt. Aktualisieren Sie bitte den Browser, um PDF-Dateien zu komprimieren.",
|
| 546 |
+
'over_size_message': 'Wenn die Größe Ihres hochgeladenen Bildes mehr als 10M beträgt, komprimieren wir Ihre Datei und laden sie hoch. Klicken Sie auf "OK", Sie können sie weiterhin hochladen',
|
| 547 |
+
'file_type_error': 'Die von Ihnen hochgeladene Datei ist kein Bild! Bitte erneut hochladen',
|
| 548 |
+
'image_type_error': 'Das Bildformat wird nicht unterstützt. Unterstützte Formate sind JPG, JPEG, PNG, GIF. Wir werden Ihr Bildformat nach der Umwandlung erkennen. Klicken Sie auf "OK", um mit dem Hochladen fortzufahren',
|
| 549 |
+
'upload_error': 'Fehler beim Hochladen (Fehlercode: 2000), versuchen Sie bitte erneut...',
|
| 550 |
+
'network_error': ' Netzwerkfehler (Fehlercode: 2001), versuchen Sie bitte erneut...',
|
| 551 |
+
'recognition_error': 'Fehler beim Erkennen (Fehlercode: 2002), versuchen Sie bitte erneut...',
|
| 552 |
+
'image_compress_fail': 'Datei zu groß, Fehler bei der komprimierung',
|
| 553 |
+
'image_transfer_fail': 'Bildumwandlung fehlgeschlagen, ändern Sie bitte das Bild',
|
| 554 |
+
'original_image': 'Original',
|
| 555 |
+
'preview_image': 'Vorschau',
|
| 556 |
+
"browser_support_heic_converter": "Ihr Webbrowser ist veraltet. Aktualisieren Sie den bitte auf die neueste Version.",
|
| 557 |
+
"video_converter_title": "Installieren Sie die Desktop-Version, um mehr Funktionen zu genießen.",
|
| 558 |
+
},
|
| 559 |
+
"zh_CN": {
|
| 560 |
+
'over_size_message': 'æ‚¨æ‰€ä¸Šä¼ çš„å›¾ç‰‡å¤§å°è¶…过10M,我们将会对您的文件进行简å•压缩åŽè¿›è¡Œä¸Šä¼ 处ç†ï¼Œç‚¹å‡»â€œç¡®å®šâ€å¯ç»§ç»ä¸Šä¼ ',
|
| 561 |
+
'file_type_error': 'æ‚¨ä¸Šä¼ çš„æ–‡ä»¶ä¸æ˜¯å›¾ç‰‡ï¼è¯·é‡æ–°ä¸Šä¼ ',
|
| 562 |
+
'image_type_error': 'æš‚ä¸æ”¯æŒæ‚¨ä¸Šä¼ çš„å›¾ç‰‡æ ¼å¼ï¼Œæˆ‘们支æŒçš„å›¾ç‰‡æ ¼å¼æœ‰JPGï¼›JPEGï¼›PNGï¼›GIFï¼Œæˆ‘ä»¬å°†å¯¹æ‚¨çš„å›¾ç‰‡æ ¼å¼è¿›è¡Œè½¬æ¢åŽè¯†åˆ«å¤„ç†ï¼Œç‚¹å‡»â€œç¡®å®šâ€å¯ç»§ç»ä¸Šä¼ ',
|
| 563 |
+
'upload_error': 'ä¸Šä¼ å¼‚å¸¸ï¼ˆé”™è¯¯ç :2000),请é‡è¯•……',
|
| 564 |
+
'network_error': '网络异常(错误ç :2001),请é‡è¯•……',
|
| 565 |
+
'recognition_error': '识别异常(错误ç :2002),请é‡è¯•……',
|
| 566 |
+
'image_compress_fail': '图片过大,压缩失败',
|
| 567 |
+
'image_transfer_fail': 'å›¾ç‰‡æ ¼å¼è½¬åŒ–失败,请更æ¢å›¾ç‰‡',
|
| 568 |
+
'original_image': '原图',
|
| 569 |
+
'preview_image': '预览',
|
| 570 |
+
"launcher_step_1": ["Step", "Please", " ", " first."],
|
| 571 |
+
"launcher_step_2": ["Step", "Install", "", "after downloading."],
|
| 572 |
+
"launcher_submit": "Submit",
|
| 573 |
+
"launcher_no_file": "No File Selected!",
|
| 574 |
+
"launcher_video_format": "Video Format",
|
| 575 |
+
"launcher_audio_format": "Audio Format",
|
| 576 |
+
"launcher_install_guide": "Install",
|
| 577 |
+
"launcher_feedback": "Feedback",
|
| 578 |
+
"launcher_retry": "Retry",
|
| 579 |
+
"launcher_download": "Download Launcher",
|
| 580 |
+
"launcher_error_1010": "This service is not supported by the current browser or version (error code: 1010). Please upgrade your browser or try a different browser.",
|
| 581 |
+
"system_support": "This online service is only available on the computer. Please use desktop browser to access.",
|
| 582 |
+
"launching_agent": "Launching…",
|
| 583 |
+
"launcher_error_1011": "Communication is abnormally down (error code: 1011). Click Retry to try again, or you can send us feedback to solve the problem.",
|
| 584 |
+
"service_activated": "Service activated!",
|
| 585 |
+
"service_closed": "Service is closed!",
|
| 586 |
+
"launcher_proccess": "Updating...",
|
| 587 |
+
"launcher_error_1001": "An exception occurred during environment configuration (error code: 1001). Please refresh the page to try again, or give us feedback to resolve the issue.",
|
| 588 |
+
"launcher_error_1002": "An exception occurred during environment configuration (error code: 1002). Please refresh the page to try again, or give us feedback to resolve the issue.",
|
| 589 |
+
"launcher_error_1003": "Unstable network connection (error code: 1003). Click Retry to try again, or you can send us feedback to solve the problem.",
|
| 590 |
+
"launcher_error_1000": "An exception occurred during environment configuration (error code: 1000). Please refresh the page to try again, or give us feedback to resolve the issue.",
|
| 591 |
+
"launcher_error_1004": "Configuration failed (error code: 1004). Click Retry to reconfigure, or you can send us feedback to solve the problem.",
|
| 592 |
+
"launcher_updated": ["The service is updated, please click Update Now to download and install.", "Update Now"],
|
| 593 |
+
"launcher_launching": "Launching service...",
|
| 594 |
+
"launcher_error_1012": "The main process service failed to load (error code: 1012). Click Retry to reload, or you can send us feedback to solve the problem.",
|
| 595 |
+
"launcher_error_1005": "An exception occurred during environment configuration (error code: 1005). Please refresh the page to try again, or give us feedback to resolve the issue.",
|
| 596 |
+
"launcher_error_1007": "An exception occurred during environment configuration (error code: 1007). Please refresh the page to try again, or give us feedback to resolve the issue.",
|
| 597 |
+
"launcher_error_1006": "An exception occurred during environment configuration (error code: 1006). Please refresh the page to try again, or give us feedback to resolve the issue.",
|
| 598 |
+
"launcher_error_1008": "An exception occurred during environment configuration (error code: 1008). Please refresh the page to try again, or give us feedback to resolve the issue.",
|
| 599 |
+
"feedback_zoon": ["Thanks for your feedback. Please leave your problem and we will respond to you within 24 hours.", "Email:", "Enter your email here!", "Contents:", "Leave any problem or suggestion you encountered here.", "Thank You!", "Your Feedback has been submitted successfully.", "Start Recording", "Leave Your Comment"],
|
| 600 |
+
"launcher_feedbacktip": "Enter your email here!",
|
| 601 |
+
"screen_recorder_feedback": ["Email is empty!", "Please enter a valid email!", "Please Enter Content!"],
|
| 602 |
+
"video_converter_convert": "Convert",
|
| 603 |
+
"video_converter_add": "Add File",
|
| 604 |
+
"video_converter_stop": "Stop",
|
| 605 |
+
"video_converter_stop_info": "Are you sure to stop converting?",
|
| 606 |
+
"video_converter_complete": "Conversion complete!",
|
| 607 |
+
"video_converter_ok": "OK",
|
| 608 |
+
"video_converter_exit": "Are you sure you want to exit Video Converter?",
|
| 609 |
+
"audio_converter_exit": "Are you sure you want to exit Audio Converter?",
|
| 610 |
+
"video_converter_general_info": "General Info",
|
| 611 |
+
"video_converter_name_info": "Name:",
|
| 612 |
+
"video_converter_format_info": "Format:",
|
| 613 |
+
"video_converter_size_info": "Size:",
|
| 614 |
+
"video_converter_duration_info": "Duration:",
|
| 615 |
+
"video_converter_video_stream_info": "Video Stream",
|
| 616 |
+
"video_converter_encoder_info": "Encoder:",
|
| 617 |
+
"video_converter_video_bitrate_info": "Video Bitrate:",
|
| 618 |
+
"video_converter_resolution_info": "Resolution:",
|
| 619 |
+
"video_converter_frame_rate_info": "Frame Rate:",
|
| 620 |
+
"video_converter_audio_stream_info": "Audio Stream",
|
| 621 |
+
"video_converter_encoder_info": "Encoder:",
|
| 622 |
+
"video_converter_sample_rate_info": "Sample Rate:",
|
| 623 |
+
"video_converter_channel_info": "Channel:",
|
| 624 |
+
"video_converter_audio_bitrate_info": "Audio Bitrate:",
|
| 625 |
+
"video_converter_video_settings": "Video Settings",
|
| 626 |
+
"video_converter_audio_settings": "Audio Settings",
|
| 627 |
+
"video_converter_audio_encoder_settings": "Audio Encoder:",
|
| 628 |
+
"video_converter_video_encoder_settings": "Video Encoder:",
|
| 629 |
+
"video_converter_bitrate_settings": "Bitrate:",
|
| 630 |
+
"video_converter_default_settings": "Default",
|
| 631 |
+
"video_converter_cancel_settings": "Cancel",
|
| 632 |
+
"video_converter_same": "Same as resource",
|
| 633 |
+
"video_compressor_exit": "Are you sure you want to exit Video Compress?",
|
| 634 |
+
"video_joiner_exit": "Are you sure you want to exit Video merger?",
|
| 635 |
+
"video_joiner_comfirm_merge": "æˆ‘ä»¬ä¸æ”¯æŒåˆå¹¶æ— 音轨视频。点击“OKâ€ä¹‹åŽæˆ‘ä»¬å°†è‡ªåŠ¨ä¸ºæ‚¨è¿‡æ»¤æŽ‰æ— éŸ³è½¨è§†é¢‘ï¼Œæ‚¨ä¹Ÿå¯ä»¥ä¸‹è½½æ¡Œé¢ç«¯å¯¹æ— 音轨视频进行åˆå¹¶ã€‚",
|
| 636 |
+
"video_joiner_format_video": "有音轨的视频",
|
| 637 |
+
"video_joiner_format_audio": "æ— éŸ³è½¨çš„è§†é¢‘",
|
| 638 |
+
"video_compressor_add": "Add Files to Compress",
|
| 639 |
+
"video_compressor_change_file": "Change Source File",
|
| 640 |
+
"video_compressor_successfully": "Compression successfully!",
|
| 641 |
+
"video_compressor_failed": "Compression failed, please retry!",
|
| 642 |
+
"video_compressor_yes": "Yes",
|
| 643 |
+
"video_compressor_no": "No",
|
| 644 |
+
"video_compressor_source": "Source",
|
| 645 |
+
"video_compressor_output": "Output",
|
| 646 |
+
"video_compressor_oversize": "The uploaded video resolution exceeds the highest limit of 1920*1080. Download the desktop version and compress the videos with higher resolutions.",
|
| 647 |
+
"video_compressor_continue": "continue",
|
| 648 |
+
"video_compressor_desktop": "Download Desktop Version",
|
| 649 |
+
"video_compressor_replace": "Are you sure you want to replace current video to compress other?",
|
| 650 |
+
"video_compressor_stop_compress": "Are you sure you want to stop compress progress?",
|
| 651 |
+
"video_compressor_stop": "Stop",
|
| 652 |
+
"video_joiner_stop": "Are you sure you want to stop merging?",
|
| 653 |
+
"video_compressor_compress": "Compress",
|
| 654 |
+
"video_compressor_compressing": "Compressing",
|
| 655 |
+
"video_compressor_reload": "The file you uploaded is corrupted. Please select another one file for upload.",
|
| 656 |
+
"video_compressor_file_error": "An error has occurred while reading the uploaded file. Please try another one.",
|
| 657 |
+
"video_compressor_desktop_download": "Install Desktop Version",
|
| 658 |
+
"video_joiner_merging": "Merging videos",
|
| 659 |
+
"video_joiner_merge": "Merge Now",
|
| 660 |
+
"video_joiner_join_failed": "Join Failed",
|
| 661 |
+
"video_joiner_join_success": "Join Successfully",
|
| 662 |
+
"video_joiner_insert": "Insert new",
|
| 663 |
+
"video_joiner_to_merge": "Add files to Merge",
|
| 664 |
+
"video_joiner": "Online Video Merger",
|
| 665 |
+
"browser_support_image_compressor": "Your browser is to old. Please update it to support compress photo.",
|
| 666 |
+
"image_compressor_upload": "upload",
|
| 667 |
+
"image_compressor_finished": "Finished",
|
| 668 |
+
"image_compressor_error": "Error!",
|
| 669 |
+
"image_compressor_max-size": "Size large than 5 MB",
|
| 670 |
+
"image_compressor_max_number": "You can only upload 40 images today.",
|
| 671 |
+
"pdf_compressor_max_number": "You can only add up to 10 files today.",
|
| 672 |
+
"image_compressor_failed": "Fail",
|
| 673 |
+
"heic_converter_max_size": "You can only add up to 5 MB per file.",
|
| 674 |
+
"image_compressor_download": "Download",
|
| 675 |
+
"image_compressor_converting": "Converting",
|
| 676 |
+
"image_compressor_delete": "Delete",
|
| 677 |
+
"pdf_compressor_refreshing": "There may be an error,try refreshing?",
|
| 678 |
+
"pdf_compressor_try_again": "Error! Please refresh page and try again.",
|
| 679 |
+
"pdf_compressor_updata_error": "Upload process error",
|
| 680 |
+
"pdf_compressor_over_size": "File size too big",
|
| 681 |
+
"pdf_compressor__not_allowed": "This extension is not allowed",
|
| 682 |
+
"pdf_compressor_one_only": "Can only upload one",
|
| 683 |
+
"browser_support_pdf_compressor": "Your browser is to old. Please update it to support compress PDF Files.",
|
| 684 |
+
'over_size_message': 'The image you uploaded is over 10M. We will compress your file for uploading. Please click “Confirm†to continue uploading.',
|
| 685 |
+
'file_type_error': 'The file you uploaded is not an image! Please try to upload again.',
|
| 686 |
+
'image_type_error': 'The image format is not supported. We only supports JPG, JPEG, PNG and GIF. We will covert your image format for recognition. Please click “Confirm†to continue uploading.',
|
| 687 |
+
'upload_error': 'Upload Error! (Error Code: 2000) Please try again.',
|
| 688 |
+
'network_error': 'Network Error! (Error Code: 2001) Please try again.',
|
| 689 |
+
'recognition_error': 'Recognition Error! (Error Code: 2002) Please try again.',
|
| 690 |
+
'image_compress_fail': 'The image is too large to compress!',
|
| 691 |
+
'image_transfer_fail': 'Failed to convert the image. Please upload another one.',
|
| 692 |
+
'original_image': 'Original',
|
| 693 |
+
'preview_image': 'Preview',
|
| 694 |
+
"browser_support_heic_converter": "Your web browser is outdated. Please update the latest version.",
|
| 695 |
+
"video_converter_title": "Install desktop version to enjoy more output formats and power edit functions.",
|
| 696 |
+
"watermark_remove_over_size": "æ‚¨æ‰€ä¸Šä¼ çš„å›¾ç‰‡å¤§å°è¶…过10Mï¼ŒæŽ¨èæ‚¨ä½¿ç”¨æˆ‘们的图片在线压缩产å“,点击<a class='jump-link' href='/free-image-compressor/'>了解更多</a>",
|
| 697 |
+
"watermark_remove_file_type_error": "æ‚¨ä¸Šä¼ çš„æ–‡ä»¶ä¸æ˜¯å›¾ç‰‡ï¼è¯·é‡æ–°ä¸Šä¼ ",
|
| 698 |
+
"watermark_remove_image_type_error": "æš‚ä¸æ”¯æŒæ‚¨ä¸Šä¼ çš„å›¾ç‰‡æ ¼å¼ï¼Œæˆ‘们支æŒçš„å›¾ç‰‡æ ¼å¼æœ‰JPGï¼›JPEGï¼›PNGï¼›BMP",
|
| 699 |
+
"watermark_remove_upload_error": "识别异常(错误ç :2001),请é‡è¯•...",
|
| 700 |
+
"watermark_remove_processing": "图片æ£åœ¨è¯†åˆ«ä¸",
|
| 701 |
+
"watermark_remove_not_save": "您涂抹的区域将ä¸ä¼šä¿ç•™ï¼Œæ˜¯å¦è£å‰ªï¼Ÿ",
|
| 702 |
+
"watermark_remove_back_home": "您的æ“作将ä¸ä¼šä¿ç•™ï¼Œæ˜¯å¦å›žåˆ°é¦–页?",
|
| 703 |
+
"watermark_remove_new_image": "您的æ“作将ä¸ä¼šä¿ç•™ï¼Œæ˜¯å¦é€‰æ‹©æ–°å›¾ç‰‡ï¼Ÿ",
|
| 704 |
+
"watermark_select": "请选择",
|
| 705 |
+
"watermark_select_area": "请先选择è¦åŽ»é™¤çš„åŒºåŸŸ",
|
| 706 |
+
"image_enhancer_oversize": "æ‚¨æ‰€ä¸Šä¼ çš„å›¾ç‰‡å¤§å°è¶…过10Mï¼ŒæŽ¨èæ‚¨ä½¿ç”¨æˆ‘们的图片在线压缩产å“,点击<a class='jump-link' href='/free-image-compressor/'>了解更多</a>",
|
| 707 |
+
"image_enhancer_overresolution": "æ‚¨æ‰€ä¸Šä¼ çš„å›¾ç‰‡è¶…å‡º3000px*3000px, è¯·é€‰æ‹©å›¾ç‰‡é‡æ–°ä¸Šä¼ 。",
|
| 708 |
+
"image_enhancer_maxsolution": "图片å¯ä»¥æ”¾å¤§åˆ°3000x3000px,我们将会把您的图片缩å°åˆ°3000x3000px以内。",
|
| 709 |
+
"image_enhancer_maxsolution_alert": "图片å¯ä»¥æ”¾å¤§åˆ°3000x3000px,我们已将您的图片缩å°åˆ°3000x3000px以内。",
|
| 710 |
+
"image_enhancer_processing": "Loading...",
|
| 711 |
+
"image_enhancer_change": "åˆ‡æ¢æ˜¾ç¤ºåŽŸå›¾",
|
| 712 |
+
"image_enhancer_show": "原图",
|
| 713 |
+
"image_enhancer_output": "输出",
|
| 714 |
+
"image_enhancer_zoom": "æ”¾å¤§å€æ•°",
|
| 715 |
+
"image_enhancer_close": "å…³é—窗å£",
|
| 716 |
+
}
|
| 717 |
+
},
|
| 718 |
+
getCurrentLanguage: function() {
|
| 719 |
+
var str = window.location.href.match(/\/\/(\S*)\//)[1].split("/")[0].replace("aiseesoft", "").replace("apeaksoft", "").replace("anymp4", "").replace("videoconverter.net", "");
|
| 720 |
+
if (str.indexOf("\.fr") > -1 && str.indexOf("free-") < 0) {
|
| 721 |
+
return "fr"
|
| 722 |
+
} else if (str.indexOf("\.jp") > -1 && str.indexOf("free-") < 0) {
|
| 723 |
+
return "jp"
|
| 724 |
+
} else if (str.indexOf("\.de") > -1 && str.indexOf("free-") < 0) {
|
| 725 |
+
return "de"
|
| 726 |
+
} else if ((str.indexOf("cn") > -1 && str.indexOf("free-") < 0) || str.indexOf("drmfab.cn") > -1) {
|
| 727 |
+
return "zh_CN"
|
| 728 |
+
} else if (str.indexOf("tw") > -1 && str.indexOf("free-") < 0) {
|
| 729 |
+
return "zh_TW"
|
| 730 |
+
} else if (str.indexOf("tr") > -1 && str.indexOf("free-") < 0) {
|
| 731 |
+
return "tr"
|
| 732 |
+
} else {
|
| 733 |
+
return "en"
|
| 734 |
+
}
|
| 735 |
+
},
|
| 736 |
+
tr: function(msgKey) {
|
| 737 |
+
var curLang = this.getCurrentLanguage();
|
| 738 |
+
if (curLang in this.langs && msgKey in this.langs[curLang]) {
|
| 739 |
+
return this.langs[curLang][msgKey];
|
| 740 |
+
}
|
| 741 |
+
if (msgKey in this.langs['en']) {
|
| 742 |
+
return this.langs['en'][msgKey];
|
| 743 |
+
}
|
| 744 |
+
return msgKey;
|
| 745 |
+
}
|
| 746 |
+
};
|
| 747 |
+
})(window || {}, jQuery);
|
jsnew_image-upscaler.js
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
local.css
ADDED
|
@@ -0,0 +1,64 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
body {
|
| 2 |
+
font-family: 'Poppins', sans-serif;
|
| 3 |
+
background-color:#333;
|
| 4 |
+
}
|
| 5 |
+
|
| 6 |
+
#banner{
|
| 7 |
+
background: #333 center 0 !important;
|
| 8 |
+
}
|
| 9 |
+
|
| 10 |
+
h1, h2, h3, h4, h5, h6 {
|
| 11 |
+
font-family: 'Poppins', sans-serif;
|
| 12 |
+
font-weight: 600; /* Example weight */
|
| 13 |
+
}
|
| 14 |
+
|
| 15 |
+
p {
|
| 16 |
+
font-family: 'Poppins', sans-serif;
|
| 17 |
+
font-weight: 400; /* Regular weight */
|
| 18 |
+
}
|
| 19 |
+
|
| 20 |
+
.wp-block-button__link {
|
| 21 |
+
color:#fff;
|
| 22 |
+
background-color:#32373c;
|
| 23 |
+
border-radius:9999px;
|
| 24 |
+
box-shadow:none;
|
| 25 |
+
text-decoration:none;
|
| 26 |
+
padding:calc(.667em + 2px) calc(1.333em + 2px);
|
| 27 |
+
font-size:1.125em
|
| 28 |
+
}
|
| 29 |
+
|
| 30 |
+
.wp-block-file__button{
|
| 31 |
+
background:#32373c;
|
| 32 |
+
color:#fff;
|
| 33 |
+
text-decoration:none
|
| 34 |
+
}
|
| 35 |
+
|
| 36 |
+
.floating-button {
|
| 37 |
+
position: fixed;
|
| 38 |
+
bottom: 20px;
|
| 39 |
+
left: 20px;
|
| 40 |
+
background-color: #834aff;
|
| 41 |
+
color: white;
|
| 42 |
+
padding: 15px 25px;
|
| 43 |
+
border: none;
|
| 44 |
+
border-radius: 10px;
|
| 45 |
+
font-size: 14px;
|
| 46 |
+
font-weight: bold;
|
| 47 |
+
cursor: pointer;
|
| 48 |
+
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
|
| 49 |
+
transition: background-color 0.3s, box-shadow 0.3s;
|
| 50 |
+
text-decoration: none;
|
| 51 |
+
font-family: 'Poppins', sans-serif;
|
| 52 |
+
display: flex;
|
| 53 |
+
align-items: center;
|
| 54 |
+
justify-content: center;
|
| 55 |
+
}
|
| 56 |
+
|
| 57 |
+
.floating-button:hover {
|
| 58 |
+
background-color: darkviolet;
|
| 59 |
+
box-shadow: 0 6px 12px rgba(0, 0, 0, 0.3);
|
| 60 |
+
}
|
| 61 |
+
|
| 62 |
+
.floating-button i {
|
| 63 |
+
margin-right: 10px;
|
| 64 |
+
}
|
new-design.css
ADDED
|
@@ -0,0 +1,485 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
/* Hide old UI elements */
|
| 2 |
+
.header_bg,
|
| 3 |
+
#banner.heic_converter {
|
| 4 |
+
display: none !important;
|
| 5 |
+
}
|
| 6 |
+
|
| 7 |
+
/* Modern loading popup styles */
|
| 8 |
+
.image-loading-box .show-message-box {
|
| 9 |
+
background: hsl(240, 10%, 7%);
|
| 10 |
+
border: 1px solid rgba(255, 255, 255, 0.1);
|
| 11 |
+
border-radius: 0.75rem;
|
| 12 |
+
padding: 2.5rem;
|
| 13 |
+
box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.5), 0 10px 10px -5px rgba(0, 0, 0, 0.4);
|
| 14 |
+
min-width: 320px;
|
| 15 |
+
}
|
| 16 |
+
|
| 17 |
+
.image-loading-box .loading-box {
|
| 18 |
+
background: hsl(240, 10%, 7%);
|
| 19 |
+
}
|
| 20 |
+
|
| 21 |
+
.image-loading-box .loading-content {
|
| 22 |
+
display: flex;
|
| 23 |
+
flex-direction: column;
|
| 24 |
+
align-items: center;
|
| 25 |
+
gap: 1.25rem;
|
| 26 |
+
}
|
| 27 |
+
|
| 28 |
+
.image-loading-box .loading-text {
|
| 29 |
+
color: hsl(240, 5%, 90%);
|
| 30 |
+
font-size: 1.125rem;
|
| 31 |
+
font-weight: 600;
|
| 32 |
+
margin: 0;
|
| 33 |
+
}
|
| 34 |
+
|
| 35 |
+
.image-loading-box .loading-subtext {
|
| 36 |
+
color: hsl(240, 4%, 65%);
|
| 37 |
+
font-size: 0.875rem;
|
| 38 |
+
font-weight: 400;
|
| 39 |
+
margin-top: -0.75rem;
|
| 40 |
+
}
|
| 41 |
+
|
| 42 |
+
/* Modern gradient spinner */
|
| 43 |
+
.modern-spinner {
|
| 44 |
+
width: 56px;
|
| 45 |
+
height: 56px;
|
| 46 |
+
border-radius: 50%;
|
| 47 |
+
background: conic-gradient(from 0deg, hsl(265, 100%, 61%), #ff4b8d, hsl(265, 100%, 61%));
|
| 48 |
+
animation: spin 1s linear infinite;
|
| 49 |
+
position: relative;
|
| 50 |
+
display: flex;
|
| 51 |
+
align-items: center;
|
| 52 |
+
justify-content: center;
|
| 53 |
+
}
|
| 54 |
+
|
| 55 |
+
.modern-spinner::before {
|
| 56 |
+
content: '';
|
| 57 |
+
position: absolute;
|
| 58 |
+
width: 44px;
|
| 59 |
+
height: 44px;
|
| 60 |
+
background: hsl(240, 10%, 7%);
|
| 61 |
+
border-radius: 50%;
|
| 62 |
+
}
|
| 63 |
+
|
| 64 |
+
@keyframes spin {
|
| 65 |
+
to {
|
| 66 |
+
transform: rotate(360deg);
|
| 67 |
+
}
|
| 68 |
+
}
|
| 69 |
+
|
| 70 |
+
.image-loading-box .cancel-upload {
|
| 71 |
+
margin-top: 1.5rem;
|
| 72 |
+
padding: 0.75rem 1.5rem;
|
| 73 |
+
background: rgba(255, 255, 255, 0.1);
|
| 74 |
+
color: hsl(240, 5%, 90%);
|
| 75 |
+
border-radius: 0.5rem;
|
| 76 |
+
cursor: pointer;
|
| 77 |
+
transition: all 0.3s;
|
| 78 |
+
text-align: center;
|
| 79 |
+
}
|
| 80 |
+
|
| 81 |
+
.image-loading-box .cancel-upload:hover {
|
| 82 |
+
background: rgba(255, 255, 255, 0.2);
|
| 83 |
+
}
|
| 84 |
+
|
| 85 |
+
.image-loading-box .error-text,
|
| 86 |
+
.image-loading-box .warning-text,
|
| 87 |
+
.image-loading-box .alert-text {
|
| 88 |
+
color: hsl(240, 5%, 90%);
|
| 89 |
+
margin: 1rem 0;
|
| 90 |
+
font-size: 1rem;
|
| 91 |
+
}
|
| 92 |
+
|
| 93 |
+
.image-loading-box .button-group {
|
| 94 |
+
display: flex;
|
| 95 |
+
gap: 1rem;
|
| 96 |
+
margin-top: 1.5rem;
|
| 97 |
+
}
|
| 98 |
+
|
| 99 |
+
.image-loading-box .button-group .confirm,
|
| 100 |
+
.image-loading-box .button-group .cancel {
|
| 101 |
+
flex: 1;
|
| 102 |
+
padding: 0.75rem 1.5rem;
|
| 103 |
+
border-radius: 0.5rem;
|
| 104 |
+
cursor: pointer;
|
| 105 |
+
transition: all 0.3s;
|
| 106 |
+
text-align: center;
|
| 107 |
+
font-weight: 500;
|
| 108 |
+
}
|
| 109 |
+
|
| 110 |
+
.image-loading-box .button-group .confirm {
|
| 111 |
+
background: linear-gradient(90deg, hsl(265, 100%, 61%) 0%, #ff4b8d 100%);
|
| 112 |
+
color: white;
|
| 113 |
+
}
|
| 114 |
+
|
| 115 |
+
.image-loading-box .button-group .confirm:hover {
|
| 116 |
+
opacity: 0.9;
|
| 117 |
+
}
|
| 118 |
+
|
| 119 |
+
.image-loading-box .button-group .cancel {
|
| 120 |
+
background: rgba(255, 255, 255, 0.1);
|
| 121 |
+
color: hsl(240, 5%, 90%);
|
| 122 |
+
}
|
| 123 |
+
|
| 124 |
+
.image-loading-box .button-group .cancel:hover {
|
| 125 |
+
background: rgba(255, 255, 255, 0.2);
|
| 126 |
+
}
|
| 127 |
+
|
| 128 |
+
/* Ensure the processing UI is on top */
|
| 129 |
+
.image-loading-box {
|
| 130 |
+
z-index: 9999;
|
| 131 |
+
}
|
| 132 |
+
|
| 133 |
+
/* Ensure mobile save image is properly styled */
|
| 134 |
+
.mobile-save-image {
|
| 135 |
+
background: hsl(240, 10%, 7%);
|
| 136 |
+
}
|
| 137 |
+
|
| 138 |
+
/* Style the feedback form to match new design */
|
| 139 |
+
.feedback {
|
| 140 |
+
background: hsl(240, 10%, 7%) !important;
|
| 141 |
+
background-color: hsl(240, 10%, 7%) !important;
|
| 142 |
+
border: 1px solid rgba(255, 255, 255, 0.1);
|
| 143 |
+
border-radius: 0.75rem;
|
| 144 |
+
}
|
| 145 |
+
|
| 146 |
+
.feedback_container {
|
| 147 |
+
color: hsl(240, 5%, 90%);
|
| 148 |
+
}
|
| 149 |
+
|
| 150 |
+
.feedback input[type="email"],
|
| 151 |
+
.feedback textarea {
|
| 152 |
+
background: hsl(240, 14%, 5%);
|
| 153 |
+
border: 1px solid rgba(255, 255, 255, 0.2);
|
| 154 |
+
color: hsl(240, 5%, 90%);
|
| 155 |
+
border-radius: 0.5rem;
|
| 156 |
+
padding: 0.75rem 1rem;
|
| 157 |
+
}
|
| 158 |
+
|
| 159 |
+
.feedback input[type="submit"] {
|
| 160 |
+
background: linear-gradient(90deg, hsl(265, 100%, 61%) 0%, #ff4b8d 100%);
|
| 161 |
+
color: white;
|
| 162 |
+
font-weight: bold;
|
| 163 |
+
padding: 1rem 2.5rem;
|
| 164 |
+
border-radius: 0.5rem;
|
| 165 |
+
border: none;
|
| 166 |
+
cursor: pointer;
|
| 167 |
+
transition: opacity 0.3s;
|
| 168 |
+
}
|
| 169 |
+
|
| 170 |
+
.feedback input[type="submit"]:hover {
|
| 171 |
+
opacity: 0.9;
|
| 172 |
+
}
|
| 173 |
+
|
| 174 |
+
/* Ensure masks match the dark theme */
|
| 175 |
+
.mask,
|
| 176 |
+
.alert-mask,
|
| 177 |
+
.feedback-mask {
|
| 178 |
+
background: rgba(0, 0, 0, 0.8);
|
| 179 |
+
}
|
| 180 |
+
|
| 181 |
+
/* Override all white backgrounds in loading popups */
|
| 182 |
+
.image-loading-box,
|
| 183 |
+
.show-message-box,
|
| 184 |
+
.load-error-box,
|
| 185 |
+
.load-warning-box,
|
| 186 |
+
.load-warning-boxx,
|
| 187 |
+
.oversize-box,
|
| 188 |
+
.load-alert-box,
|
| 189 |
+
.loading-box,
|
| 190 |
+
.loading-box-b {
|
| 191 |
+
background: hsl(240, 10%, 7%) !important;
|
| 192 |
+
background-color: hsl(240, 10%, 7%) !important;
|
| 193 |
+
}
|
| 194 |
+
|
| 195 |
+
/* Override all dark text to light text in popups */
|
| 196 |
+
.show-message-box .text,
|
| 197 |
+
.show-message-box p,
|
| 198 |
+
.loading-box .loading-text,
|
| 199 |
+
.loading-box-b .loading-b-text,
|
| 200 |
+
.loading-text,
|
| 201 |
+
.warning-text,
|
| 202 |
+
.error-text,
|
| 203 |
+
.alert-text {
|
| 204 |
+
color: hsl(240, 5%, 90%) !important;
|
| 205 |
+
}
|
| 206 |
+
|
| 207 |
+
/* Override button backgrounds */
|
| 208 |
+
.loading-box-b .button-group div {
|
| 209 |
+
background-color: rgba(255, 255, 255, 0.1) !important;
|
| 210 |
+
color: hsl(240, 5%, 90%) !important;
|
| 211 |
+
}
|
| 212 |
+
|
| 213 |
+
/* Override alert/feedback modal backgrounds */
|
| 214 |
+
.alert-modal-box {
|
| 215 |
+
background-color: hsl(240, 10%, 7%) !important;
|
| 216 |
+
border: 1px solid rgba(255, 255, 255, 0.1);
|
| 217 |
+
}
|
| 218 |
+
|
| 219 |
+
/* Override any nested light backgrounds */
|
| 220 |
+
.show-message-box .text .max_overresolution div {
|
| 221 |
+
background: rgba(255, 255, 255, 0.05) !important;
|
| 222 |
+
color: hsl(240, 5%, 90%) !important;
|
| 223 |
+
}
|
| 224 |
+
|
| 225 |
+
/* Preview Popup Modal Styles */
|
| 226 |
+
.preview-popup-overlay {
|
| 227 |
+
display: none;
|
| 228 |
+
position: fixed;
|
| 229 |
+
top: 0;
|
| 230 |
+
left: 0;
|
| 231 |
+
width: 100%;
|
| 232 |
+
height: 100%;
|
| 233 |
+
background: rgba(0, 0, 0, 0.9);
|
| 234 |
+
z-index: 10000;
|
| 235 |
+
align-items: center;
|
| 236 |
+
justify-content: center;
|
| 237 |
+
padding: 1rem;
|
| 238 |
+
backdrop-filter: blur(4px);
|
| 239 |
+
}
|
| 240 |
+
|
| 241 |
+
.preview-popup-overlay.active {
|
| 242 |
+
display: flex;
|
| 243 |
+
}
|
| 244 |
+
|
| 245 |
+
.preview-popup-content {
|
| 246 |
+
background: hsl(240, 10%, 7%);
|
| 247 |
+
border: 1px solid rgba(255, 255, 255, 0.1);
|
| 248 |
+
border-radius: 1rem;
|
| 249 |
+
max-width: 1200px;
|
| 250 |
+
width: 100%;
|
| 251 |
+
max-height: 90vh;
|
| 252 |
+
overflow-y: auto;
|
| 253 |
+
box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.5);
|
| 254 |
+
}
|
| 255 |
+
|
| 256 |
+
.preview-popup-header {
|
| 257 |
+
display: flex;
|
| 258 |
+
justify-content: space-between;
|
| 259 |
+
align-items: center;
|
| 260 |
+
padding: 1.5rem 2rem;
|
| 261 |
+
border-bottom: 1px solid rgba(255, 255, 255, 0.1);
|
| 262 |
+
}
|
| 263 |
+
|
| 264 |
+
.preview-popup-title {
|
| 265 |
+
font-size: 1.5rem;
|
| 266 |
+
font-weight: 700;
|
| 267 |
+
margin: 0;
|
| 268 |
+
background: linear-gradient(90deg, hsl(265, 100%, 61%) 0%, #ff4b8d 100%);
|
| 269 |
+
-webkit-background-clip: text;
|
| 270 |
+
-webkit-text-fill-color: transparent;
|
| 271 |
+
}
|
| 272 |
+
|
| 273 |
+
.preview-popup-close {
|
| 274 |
+
background: none;
|
| 275 |
+
border: none;
|
| 276 |
+
color: hsl(240, 5%, 90%);
|
| 277 |
+
font-size: 2rem;
|
| 278 |
+
cursor: pointer;
|
| 279 |
+
width: 40px;
|
| 280 |
+
height: 40px;
|
| 281 |
+
display: flex;
|
| 282 |
+
align-items: center;
|
| 283 |
+
justify-content: center;
|
| 284 |
+
border-radius: 0.5rem;
|
| 285 |
+
transition: background 0.3s;
|
| 286 |
+
}
|
| 287 |
+
|
| 288 |
+
.preview-popup-close:hover {
|
| 289 |
+
background: rgba(255, 255, 255, 0.1);
|
| 290 |
+
}
|
| 291 |
+
|
| 292 |
+
.preview-comparison-container {
|
| 293 |
+
display: grid;
|
| 294 |
+
grid-template-columns: 1fr auto 1fr;
|
| 295 |
+
gap: 2rem;
|
| 296 |
+
padding: 2rem;
|
| 297 |
+
align-items: center;
|
| 298 |
+
}
|
| 299 |
+
|
| 300 |
+
.preview-side {
|
| 301 |
+
display: flex;
|
| 302 |
+
flex-direction: column;
|
| 303 |
+
align-items: center;
|
| 304 |
+
gap: 1rem;
|
| 305 |
+
}
|
| 306 |
+
|
| 307 |
+
.preview-label {
|
| 308 |
+
font-size: 1rem;
|
| 309 |
+
font-weight: 600;
|
| 310 |
+
color: hsl(240, 4%, 65%);
|
| 311 |
+
text-transform: uppercase;
|
| 312 |
+
letter-spacing: 0.05em;
|
| 313 |
+
}
|
| 314 |
+
|
| 315 |
+
.preview-original-img,
|
| 316 |
+
.preview-enhanced-img {
|
| 317 |
+
max-width: 100%;
|
| 318 |
+
max-height: 400px;
|
| 319 |
+
width: auto;
|
| 320 |
+
height: auto;
|
| 321 |
+
border-radius: 0.5rem;
|
| 322 |
+
border: 1px solid rgba(255, 255, 255, 0.1);
|
| 323 |
+
object-fit: contain;
|
| 324 |
+
}
|
| 325 |
+
|
| 326 |
+
.preview-resolution {
|
| 327 |
+
font-size: 0.875rem;
|
| 328 |
+
color: hsl(240, 4%, 65%);
|
| 329 |
+
padding: 0.5rem 1rem;
|
| 330 |
+
background: rgba(255, 255, 255, 0.05);
|
| 331 |
+
border-radius: 0.5rem;
|
| 332 |
+
}
|
| 333 |
+
|
| 334 |
+
.preview-divider {
|
| 335 |
+
width: 2px;
|
| 336 |
+
height: 300px;
|
| 337 |
+
background: linear-gradient(180deg, transparent, hsl(265, 100%, 61%), #ff4b8d, transparent);
|
| 338 |
+
}
|
| 339 |
+
|
| 340 |
+
.preview-popup-actions {
|
| 341 |
+
display: flex;
|
| 342 |
+
gap: 1rem;
|
| 343 |
+
padding: 1.5rem 2rem;
|
| 344 |
+
border-top: 1px solid rgba(255, 255, 255, 0.1);
|
| 345 |
+
justify-content: flex-end;
|
| 346 |
+
}
|
| 347 |
+
|
| 348 |
+
.preview-btn {
|
| 349 |
+
display: flex;
|
| 350 |
+
align-items: center;
|
| 351 |
+
gap: 0.5rem;
|
| 352 |
+
padding: 0.875rem 1.75rem;
|
| 353 |
+
border-radius: 0.5rem;
|
| 354 |
+
border: none;
|
| 355 |
+
font-size: 1rem;
|
| 356 |
+
font-weight: 600;
|
| 357 |
+
cursor: pointer;
|
| 358 |
+
transition: all 0.3s;
|
| 359 |
+
font-family: 'Space Grotesk', sans-serif;
|
| 360 |
+
}
|
| 361 |
+
|
| 362 |
+
.preview-btn-primary {
|
| 363 |
+
background: linear-gradient(90deg, hsl(265, 100%, 61%) 0%, #ff4b8d 100%);
|
| 364 |
+
color: white;
|
| 365 |
+
}
|
| 366 |
+
|
| 367 |
+
.preview-btn-primary:hover {
|
| 368 |
+
opacity: 0.9;
|
| 369 |
+
transform: translateY(-1px);
|
| 370 |
+
}
|
| 371 |
+
|
| 372 |
+
.preview-btn-secondary {
|
| 373 |
+
background: rgba(255, 255, 255, 0.1);
|
| 374 |
+
color: hsl(240, 5%, 90%);
|
| 375 |
+
}
|
| 376 |
+
|
| 377 |
+
.preview-btn-secondary:hover {
|
| 378 |
+
background: rgba(255, 255, 255, 0.2);
|
| 379 |
+
}
|
| 380 |
+
|
| 381 |
+
.preview-btn .material-symbols-outlined {
|
| 382 |
+
font-size: 1.25rem;
|
| 383 |
+
}
|
| 384 |
+
|
| 385 |
+
/* Mobile responsive */
|
| 386 |
+
@media (max-width: 768px) {
|
| 387 |
+
.preview-comparison-container {
|
| 388 |
+
grid-template-columns: 1fr;
|
| 389 |
+
gap: 1.5rem;
|
| 390 |
+
}
|
| 391 |
+
|
| 392 |
+
.preview-divider {
|
| 393 |
+
display: none;
|
| 394 |
+
}
|
| 395 |
+
|
| 396 |
+
.preview-popup-actions {
|
| 397 |
+
flex-direction: column;
|
| 398 |
+
}
|
| 399 |
+
|
| 400 |
+
.preview-btn {
|
| 401 |
+
width: 100%;
|
| 402 |
+
justify-content: center;
|
| 403 |
+
}
|
| 404 |
+
}
|
| 405 |
+
|
| 406 |
+
/* Upscale Option Sliders */
|
| 407 |
+
.slider-option {
|
| 408 |
+
margin-top: 1.5rem;
|
| 409 |
+
}
|
| 410 |
+
|
| 411 |
+
.upscale-slider {
|
| 412 |
+
width: 100%;
|
| 413 |
+
height: 6px;
|
| 414 |
+
-webkit-appearance: none;
|
| 415 |
+
appearance: none;
|
| 416 |
+
background: rgba(255, 255, 255, 0.1);
|
| 417 |
+
border-radius: 3px;
|
| 418 |
+
outline: none;
|
| 419 |
+
cursor: pointer;
|
| 420 |
+
transition: all 0.3s ease;
|
| 421 |
+
}
|
| 422 |
+
|
| 423 |
+
.upscale-slider:hover {
|
| 424 |
+
background: rgba(255, 255, 255, 0.15);
|
| 425 |
+
}
|
| 426 |
+
|
| 427 |
+
/* Webkit browsers (Chrome, Safari) */
|
| 428 |
+
.upscale-slider::-webkit-slider-thumb {
|
| 429 |
+
-webkit-appearance: none;
|
| 430 |
+
appearance: none;
|
| 431 |
+
width: 20px;
|
| 432 |
+
height: 20px;
|
| 433 |
+
background: linear-gradient(135deg, hsl(265, 100%, 61%), #ff4b8d);
|
| 434 |
+
border-radius: 50%;
|
| 435 |
+
cursor: pointer;
|
| 436 |
+
transition: all 0.3s ease;
|
| 437 |
+
box-shadow: 0 2px 8px rgba(165, 60, 255, 0.4);
|
| 438 |
+
}
|
| 439 |
+
|
| 440 |
+
.upscale-slider::-webkit-slider-thumb:hover {
|
| 441 |
+
transform: scale(1.1);
|
| 442 |
+
box-shadow: 0 4px 12px rgba(165, 60, 255, 0.6);
|
| 443 |
+
}
|
| 444 |
+
|
| 445 |
+
/* Firefox */
|
| 446 |
+
.upscale-slider::-moz-range-thumb {
|
| 447 |
+
width: 20px;
|
| 448 |
+
height: 20px;
|
| 449 |
+
background: linear-gradient(135deg, hsl(265, 100%, 61%), #ff4b8d);
|
| 450 |
+
border-radius: 50%;
|
| 451 |
+
border: none;
|
| 452 |
+
cursor: pointer;
|
| 453 |
+
transition: all 0.3s ease;
|
| 454 |
+
box-shadow: 0 2px 8px rgba(165, 60, 255, 0.4);
|
| 455 |
+
}
|
| 456 |
+
|
| 457 |
+
.upscale-slider::-moz-range-thumb:hover {
|
| 458 |
+
transform: scale(1.1);
|
| 459 |
+
box-shadow: 0 4px 12px rgba(165, 60, 255, 0.6);
|
| 460 |
+
}
|
| 461 |
+
|
| 462 |
+
/* Track fill effect for webkit */
|
| 463 |
+
.upscale-slider::-webkit-slider-runnable-track {
|
| 464 |
+
background: linear-gradient(
|
| 465 |
+
to right,
|
| 466 |
+
hsl(265, 100%, 61%) 0%,
|
| 467 |
+
hsl(265, 100%, 61%) var(--slider-percent, 50%),
|
| 468 |
+
rgba(255, 255, 255, 0.1) var(--slider-percent, 50%)
|
| 469 |
+
);
|
| 470 |
+
height: 6px;
|
| 471 |
+
border-radius: 3px;
|
| 472 |
+
}
|
| 473 |
+
|
| 474 |
+
/* Track fill effect for Firefox */
|
| 475 |
+
.upscale-slider::-moz-range-track {
|
| 476 |
+
background: rgba(255, 255, 255, 0.1);
|
| 477 |
+
height: 6px;
|
| 478 |
+
border-radius: 3px;
|
| 479 |
+
}
|
| 480 |
+
|
| 481 |
+
.upscale-slider::-moz-range-progress {
|
| 482 |
+
background: linear-gradient(90deg, hsl(265, 100%, 61%), #ff4b8d);
|
| 483 |
+
height: 6px;
|
| 484 |
+
border-radius: 3px;
|
| 485 |
+
}
|
redX.png
ADDED
|
replit.md
ADDED
|
@@ -0,0 +1,91 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Image Upscaler
|
| 2 |
+
|
| 3 |
+
## Overview
|
| 4 |
+
This is an AI-powered image upscaling web application that allows users to upscale images by 2x, 4x, 6x, or 8x magnification. The application is a static HTML/CSS/JavaScript site based on the Qoc Upscaler.
|
| 5 |
+
|
| 6 |
+
## Project Type
|
| 7 |
+
- **Type**: Static Website (Frontend Only)
|
| 8 |
+
- **Languages**: HTML, CSS, JavaScript
|
| 9 |
+
- **No Backend**: This is a pure client-side application with no server-side processing
|
| 10 |
+
|
| 11 |
+
## Project Architecture
|
| 12 |
+
- **Server**: Python's built-in HTTP server
|
| 13 |
+
- **Port**: 5000 (configured to bind to 0.0.0.0)
|
| 14 |
+
- **Deployment**: Configured for autoscale deployment (static site)
|
| 15 |
+
|
| 16 |
+
## Key Files
|
| 17 |
+
- `index.html` - Main application page with modern UI design
|
| 18 |
+
- `new-design.css` - Custom CSS for the redesigned interface
|
| 19 |
+
- `jsnew_image-upscaler.js` - Core image upscaling logic
|
| 20 |
+
- `js_free-online-image-upscaler.js` - Upscaler functionality
|
| 21 |
+
- `js_quene.js` - Queue management for batch processing
|
| 22 |
+
- CSS files: `css.css`, `style.css`, `local.css`, `all.min.css`
|
| 23 |
+
|
| 24 |
+
## Features
|
| 25 |
+
- Drag and drop image upload
|
| 26 |
+
- Multiple magnification levels (2x, 4x, 6x, 8x)
|
| 27 |
+
- Advanced upscale options: AI Strength, Clarity, Sharpness, Color Improvement, Resemblance
|
| 28 |
+
- Side-by-side preview popup after enhancement
|
| 29 |
+
- Queue system for batch processing
|
| 30 |
+
- User-controlled download (preview first, download on button click)
|
| 31 |
+
- Mobile-friendly interface
|
| 32 |
+
- Modern gradient loading animation
|
| 33 |
+
- Interactive preview modal with comparison view
|
| 34 |
+
|
| 35 |
+
## UI Design
|
| 36 |
+
- **Theme**: Modern dark theme with purple/pink gradient accents
|
| 37 |
+
- **Typography**: Space Grotesk font family
|
| 38 |
+
- **Styling**: Tailwind CSS with custom color palette
|
| 39 |
+
- **Upload Area**: Large drag-and-drop zone with cloud icon
|
| 40 |
+
- **Options**: Clean dropdown selectors for resolution and file format
|
| 41 |
+
- **No Header**: Streamlined design without navigation header
|
| 42 |
+
- **No Quality Option**: Simplified interface with resolution and format only
|
| 43 |
+
|
| 44 |
+
## Recent Changes
|
| 45 |
+
|
| 46 |
+
### September 30, 2025 - Added Advanced Upscale Options
|
| 47 |
+
- Added five new slider controls: AI Strength, Clarity, Sharpness, Color Improvement, and Resemblance
|
| 48 |
+
- Sliders feature purple/pink gradient styling matching the app theme
|
| 49 |
+
- Real-time value display updates as sliders move (0-100%)
|
| 50 |
+
- Gradient track fill animates with slider position for visual feedback
|
| 51 |
+
- JavaScript stores slider values via window.upscaleOptions.getOptions() for future API integration
|
| 52 |
+
- Current backend API only supports magnification, but UI is ready for enhanced functionality
|
| 53 |
+
- All changes reviewed and approved by architect
|
| 54 |
+
|
| 55 |
+
### September 30, 2025 - Fixed Scrolling Bug After Popup Close
|
| 56 |
+
- Fixed critical bug where website became non-scrollable after closing preview popup
|
| 57 |
+
- Root cause: closeMessageBox() function was setting overflow='hidden' but never restoring it
|
| 58 |
+
- Added overflow='auto' restoration to closeMessageBox() function
|
| 59 |
+
- Added overflow restoration to all preview popup close handlers (close button, new image button, overlay click)
|
| 60 |
+
- Changes reviewed and approved by architect
|
| 61 |
+
- Website now properly restores scrolling functionality after all popup interactions
|
| 62 |
+
|
| 63 |
+
### September 30, 2025 - Preview Popup Modal Implementation
|
| 64 |
+
- Created new popup modal that displays after image enhancement
|
| 65 |
+
- Side-by-side comparison shows original vs enhanced images
|
| 66 |
+
- Displays resolutions for both images
|
| 67 |
+
- Purple/pink gradient divider between images matching theme
|
| 68 |
+
- Download button with proper filename (enhanced_{magnification}x.png)
|
| 69 |
+
- New Image button to quickly upload another file
|
| 70 |
+
- Close button and overlay click to dismiss popup
|
| 71 |
+
- Mobile responsive design with stacked layout
|
| 72 |
+
- Event handlers properly initialized to prevent duplicates
|
| 73 |
+
- All changes reviewed and approved by architect
|
| 74 |
+
|
| 75 |
+
### September 30, 2025 - Loading Popup Redesign & Download Behavior
|
| 76 |
+
- Redesigned loading popup with modern CSS gradient spinner (purple/pink theme)
|
| 77 |
+
- Replaced GIF spinner with animated conic-gradient CSS spinner
|
| 78 |
+
- Improved loading text with better typography and messaging
|
| 79 |
+
- Disabled automatic download after image enhancement
|
| 80 |
+
- Preview now shows first, user must click download button to save
|
| 81 |
+
- Verified side-by-side comparison preview displays correctly
|
| 82 |
+
- All changes reviewed and approved by architect
|
| 83 |
+
|
| 84 |
+
### September 30, 2025 - Replit Environment Setup (Fresh GitHub Import)
|
| 85 |
+
- Python 3.11 module installed for serving static files
|
| 86 |
+
- Workflow configured to run HTTP server on port 5000 (bound to 0.0.0.0)
|
| 87 |
+
- Deployment configured for autoscale deployment (static site)
|
| 88 |
+
- .gitignore already includes Python-related files
|
| 89 |
+
- Application tested and verified working perfectly in Replit environment
|
| 90 |
+
- All resources loading correctly (HTML, CSS, JavaScript files)
|
| 91 |
+
- Modern dark theme UI displaying correctly with purple/pink gradient accents
|
spinner.gif
ADDED
|
style.css
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
body {
|
| 2 |
+
padding: 2rem;
|
| 3 |
+
font-family: -apple-system, BlinkMacSystemFont, "Arial", sans-serif;
|
| 4 |
+
}
|
| 5 |
+
|
| 6 |
+
h1 {
|
| 7 |
+
font-size: 16px;
|
| 8 |
+
margin-top: 0;
|
| 9 |
+
}
|
| 10 |
+
|
| 11 |
+
p {
|
| 12 |
+
color: rgb(107, 114, 128);
|
| 13 |
+
font-size: 15px;
|
| 14 |
+
margin-bottom: 10px;
|
| 15 |
+
margin-top: 5px;
|
| 16 |
+
}
|
| 17 |
+
|
| 18 |
+
.card {
|
| 19 |
+
max-width: 620px;
|
| 20 |
+
margin: 0 auto;
|
| 21 |
+
padding: 16px;
|
| 22 |
+
border: 1px solid lightgray;
|
| 23 |
+
border-radius: 16px;
|
| 24 |
+
}
|
| 25 |
+
|
| 26 |
+
.card p:last-child {
|
| 27 |
+
margin-bottom: 0;
|
| 28 |
+
}
|
trp-language-switcher.css
ADDED
|
@@ -0,0 +1,143 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
/*
|
| 2 |
+
* Menu Language Switcher
|
| 3 |
+
*/
|
| 4 |
+
|
| 5 |
+
.menu-item-object-language_switcher .trp-flag-image {
|
| 6 |
+
display: inline-block;
|
| 7 |
+
margin: -1px 5px;
|
| 8 |
+
vertical-align: baseline;
|
| 9 |
+
padding: 0;
|
| 10 |
+
border: 0;
|
| 11 |
+
border-radius:0;
|
| 12 |
+
}
|
| 13 |
+
|
| 14 |
+
/*
|
| 15 |
+
* Shortcode Language Switcher
|
| 16 |
+
*/
|
| 17 |
+
.trp-language-switcher{
|
| 18 |
+
height: 42px;
|
| 19 |
+
position: relative;
|
| 20 |
+
box-sizing: border-box;
|
| 21 |
+
width: 200px;
|
| 22 |
+
text-overflow: ellipsis;
|
| 23 |
+
white-space: nowrap;
|
| 24 |
+
}
|
| 25 |
+
|
| 26 |
+
|
| 27 |
+
.trp-language-switcher > div {
|
| 28 |
+
box-sizing: border-box;
|
| 29 |
+
padding:4px 20px 3px 13px;
|
| 30 |
+
border: 1.5px solid #949494;
|
| 31 |
+
border-radius: 2px;
|
| 32 |
+
background-image: url(../../assets/images/arrow-down-3101.svg);
|
| 33 |
+
background-repeat: no-repeat;
|
| 34 |
+
|
| 35 |
+
background-position:
|
| 36 |
+
calc(100% - 20px) calc(1em + 2px),
|
| 37 |
+
calc(100% - 3px) calc(1em + 0px);
|
| 38 |
+
|
| 39 |
+
background-size:
|
| 40 |
+
8px 8px,
|
| 41 |
+
8px 8px;
|
| 42 |
+
|
| 43 |
+
background-repeat: no-repeat;
|
| 44 |
+
|
| 45 |
+
background-color: #fff;
|
| 46 |
+
}
|
| 47 |
+
|
| 48 |
+
.trp-language-switcher > div:hover {
|
| 49 |
+
background-image: none;
|
| 50 |
+
}
|
| 51 |
+
|
| 52 |
+
|
| 53 |
+
.trp-language-switcher > div > a {
|
| 54 |
+
display: block;
|
| 55 |
+
padding: 7px 12px;
|
| 56 |
+
border-radius: 3px;
|
| 57 |
+
text-decoration: none;
|
| 58 |
+
color: #1E1E1E;
|
| 59 |
+
font-style: normal;
|
| 60 |
+
font-weight: 400;
|
| 61 |
+
font-size: 16px;
|
| 62 |
+
}
|
| 63 |
+
|
| 64 |
+
.trp-language-switcher > div > a:hover {
|
| 65 |
+
background: #F0F0F0;
|
| 66 |
+
border-radius: 2px;
|
| 67 |
+
}
|
| 68 |
+
.trp-language-switcher > div > a.trp-ls-shortcode-disabled-language {
|
| 69 |
+
cursor: default;
|
| 70 |
+
}
|
| 71 |
+
.trp-language-switcher > div > a.trp-ls-shortcode-disabled-language:hover {
|
| 72 |
+
background: none;
|
| 73 |
+
}
|
| 74 |
+
|
| 75 |
+
.trp-language-switcher > div > a > img{
|
| 76 |
+
display: inline;
|
| 77 |
+
margin: 0 3px;
|
| 78 |
+
width: 18px;
|
| 79 |
+
height: 12px;
|
| 80 |
+
border-radius: 0;
|
| 81 |
+
}
|
| 82 |
+
|
| 83 |
+
.trp-language-switcher .trp-ls-shortcode-current-language{
|
| 84 |
+
display: inline-block;
|
| 85 |
+
}
|
| 86 |
+
.trp-language-switcher:focus .trp-ls-shortcode-current-language,
|
| 87 |
+
.trp-language-switcher:hover .trp-ls-shortcode-current-language{
|
| 88 |
+
visibility: hidden;
|
| 89 |
+
}
|
| 90 |
+
|
| 91 |
+
.trp-language-switcher .trp-ls-shortcode-language{
|
| 92 |
+
display: inline-block;
|
| 93 |
+
height: 1px;
|
| 94 |
+
overflow: hidden;
|
| 95 |
+
visibility: hidden;
|
| 96 |
+
z-index: 1;
|
| 97 |
+
|
| 98 |
+
max-height: 250px;
|
| 99 |
+
overflow-y: auto;
|
| 100 |
+
left: 0;
|
| 101 |
+
top: 0;
|
| 102 |
+
min-height: auto;
|
| 103 |
+
}
|
| 104 |
+
|
| 105 |
+
.trp-language-switcher:focus .trp-ls-shortcode-language,
|
| 106 |
+
.trp-language-switcher:hover .trp-ls-shortcode-language{
|
| 107 |
+
visibility: visible;
|
| 108 |
+
max-height: 250px;
|
| 109 |
+
padding: 4px 13px;
|
| 110 |
+
height: auto;
|
| 111 |
+
overflow-y: auto;
|
| 112 |
+
position: absolute;
|
| 113 |
+
left: 0;
|
| 114 |
+
top: 0;
|
| 115 |
+
display: inline-block !important;
|
| 116 |
+
min-height: auto;
|
| 117 |
+
}
|
| 118 |
+
|
| 119 |
+
/*
|
| 120 |
+
* Front-end Admin Bar Icon
|
| 121 |
+
*/
|
| 122 |
+
#wpadminbar #wp-admin-bar-trp_edit_translation .ab-icon:before {
|
| 123 |
+
content: '\f326';
|
| 124 |
+
top: 3px;
|
| 125 |
+
}
|
| 126 |
+
|
| 127 |
+
@media screen and ( max-width: 782px ) {
|
| 128 |
+
#wpadminbar #wp-admin-bar-trp_edit_translation > .ab-item {
|
| 129 |
+
text-indent: 0;
|
| 130 |
+
}
|
| 131 |
+
|
| 132 |
+
#wpadminbar li#wp-admin-bar-trp_edit_translation {
|
| 133 |
+
display: block;
|
| 134 |
+
}
|
| 135 |
+
}
|
| 136 |
+
|
| 137 |
+
/*
|
| 138 |
+
* Fix Language Switcher Shortcode in Elementor Popup
|
| 139 |
+
*/
|
| 140 |
+
.elementor-shortcode .trp-ls-shortcode-current-language,
|
| 141 |
+
.elementor-shortcode .trp-ls-shortcode-language {
|
| 142 |
+
width: 300px !important;
|
| 143 |
+
}
|